[Pvfs2-developers] encoding negative responses
Rob Ross
rross at mcs.anl.gov
Thu Oct 19 15:26:44 EDT 2006
Sounds like formalizing this would be a good idea. Is there even one
counter-example that we can think of or that exists today?
Rob
Pete Wyckoff wrote:
> pcarns at wastedcycles.org wrote on Thu, 19 Oct 2006 16:34 +0200:
>> We've plugged some similar bugs before by just fixing the specific case
>> (being more careful about cleaning up masks, pointers, sizes, etc. after
>> an error), and the same could easily be done here. Should there be a
>> more general solution, though?
>>
>> What I am wondering is if the response encoder should even bother to
>> encode the whole message if the status is non-zero. It seems like if
>> there is an error code it should just stick to encoding the basic
>> PVFS_server_resp struct. The rest of the fields can't really be trusted
>> since we hit an error condition. Likewise on the decode side of things.
>>
>> The lebf_encode_resp() function already sort of catches one case of this:
>>
>> /* we stand a good chance of segfaulting if we try to encode the
>> response
>> * after something bad happened reading data from disk. */
>> if (resp->status != -PVFS_EIO)
>> {
>>
>> ... but that only handles one specific error code.
>
> I'm sort of in agreement with your analysis. We had a similar issue
> on the decoding side on the client: an EIO came back from the
> server but the client proceeded to try to decode particular fields.
>
> http://www.beowulf-underground.org/pipermail/pvfs2-developers/2006-June/002202.html
>
> Maybe both the lebf_{en,de}code_resp should encode or decode the
> rest of the message if status == 0. The comparison for EIO alone is
> not sufficient.
>
> Are there any reasons the client should be looking at more fields
> once it sees a negative status? Maybe we should just formalize
> this. And fixup lebf_decode_rel so it only frees things if status
> was zero.
>
> -- Pete
>
> _______________________________________________
> Pvfs2-developers mailing list
> Pvfs2-developers at beowulf-underground.org
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>
More information about the Pvfs2-developers
mailing list