[sheepdog] [RFC PATCH] object cache: revert object_cache_pull() to older version

Liu Yuan namei.unix at gmail.com
Mon Jun 4 11:36:16 CEST 2012


On 06/04/2012 05:31 PM, MORITA Kazutaka wrote:

> At Mon, 04 Jun 2012 16:59:11 +0800,
> Liu Yuan wrote:
>>
>> On 06/04/2012 04:53 PM, MORITA Kazutaka wrote:
>>
>>> One possibility is that if forward_write_obj_req() fails before
>>> receiving data, the next forward_(read|write)_obj_req() could be
>>> interleaved.
>>>
>>> The below untested patch may fix the problem though the approach is a
>>> poor way.
>>
>>
>> Well, from the log:
>>
>> Jun 04 10:16:37 do_gateway_request(288) 2, 80d6d76e00000000 , 1
>> Jun 04 10:16:37 do_gateway_request(308) failed: 2, 80d6d76e00000000 , 1,
>> 54014b01
> 
> Is there no forward_write_obj error before this line?  If so, I also
> have no idea how this happens.
> 


I can't access the log right now, I'll see to it later.

>>
>> It is a read request, which is supposed to be handled to object cache
>> layer, and should object_cache_pull(), then calls
>> forward_read_obj_req(), which failed (maybe this is why we didn't get
>> any log about it). Note, there were two requests to 80d6d76e00000000
>> meanwhile.
> 
> I guess we should add more eprintf in error paths to know where I/O
> errors exactly happens.
> 


Yes, We do. The old version does have enough debug info, the new version
factored it out by me :-|

Thanks,
Yuan



More information about the sheepdog mailing list