[Xapian-devel] Problems with /bin/cat and flintlock?

Olly Betts olly at survex.com
Tue May 24 05:09:10 BST 2011


On Tue, May 24, 2011 at 02:49:56PM +1200, Samuel Williams wrote:
> In my case, I've certainly noticed that the bug is intermittent, it
> doesn't always lock up passenger - maybe it is something to do with
> trying to create multiple instances of WritableDatabase in different
> processes? I will do further investigation.

I don't really see how that could matter, unless you're trying to
use the same WritableDatabase object in more than one process
(which isn't supported).

> Using SIGKILL will definitely do the trick, but it does feel to me to
> be heavy handed - on the other hand, it might also be the correct
> approach because if for some reason, the child process gets stuck, no
> amount of SIGHUP is going to help. Well, I've seen OS bugs where even
> SIGKILL doesn't work but obviously that isn't something we need to be
> concerned with hopefully.

We want to make sure the child process exits, and I think SIGKILL is
the appropriate way to do that.  If it fails, chances are you're
not going to be able to get it to exit in any other way.

> So:
> (1) I can spend some time trying to figure out if that test case
> reproduces the bug
> OR
> (2) We can change to SIGKILL and be done with it.
> 
> Well, I'd like to have a solid test case first, so I'd go for (1), but
> also my time is limited, which means that to fix the problem soon (2)
> is the best approach. What do you think?

The testcase should work by my understanding of the bug, but it doesn't
work, so that means I don't understand the bug correctly.  Since it
appears I don't understand the bug, it's hard to know if the fix really
is right.  And even if it is, without a regression test for it we won't
get a test failure if this issue is reintroduced in the future.

So I'd really like to get a working testcase for it, though changing to
SIGKILL is pretty clearly at least as good as what we currently do, so
indefinitely blocking that change on having a testcase doesn't make much
sense either.

Cheers,
    Olly



More information about the Xapian-devel mailing list