[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make check (8.1) hangs forever
From: |
Pádraig Brady |
Subject: |
Re: make check (8.1) hangs forever |
Date: |
Thu, 03 Dec 2009 14:16:32 +0000 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20071008) |
Alan Curry wrote:
> =?ISO-8859-1?Q?P=E1draig_Brady?= writes:
>> Note my gdb --version is 6.8.50.20090302-39.fc11
>
> So there's probably a bug in my 6.8-debian that is fixed in that version.
>
> To follow up on that theory, I compiled gdb 7.0 and tried again. It passes. I
> believe the difference is this change from 2008-07-10 (after the 6.8 release,
> but before your 20090302 snapshot):
>
> (linux_nat_kill): Stop lwps before killing them.
>
> The ptrace man page says "For requests other than PTRACE_KILL, the child
> process must be stopped." When I strace gdb 6.8, I see it using PTRACE_KILL
> yet the child process doesn't die. gdb 7.0 does the same thing but inserts a
> tkill(SIGSTOP) first and it works. Maybe a kernel change slipped past the
> man page maintainer.
Thanks for that info.
> Possible solutions:
>
> timeout -sKILL (as seen already, leaves a lingering tail process)
I don't like that
> skip the test if gdb version < 7.0 (except known-patched distro versions?)
Perhaps, but that's hacky.
Maybe also relegate the test to "expensive" or
something less likely to break builds for people.
> teach timeout to do a whole process tree instead of just a pgrp
I'd need to look into how useful/portable that would be,
and I've absolutely no time for anything at present.
> Over the course of various experiments, I found another flaw in this test:
> tail_forever_inotify can be inlined, and then gdb can't break on it.
In that case the test is skipped.
cheers,
Pádraig.