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

Liu Yuan namei.unix at gmail.com
Thu Jun 7 11:29:03 CEST 2012


On 06/05/2012 06:22 PM, MORITA Kazutaka wrote:

> At Tue, 05 Jun 2012 16:43:05 +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.
>>
>>
>> This fix doesn't fix anything.
> 
> I think my patch will fix the bug I said above, though it doesn't fix
> your problem.
> 
>> I wrote a workaround: use connect_to()
>> inside forward_write_obj_req(), and close(fd) when out of function. The
>> problem is gone.
> 
> I have no idea why the problem happens for now.  I've not reproduced
> it yet on my environment.


Hi Kazum
   You guessed right on the problem, but just the fix doesn't cover all
the error cases. Finally I come up with an updated fix and this problem
is gone.

Thanks,
Yuan



More information about the sheepdog mailing list