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. > > 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. Thanks, Kazutaka |