Per the teleconf last week, I have started to revamp the Cisco MTT infrastructure to do simplistic thread testing. Specifically, I'm building the OMPI trunk and v1.2 branches with "--with-threads -- enable-mpi-threads".

I haven't switched this into my production MTT setup yet, but in the first trial runs, I'm noticing a segv in the test/threads/ opal_condition program.

It seems that in the thr1 test on the v1.2 branch, when it calls opal_progress() underneath the condition variable wait, at some point in there current_base is getting to be NULL. Hence, the following segv's because the passed in value of "base" is NULL (event.c):

opal_event_base_loop(struct event_base *base, int flags)
        const struct opal_eventop *evsel = base->evsel;

Here's the full call stack:

#0  0x0000002a955a020e in opal_event_base_loop (base=0x0, flags=5)
    at event.c:520
#1  0x0000002a955a01f9 in opal_event_loop (flags=5) at event.c:514
#2 0x0000002a95599111 in opal_progress () at runtime/opal_progress.c: 259
#3  0x00000000004012c8 in opal_condition_wait (c=0x5025a0, m=0x502600)
    at ../../opal/threads/condition.h:81
#4  0x0000000000401146 in thr1_run (obj=0x503110) at opal_condition.c:46
#5 0x00000036e290610a in start_thread () from /lib64/tls/
#6  0x00000036e1ec68c3 in clone () from /lib64/tls/
#7  0x0000000000000000 in ?? ()

This test seems to work fine on the trunk (at least, it didn't segv in my small number of trail runs).

Is this a known problem in the 1.2 branch? Should I skip the thread testing on the 1.2 branch and concentrate on the trunk?

Jeff Squyres
Cisco Systems

Reply via email to