Closed drewdzzz closed 11 months ago
Obviously not related to your patch set, just noting this here. The CI failure looks very suspicious:
(libev) cannot allocate -32 bytes, aborting
I haven't checked this out yet, but it looks like we do not correctly handle this test case, i.e., using a connection that is not connected (sounds like an oxymoron). In light of this, I think it would be nice to add ASAN and, perhaps, valgrind workflows.
The patch rewrites response decoding logic using new decoder. Field IPROTO_ERROR_24 is not parsed anymore - it is a duplicate of the last error message in the error stack. Also, the whole error stack is decoded now (before the patch, only the first value was decoded). MP_ERROR_FIELDS are still not decoded.
Public structure
Data
is reworked. Now you need to calldata.decode
method and pass a container of arrays - every tuple will be decoded as an array and put to the container.