Re: assert(e->mem_status == NOT_IN_MEMORY) versus TCP_MEM_HIT.

From: Henrik Nordstrom <henrik_at_henriknordstrom.net>
Date: Sat, 26 Sep 2009 13:15:26 +0200

lör 2009-09-26 klockan 18:37 +1200 skrev Amos Jeffries:

> Something seems a bit weird to me there...
>
> (c) being harmless race condition?

It is harmless, the only ill effect is that the swap file is opened when
it does not need to be, just as happens if the request had arrived a few
ms before.

clients starting when an object is not fully in memory always opens the
disk object to be sure they can get the whole response, even if it most
times do not need to read anything from that on-disk object.

> Surely its only harmless if we do (b) by changing the assert to a
> self-fix action?

The self-fix is already there in that the actual data will all be copied
from memory. It's just that not all data was in memory when the request
started (store client created) but then when doCopy was called the first
time it was.

Or at least that's my assumption on what has happened. To know for sure
the object needs to be analyzed extracting expected size and min & max
in-memory to rule out that it's not an object that has got marked
erroneous as in-memory. But I am pretty sure my guess is right.

Regards
Henrik
Received on Sat Sep 26 2009 - 11:15:35 MDT

This archive was generated by hypermail 2.2.0 : Sun Sep 27 2009 - 12:00:05 MDT