You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the SDK, a struct is serialized and passed to the FVM as a pointer / length pair. (example - verify_replica_update)
In the FVM, the same pointer / length pair are used as offsets into the actor’s memory from which the same struct is deserialized. (example - verify_replica_update)
If deserialization fails, the actor is returned Err(ErrorNumber::IllegalArgument), the same error used to indicate that the user has provided invalid parameters to the syscall.
In M1, actors will only consist of trusted code. In this context, errors during the latter deserialization portion of this pattern are highly irregular and likely indicate a serious problem. The use of IllegalArgument may mask these issues, as it is also used to signify any number of more mundane problems.
Recommendation: Ensure logging methods capture and highlight cbor deserialization issues.
The text was updated successfully, but these errors were encountered:
Syscall execution often follows this pattern:
In the SDK, a struct is serialized and passed to the FVM as a pointer / length pair. (example - verify_replica_update)
In the FVM, the same pointer / length pair are used as offsets into the actor’s memory from which the same struct is deserialized. (example - verify_replica_update)
If deserialization fails, the actor is returned Err(ErrorNumber::IllegalArgument), the same error used to indicate that the user has provided invalid parameters to the syscall.
In M1, actors will only consist of trusted code. In this context, errors during the latter deserialization portion of this pattern are highly irregular and likely indicate a serious problem. The use of IllegalArgument may mask these issues, as it is also used to signify any number of more mundane problems.
Recommendation: Ensure logging methods capture and highlight cbor deserialization issues.
The text was updated successfully, but these errors were encountered: