It seems the change suggested by Nysal also allows me to run into the next problem ;-)
Mark > On 09 Nov 2015, at 20:19 , George Bosilca <bosi...@icl.utk.edu> wrote: > > All 10k tests completed successfully. Nysal pinpointed the real problem > behind the deadlocks. :+1: > > George. > > > On Mon, Nov 9, 2015 at 1:13 PM, Ralph Castain <r...@open-mpi.org> wrote: > Looking at it, I think I see what was happening. The thread would start, but > then immediately see that the active flag was false and would exit. This left > the server without any listening thread - but it wouldn’t detect this had > happened. It was therefore a race between whether the thread checked the flag > before the server set it. > > Thanks Nysal - I believe this should indeed fix the problem! > > >> On Nov 9, 2015, at 9:04 AM, George Bosilca <bosi...@icl.utk.edu> wrote: >> >> Clearly Nyal got a valid point there. I launched a stress test with Nysal >> suggestion in the code, and so far it's up to few hundreds iterations >> without deadlock. I would not claim victory yet, I launched a 10k cycle to >> see where we stand (btw this never passed before). >> I'll let you know the outcome. >> >> George. >> >> >> On Mon, Nov 9, 2015 at 11:55 AM, Artem Polyakov <artpo...@gmail.com> wrote: >> >> >> 2015-11-09 22:42 GMT+06:00 Artem Polyakov <artpo...@gmail.com>: >> This is the very good point, Nysal! >> >> This is definitely a problem and I can say even more: avg. 3 from every 10 >> tasks was affected by this bug. Once the PR >> (https://github.com/pmix/master/pull/8) was applied I was able to run 100 >> testing tasks without any hangs. >> >> Here some more information on my symptoms. I was observing this without >> OMPI, just running pmix_client test binary from PMIx test suite with SLURM >> PMIx plugin. >> Periodicaly application was hanging. Investigation shows that not all >> processes are able to initialize correctly. >> Here is how such client's backtrace looks like: >> >> P.S. I think that this backtrace may be relevant to George's problem as >> well. In my case not all of the processes was hanging in the >> connect_to_server, most of them were able to move forward and reach Fence. >> George, the backtrace that you've posted was the same on both processes or >> it was the "random" one from one of them? >> >> (gdb) bt >> #0 0x00007f1448f1b7eb in recv () from /lib/x86_64-linux-gnu/libpthread.so.0 >> #1 0x00007f144914c191 in pmix_usock_recv_blocking (sd=9, >> data=0x7fff367f7c64 "", size=4) at src/usock/usock.c:166 >> #2 0x00007f1449152d18 in recv_connect_ack (sd=9) at >> src/client/pmix_client.c:837 >> #3 0x00007f14491546bf in usock_connect (addr=0x7fff367f7d60) at >> src/client/pmix_client.c:1103 >> #4 0x00007f144914f94c in connect_to_server (address=0x7fff367f7d60, >> cbdata=0x7fff367f7dd0) at src/client/pmix_client.c:179 >> #5 0x00007f1449150421 in PMIx_Init (proc=0x7fff367f81d0) at >> src/client/pmix_client.c:355 >> #6 0x0000000000401b97 in main (argc=9, argv=0x7fff367f83d8) at >> pmix_client.c:62 >> >> >> The server-side debug has the following lines at the end of the file: >> [cn33:00482] pmix:server register client slurm.pmix.22.0:10 >> [cn33:00482] pmix:server _register_client for nspace slurm.pmix.22.0 rank 10 >> [cn33:00482] pmix:server setup_fork for nspace slurm.pmix.22.0 rank 10 >> >> in normal operation the following lines should appear after lines above: >> .... >> [cn33:00188] listen_thread: new connection: (26, 0) >> [cn33:00188] connection_handler: new connection: 26 >> [cn33:00188] RECV CONNECT ACK FROM PEER ON SOCKET 26 >> [cn33:00188] waiting for blocking recv of 16 bytes >> [cn33:00188] blocking receive complete from remote >> .... >> >> At the client side I see the following lines >> cn33:00491] usock_peer_try_connect: attempting to connect to server >> [cn33:00491] usock_peer_try_connect: attempting to connect to server on >> socket 10 >> [cn33:00491] pmix: SEND CONNECT ACK >> [cn33:00491] sec: native create_cred >> [cn33:00491] sec: using credential 1000:1000 >> [cn33:00491] send blocking of 54 bytes to socket 10 >> [cn33:00491] blocking send complete to socket 10 >> [cn33:00491] pmix: RECV CONNECT ACK FROM SERVER >> [cn33:00491] waiting for blocking recv of 4 bytes >> [cn33:00491] blocking_recv received error 11:Resource temporarily >> unavailable from remote - cycling >> [cn33:00491] blocking_recv received error 11:Resource temporarily >> unavailable from remote - cycling >> [... repeated many times ...] >> >> With the fix for the problem highlighted by Nysal all runs cleanly. >> >> >> 2015-11-09 10:53 GMT+06:00 Nysal Jan K A <jny...@gmail.com>: >> In listen_thread(): >> 194 while (pmix_server_globals.listen_thread_active) { >> 195 FD_ZERO(&readfds); >> 196 FD_SET(pmix_server_globals.listen_socket, &readfds); >> 197 max = pmix_server_globals.listen_socket; >> >> Is it possible that pmix_server_globals.listen_thread_active can be false, >> in which case the thread just exits and will never call accept() ? >> >> In pmix_start_listening(): >> 147 /* fork off the listener thread */ >> 148 if (0 > pthread_create(&engine, NULL, listen_thread, NULL)) { >> 149 return PMIX_ERROR; >> 150 } >> 151 pmix_server_globals.listen_thread_active = true; >> >> pmix_server_globals.listen_thread_active is set to true after the thread is >> created, could this cause a race ? >> listen_thread_active might also need to be declared as volatile. >> >> Regards >> --Nysal >> >> On Sun, Nov 8, 2015 at 10:38 PM, George Bosilca <bosi...@icl.utk.edu> wrote: >> We had a power outage last week and the local disks on our cluster were >> wiped out. My tester was in there. But, I can rewrite it after SC. >> >> George. >> >> On Sat, Nov 7, 2015 at 12:04 PM, Ralph Castain <r...@open-mpi.org> wrote: >> Could you send me your stress test? I’m wondering if it is just something >> about how we set socket options >> >> >>> On Nov 7, 2015, at 8:58 AM, George Bosilca <bosi...@icl.utk.edu> wrote: >>> >>> I has to postpone this until after SC. However, I ran for 3 days a stress >>> test of UDS reproducing the opening and sending of data (what Ralph said in >>> his email) and I never could get a deadlock. >>> >>> George. >>> >>> >>> On Sat, Nov 7, 2015 at 11:26 AM, Ralph Castain <r...@open-mpi.org> wrote: >>> George was looking into it, but I don’t know if he has had time recently to >>> continue the investigation. We understand “what” is happening (accept >>> sometimes ignores the connection), but we don’t yet know “why”. I’ve done >>> some digging around the web, and found that sometimes you can try to talk >>> to a Unix Domain Socket too quickly - i.e., you open it and then send to >>> it, but the OS hasn’t yet set it up. In those cases, you can hang the >>> socket. However, I’ve tried adding some artificial delay, and while it >>> helped, it didn’t completely solve the problem. >>> >>> I have an idea for a workaround (set a timer and retry after awhile), but >>> would obviously prefer a real solution. I’m not even sure it will work as >>> it is unclear that the server (who is the one hung in accept) will break >>> free if the client closes the socket and retries. >>> >>> >>>> On Nov 6, 2015, at 10:53 PM, Artem Polyakov <artpo...@gmail.com> wrote: >>>> >>>> Hello, is there any progress on this topic? This affects our PMIx >>>> measurements. >>>> >>>> 2015-10-30 21:21 GMT+06:00 Ralph Castain <r...@open-mpi.org>: >>>> I’ve verified that the orte/util/listener thread is not being started, so >>>> I don’t think it should be involved in this problem. >>>> >>>> HTH >>>> Ralph >>>> >>>>> On Oct 30, 2015, at 8:07 AM, Ralph Castain <r...@open-mpi.org> wrote: >>>>> >>>>> Hmmm…there is a hook that would allow the PMIx server to utilize that >>>>> listener thread, but we aren’t currently using it. Each daemon plus >>>>> mpirun will call orte_start_listener, but nothing is currently >>>>> registering and so the listener in that code is supposed to just return >>>>> without starting the thread. >>>>> >>>>> So the only listener thread that should exist is the one inside the PMIx >>>>> server itself. If something else is happening, then that would be a bug. >>>>> I can look at the orte listener code to ensure that the thread isn’t >>>>> incorrectly starting. >>>>> >>>>> >>>>>> On Oct 29, 2015, at 10:03 PM, George Bosilca <bosi...@icl.utk.edu> wrote: >>>>>> >>>>>> Some progress, that puzzles me but might help you understand. Once the >>>>>> deadlock appears, if I manually kill the MPI process on the node where >>>>>> the deadlock was created, the local orte daemon doesn't notice and will >>>>>> just keep waiting. >>>>>> >>>>>> Quick question: I am under the impression that the issue is not in the >>>>>> PMIX server but somewhere around the listener_thread_fn in >>>>>> orte/util/listener.c. Possible ? >>>>>> >>>>>> George. >>>>>> >>>>>> >>>>>> On Wed, Oct 28, 2015 at 3:56 AM, Ralph Castain <r...@open-mpi.org> wrote: >>>>>> Should have also clarified: the prior fixes are indeed in the current >>>>>> master. >>>>>> >>>>>>> On Oct 28, 2015, at 12:42 AM, Ralph Castain <r...@open-mpi.org> wrote: >>>>>>> >>>>>>> Nope - I was wrong. The correction on the client side consisted of >>>>>>> attempting to timeout if the blocking recv failed. We then modified the >>>>>>> blocking send/recv so they would handle errors. >>>>>>> >>>>>>> So that problem occurred -after- the server had correctly called >>>>>>> accept. The listener code is in >>>>>>> opal/mca/pmix/pmix1xx/pmix/src/server/pmix_server_listener.c >>>>>>> >>>>>>> It looks to me like the only way we could drop the accept (assuming the >>>>>>> OS doesn’t lose it) is if the file descriptor lies outside the expected >>>>>>> range once we fall out of select: >>>>>>> >>>>>>> >>>>>>> /* Spin accepting connections until all active listen sockets >>>>>>> * do not have any incoming connections, pushing each connection >>>>>>> * onto the event queue for processing >>>>>>> */ >>>>>>> do { >>>>>>> accepted_connections = 0; >>>>>>> /* according to the man pages, select replaces the given >>>>>>> descriptor >>>>>>> * set with a subset consisting of those descriptors that >>>>>>> are ready >>>>>>> * for the specified operation - in this case, a read. So >>>>>>> we need to >>>>>>> * first check to see if this file descriptor is included >>>>>>> in the >>>>>>> * returned subset >>>>>>> */ >>>>>>> if (0 == FD_ISSET(pmix_server_globals.listen_socket, >>>>>>> &readfds)) { >>>>>>> /* this descriptor is not included */ >>>>>>> continue; >>>>>>> } >>>>>>> >>>>>>> /* this descriptor is ready to be read, which means a >>>>>>> connection >>>>>>> * request has been received - so harvest it. All we want >>>>>>> to do >>>>>>> * here is accept the connection and push the info onto the >>>>>>> event >>>>>>> * library for subsequent processing - we don't want to >>>>>>> actually >>>>>>> * process the connection here as it takes too long, and so >>>>>>> the >>>>>>> * OS might start rejecting connections due to timeout. >>>>>>> */ >>>>>>> pending_connection = PMIX_NEW(pmix_pending_connection_t); >>>>>>> event_assign(&pending_connection->ev, pmix_globals.evbase, >>>>>>> -1, >>>>>>> EV_WRITE, connection_handler, >>>>>>> pending_connection); >>>>>>> pending_connection->sd = >>>>>>> accept(pmix_server_globals.listen_socket, >>>>>>> (struct >>>>>>> sockaddr*)&(pending_connection->addr), >>>>>>> &addrlen); >>>>>>> if (pending_connection->sd < 0) { >>>>>>> PMIX_RELEASE(pending_connection); >>>>>>> if (pmix_socket_errno != EAGAIN || >>>>>>> pmix_socket_errno != EWOULDBLOCK) { >>>>>>> if (EMFILE == pmix_socket_errno) { >>>>>>> PMIX_ERROR_LOG(PMIX_ERR_OUT_OF_RESOURCE); >>>>>>> } else { >>>>>>> pmix_output(0, "listen_thread: accept() failed: >>>>>>> %s (%d).", >>>>>>> strerror(pmix_socket_errno), >>>>>>> pmix_socket_errno); >>>>>>> } >>>>>>> goto done; >>>>>>> } >>>>>>> continue; >>>>>>> } >>>>>>> >>>>>>> pmix_output_verbose(8, pmix_globals.debug_output, >>>>>>> "listen_thread: new connection: (%d, >>>>>>> %d)", >>>>>>> pending_connection->sd, >>>>>>> pmix_socket_errno); >>>>>>> /* activate the event */ >>>>>>> event_active(&pending_connection->ev, EV_WRITE, 1); >>>>>>> accepted_connections++; >>>>>>> } while (accepted_connections > 0); >>>>>>> >>>>>>> >>>>>>>> On Oct 28, 2015, at 12:25 AM, Ralph Castain <r...@open-mpi.org> wrote: >>>>>>>> >>>>>>>> Looking at the code, it appears that a fix was committed for this >>>>>>>> problem, and that we correctly resolved the issue found by Paul. The >>>>>>>> problem is that the fix didn’t get upstreamed, and so it was lost the >>>>>>>> next time we refreshed PMIx. Sigh. >>>>>>>> >>>>>>>> Let me try to recreate the fix and have you take a gander at it. >>>>>>>> >>>>>>>> >>>>>>>>> On Oct 28, 2015, at 12:22 AM, Ralph Castain <r...@open-mpi.org> wrote: >>>>>>>>> >>>>>>>>> Here is the discussion - afraid it is fairly lengthy. Ignore the >>>>>>>>> hwloc references in it as that was a separate issue: >>>>>>>>> >>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/09/18074.php >>>>>>>>> >>>>>>>>> It definitely sounds like the same issue creeping in again. I’d >>>>>>>>> appreciate any thoughts on how to correct it. If it helps, you could >>>>>>>>> look at the PMIx master - there are standalone tests in the >>>>>>>>> test/simple directory that fork/exec a child and just do the >>>>>>>>> connection. >>>>>>>>> >>>>>>>>> https://github.com/pmix/master >>>>>>>>> >>>>>>>>> The test server is simptest.c - it will spawn a single copy of >>>>>>>>> simpclient.c by default. >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Oct 27, 2015, at 10:14 PM, George Bosilca <bosi...@icl.utk.edu> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Interesting. Do you have a pointer to the commit (or/and to the >>>>>>>>>> discussion)? >>>>>>>>>> >>>>>>>>>> I looked at the PMIX code, and I have identified few issues, but >>>>>>>>>> unfortunately none of them seem to fix the problem for good. >>>>>>>>>> However, now I need more than 1000 runs to get a deadlock (instead >>>>>>>>>> of few tens). >>>>>>>>>> >>>>>>>>>> Looking with "netstat -ax" at the status of the UDS while the >>>>>>>>>> processes are deadlocked, I see 2 UDS with the same name: one from >>>>>>>>>> the server which is in LISTEN state, and one for the client which is >>>>>>>>>> being in CONNECTING state (while the client already sent a message >>>>>>>>>> in the socket and is now waiting in a blocking receive). This >>>>>>>>>> somehow suggest that the server has not yet called accept on the >>>>>>>>>> UDS. Unfortunately, there are 3 threads all doing different flavors >>>>>>>>>> of even_base and select, so I have a hard time tracking the path of >>>>>>>>>> the UDS on the server side. >>>>>>>>>> >>>>>>>>>> So in order to validate my assumption I wrote a minimalistic UDS >>>>>>>>>> client and server application and tried different scenarios. The >>>>>>>>>> conclusion is that in order to see the same type of output from >>>>>>>>>> "netstat -ax" I have to call listen on the server, connect on the >>>>>>>>>> client and do not call accept on the server. >>>>>>>>>> >>>>>>>>>> With the same occasion I also confirmed that the UDS are holding the >>>>>>>>>> data sent so there is no need for further synchronization for the >>>>>>>>>> case where the data is sent first. We only need to find out how the >>>>>>>>>> server forgets to call accept. >>>>>>>>>> >>>>>>>>>> George. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Oct 27, 2015 at 7:52 PM, Ralph Castain <r...@open-mpi.org> >>>>>>>>>> wrote: >>>>>>>>>> Hmmm…this looks like it might be that problem we previously saw >>>>>>>>>> where the blocking recv hangs in a proc when the blocking send tries >>>>>>>>>> to send before the domain socket is actually ready, and so the send >>>>>>>>>> fails on the other end. As I recall, it was something to do with the >>>>>>>>>> socketoptions - and then Paul had a problem on some of his machines, >>>>>>>>>> and we backed it out? >>>>>>>>>> >>>>>>>>>> I wonder if that’s what is biting us here again, and what we need is >>>>>>>>>> to either remove the blocking send/recv’s altogether, or figure out >>>>>>>>>> a way to wait until the socket is really ready. >>>>>>>>>> >>>>>>>>>> Any thoughts? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Oct 27, 2015, at 4:11 PM, George Bosilca <bosi...@icl.utk.edu> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> It appear the branch solve the problem at least partially. I asked >>>>>>>>>>> one of my students to hammer it pretty badly, and he reported that >>>>>>>>>>> the deadlocks still occur. He also graciously provided some >>>>>>>>>>> stacktraces: >>>>>>>>>>> >>>>>>>>>>> #0 0x00007f4bd5274aed in nanosleep () from /lib64/libc.so.6 >>>>>>>>>>> #1 0x00007f4bd52a9c94 in usleep () from /lib64/libc.so.6 >>>>>>>>>>> #2 0x00007f4bd2e42b00 in OPAL_PMIX_PMIX1XX_PMIx_Fence (procs=0x0, >>>>>>>>>>> nprocs=0, info=0x7fff3c561960, >>>>>>>>>>> ninfo=1) at src/client/pmix_client_fence.c:100 >>>>>>>>>>> #3 0x00007f4bd306e6d2 in pmix1_fence (procs=0x0, collect_data=1) >>>>>>>>>>> at pmix1_client.c:306 >>>>>>>>>>> #4 0x00007f4bd57d5cc3 in ompi_mpi_init (argc=3, >>>>>>>>>>> argv=0x7fff3c561ea8, requested=3, >>>>>>>>>>> provided=0x7fff3c561d84) at runtime/ompi_mpi_init.c:644 >>>>>>>>>>> #5 0x00007f4bd5813399 in PMPI_Init_thread (argc=0x7fff3c561d7c, >>>>>>>>>>> argv=0x7fff3c561d70, required=3, >>>>>>>>>>> provided=0x7fff3c561d84) at pinit_thread.c:69 >>>>>>>>>>> #6 0x0000000000401516 in main (argc=3, argv=0x7fff3c561ea8) at >>>>>>>>>>> osu_mbw_mr.c:86 >>>>>>>>>>> >>>>>>>>>>> And another process: >>>>>>>>>>> >>>>>>>>>>> #0 0x00007f7b9d7d8bdc in recv () from /lib64/libpthread.so.0 >>>>>>>>>>> #1 0x00007f7b9b0aa42d in >>>>>>>>>>> opal_pmix_pmix1xx_pmix_usock_recv_blocking (sd=13, >>>>>>>>>>> data=0x7ffd62139004 "", >>>>>>>>>>> size=4) at src/usock/usock.c:168 >>>>>>>>>>> #2 0x00007f7b9b0af5d9 in recv_connect_ack (sd=13) at >>>>>>>>>>> src/client/pmix_client.c:844 >>>>>>>>>>> #3 0x00007f7b9b0b085e in usock_connect (addr=0x7ffd62139330) at >>>>>>>>>>> src/client/pmix_client.c:1110 >>>>>>>>>>> #4 0x00007f7b9b0acc24 in connect_to_server >>>>>>>>>>> (address=0x7ffd62139330, cbdata=0x7ffd621390e0) >>>>>>>>>>> at src/client/pmix_client.c:181 >>>>>>>>>>> #5 0x00007f7b9b0ad569 in OPAL_PMIX_PMIX1XX_PMIx_Init >>>>>>>>>>> (proc=0x7f7b9b4e9b60) >>>>>>>>>>> at src/client/pmix_client.c:362 >>>>>>>>>>> #6 0x00007f7b9b2dbd9d in pmix1_client_init () at pmix1_client.c:99 >>>>>>>>>>> #7 0x00007f7b9b4eb95f in pmi_component_query >>>>>>>>>>> (module=0x7ffd62139490, priority=0x7ffd6213948c) >>>>>>>>>>> at ess_pmi_component.c:90 >>>>>>>>>>> #8 0x00007f7b9ce70ec5 in mca_base_select (type_name=0x7f7b9d20e059 >>>>>>>>>>> "ess", output_id=-1, >>>>>>>>>>> components_available=0x7f7b9d431eb0, >>>>>>>>>>> best_module=0x7ffd621394d0, best_component=0x7ffd621394d8, >>>>>>>>>>> priority_out=0x0) at mca_base_components_select.c:77 >>>>>>>>>>> #9 0x00007f7b9d1a956b in orte_ess_base_select () at >>>>>>>>>>> base/ess_base_select.c:40 >>>>>>>>>>> #10 0x00007f7b9d160449 in orte_init (pargc=0x0, pargv=0x0, >>>>>>>>>>> flags=32) at runtime/orte_init.c:219 >>>>>>>>>>> #11 0x00007f7b9da4377a in ompi_mpi_init (argc=3, >>>>>>>>>>> argv=0x7ffd621397f8, requested=3, >>>>>>>>>>> provided=0x7ffd621396d4) at runtime/ompi_mpi_init.c:488 >>>>>>>>>>> #12 0x00007f7b9da81399 in PMPI_Init_thread (argc=0x7ffd621396cc, >>>>>>>>>>> argv=0x7ffd621396c0, required=3, >>>>>>>>>>> provided=0x7ffd621396d4) at pinit_thread.c:69 >>>>>>>>>>> #13 0x0000000000401516 in main (argc=3, argv=0x7ffd621397f8) at >>>>>>>>>>> osu_mbw_mr.c:86 >>>>>>>>>>> >>>>>>>>>>> George. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Oct 27, 2015 at 2:36 PM, Ralph Castain <r...@open-mpi.org> >>>>>>>>>>> wrote: >>>>>>>>>>> I haven’t been able to replicate this when using the branch in this >>>>>>>>>>> PR: >>>>>>>>>>> >>>>>>>>>>> https://github.com/open-mpi/ompi/pull/1073 >>>>>>>>>>> >>>>>>>>>>> Would you mind giving it a try? It fixes some other race conditions >>>>>>>>>>> and might pick this one up too. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On Oct 27, 2015, at 10:04 AM, Ralph Castain <r...@open-mpi.org> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Okay, I’ll take a look - I’ve been chasing a race condition that >>>>>>>>>>>> might be related >>>>>>>>>>>> >>>>>>>>>>>>> On Oct 27, 2015, at 9:54 AM, George Bosilca <bosi...@icl.utk.edu> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> No, it's using 2 nodes. >>>>>>>>>>>>> George. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Oct 27, 2015 at 12:35 PM, Ralph Castain >>>>>>>>>>>>> <r...@open-mpi.org> wrote: >>>>>>>>>>>>> Is this on a single node? >>>>>>>>>>>>> >>>>>>>>>>>>>> On Oct 27, 2015, at 9:25 AM, George Bosilca >>>>>>>>>>>>>> <bosi...@icl.utk.edu> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> I get intermittent deadlocks wit the latest trunk. The smallest >>>>>>>>>>>>>> reproducer is a shell for loop around a small (2 processes) >>>>>>>>>>>>>> short (20 seconds) MPI application. After few tens of iterations >>>>>>>>>>>>>> the MPI_Init will deadlock with the following backtrace: >>>>>>>>>>>>>> >>>>>>>>>>>>>> #0 0x00007fa94b5d9aed in nanosleep () from /lib64/libc.so.6 >>>>>>>>>>>>>> #1 0x00007fa94b60ec94 in usleep () from /lib64/libc.so.6 >>>>>>>>>>>>>> #2 0x00007fa94960ba08 in OPAL_PMIX_PMIX1XX_PMIx_Fence >>>>>>>>>>>>>> (procs=0x0, nprocs=0, info=0x7ffd7934fb90, >>>>>>>>>>>>>> ninfo=1) at src/client/pmix_client_fence.c:100 >>>>>>>>>>>>>> #3 0x00007fa9498376a2 in pmix1_fence (procs=0x0, >>>>>>>>>>>>>> collect_data=1) at pmix1_client.c:305 >>>>>>>>>>>>>> #4 0x00007fa94bb39ba4 in ompi_mpi_init (argc=3, >>>>>>>>>>>>>> argv=0x7ffd793500a8, requested=3, >>>>>>>>>>>>>> provided=0x7ffd7934ff94) at runtime/ompi_mpi_init.c:645 >>>>>>>>>>>>>> #5 0x00007fa94bb77281 in PMPI_Init_thread (argc=0x7ffd7934ff8c, >>>>>>>>>>>>>> argv=0x7ffd7934ff80, required=3, >>>>>>>>>>>>>> provided=0x7ffd7934ff94) at pinit_thread.c:69 >>>>>>>>>>>>>> #6 0x000000000040150f in main (argc=3, argv=0x7ffd793500a8) at >>>>>>>>>>>>>> osu_mbw_mr.c:86 >>>>>>>>>>>>>> >>>>>>>>>>>>>> On my machines this is reproducible at 100% after anywhere >>>>>>>>>>>>>> between 50 and 100 iterations. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> George. >>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> devel mailing list >>>>>>>>>>>>>> de...@open-mpi.org >>>>>>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>>>>>> Link to this post: >>>>>>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18280.php >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> devel mailing list >>>>>>>>>>>>> de...@open-mpi.org >>>>>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>>>>> Link to this post: >>>>>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18281.php >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> devel mailing list >>>>>>>>>>>>> de...@open-mpi.org >>>>>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>>>>> Link to this post: >>>>>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18282.php >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> devel mailing list >>>>>>>>>>> de...@open-mpi.org >>>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>>> Link to this post: >>>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18284.php >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> devel mailing list >>>>>>>>>>> de...@open-mpi.org >>>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>>> Link to this post: >>>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18292.php >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> devel mailing list >>>>>>>>>> de...@open-mpi.org >>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>> Link to this post: >>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18294.php >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> devel mailing list >>>>>>>>>> de...@open-mpi.org >>>>>>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>>>>>> Link to this post: >>>>>>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18302.php >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> devel mailing list >>>>>> de...@open-mpi.org >>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>> Link to this post: >>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18309.php >>>>>> >>>>>> _______________________________________________ >>>>>> devel mailing list >>>>>> de...@open-mpi.org >>>>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>>> Link to this post: >>>>>> http://www.open-mpi.org/community/lists/devel/2015/10/18320.php >>>>> >>>> >>>> >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> Link to this post: >>>> http://www.open-mpi.org/community/lists/devel/2015/10/18323.php >>>> >>>> >>>> >>>> -- >>>> С Уважением, Поляков Артем Юрьевич >>>> Best regards, Artem Y. Polyakov >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> Link to this post: >>>> http://www.open-mpi.org/community/lists/devel/2015/11/18334.php >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2015/11/18335.php >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2015/11/18336.php >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/11/18337.php >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/11/18340.php >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/11/18341.php >> >> >> >> -- >> С Уважением, Поляков Артем Юрьевич >> Best regards, Artem Y. Polyakov >> >> >> >> -- >> С Уважением, Поляков Артем Юрьевич >> Best regards, Artem Y. Polyakov >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/11/18345.php >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/11/18346.php > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2015/11/18347.php > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2015/11/18348.php