[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2] qtest: don't leak pid files and UNIX domain
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 0/2] qtest: don't leak pid files and UNIX domain sockets |
Date: |
Fri, 31 Jan 2014 11:56:00 +0100 |
On Fri, Jan 31, 2014 at 1:07 AM, Peter Maydell <address@hidden> wrote:
> On 21 November 2013 11:03, Stefan Hajnoczi <address@hidden> wrote:
>> GLib uses abort(3) to exit failed test cases. As a result, the pid file and
>> UNIX domain sockets for a running test are leaked upon failure.
>>
>> Since abort(3) does not call atexit(3) handler functions, we could set up a
>> SIGABRT handler that performs cleanup. But there are other conditions where
>> processes die, like SIGSEGV or SIGBUS.
>>
>> Let's unlink pid files and UNIX domain sockets as soon as the QEMU process
>> has
>> initialized and connections have been made. This eliminates the possibility
>> of
>> leaking these files.
>
> So looking back through mailing list history suggests that these patches
> are supposed to avoid intermittent make check failures like:
>
> TEST: tests/qom-test... (pid=5078)
> /i386/qom/none: **
> ERROR:/home/petmay01/linaro/qemu-for-merges/tests/libqtest.c:71:init_socket:
> assertion failed (ret != -1): (-1 != -1)
> FAIL
> GTester: last random seed: R02S79ea313790bc9a8b21d9af5ed55c2fff
> (pid=5080)
> /i386/qom/pc: OK
> /i386/qom/isapc: OK
> /i386/qom/q35: OK
> FAIL: tests/qom-test
>
> but this patch series doesn't actually say that's what it's for,
> so does it fix that kind of error?
I might help but I'm not sure. The assertion failure you posted
happened on Gerd's buildslaves, I haven't reproduced it myself and
don't really understand what's wrong there.
However, I noticed that my /tmp is getting cluttered with pid files
and UNIX domain sockets from qtest. I also noticed that QEMU
processes are left running (this is not fixed by my series) when tests
fail.
So this series at least stops us from cluttering /tmp.
I haven't reproduced the init_socket() assertion failure so I'm not
sure what the root cause is.
Stefan