In addition, I've tried attaching to the iperf client with gdb, but,
the times that I've done so, I couldn't recreate the X or iperf crash.

> It's not coredumping?  Maybe it's actually exiting instead of aborting or
> getting a signal.

A few  (five or six) dead X sessions later I did get two coredumps,
only one of which contained a trace:

#0  thrkill () at -:3
#1  0x0000096cd93b9b7d in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:52
#2  0x0000096cf0c9b5e4 in *_libpthread_pthread_mutex_unlock
(mutexp=Variable "mutexp" is not available.
)
    at /usr/src/lib/librthread/rthread_mutex.c:267
#3  0x0000096a082084e2 in thread_destroy () at Thread.c:113
#4  0x0000096cd93e0280 in _libc___cxa_finalize (dso=0x0) at
/usr/src/lib/libc/stdlib/atexit.c:159
#5  0x0000096cd93ddbef in _libc_exit (status=The value of variable
'status' is distributed across several
locations, and GDB cannot access its value.

) at /usr/src/lib/libc/stdlib/exit.c:57
#6  0x0000096a08202c91 in Listener::runAsDaemon () from /usr/local/bin/iperf
#7  0x0000096a0820176d in listener_spawn () from /usr/local/bin/iperf
#8  0x0000096a082086b7 in thread_run_wrapper (paramPtr=0x96a08207d70)
at Thread.c:254
#9  0x0000096cf0c9d85e in _rthread_start (v=Variable "v" is not available.
) at /usr/src/lib/librthread/rthread.c:115
#10 0x0000096cd942b79b in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:75
#11 0x0000000000000000 in ?? ()

For the other gdb gave me a "warning: Couldn't find general-purpose
registers in core file."

>  What's the exact output when you run it, and what's the exit status ($?) in 
> the shell afterwards?

The last output I can catch is the iperf client during its run:

Client output: iperf -p 5001 -t 5 -c 10.0.0.2
------------------------------------------------------------
Client connecting to 10.0.0.2, TCP port 5001
TCP window size: 17.0 KByte (default)
------------------------------------------------------------
[  3] local 10.0.0.1 port 14152 connected with 10.0.0.2 port 5001

When I run from tmux to keep my shell, Mininet itself is still running
after X dies, and the shell that ran iperf returns 0.

> Might want to check /var/crash/ for coredumps too

Searching from / hasn't given me core dumps, except the two times that
I've mentioned above...

> akoshibe said that she is able to reproduce it all the time, every time
> (and I assume on bsd.mp).

Yes, it is on bsd.mp.

On Sun, Aug 13, 2017 at 8:58 AM, Pratik Vyas <[email protected]> wrote:
> * Philip Guenther <[email protected]> [2017-08-12 20:59:05 -0700]:
>
>
>> It sounded like this isn't difficult to reproduce, or at least you've done
>> so a couple times already.  I suggest rebuilding libpthread with gcc
>> instead of clang and see if it's equally reproducible.  If not, well, you
>> can get done what you originally were trying to do with iperf...
>>
>>
>> Pratik, did you say you tried recompiling all libpthread with gcc?
>>
>
> Yes, I see the same stacktrace as akoshibe.  I tried compiling
> librthread with gcc and it still aborted (I think it ran longer though).
> I am able to reproduce the bug more reliably with bsd.sp and running
> bochs without gui, if that explains some part of the issue. I can run
> more scientific tests later today.
>
> akoshibe said that she is able to reproduce it all the time, every time
> (and I assume on bsd.mp).
>
>
> --
> Pratik

Reply via email to