On Oct 11, 2011, at 01:17 , Ralph Castain wrote: > > On Oct 10, 2011, at 11:29 AM, Ralph Castain wrote: > >> >> On Oct 10, 2011, at 11:14 AM, George Bosilca wrote: >> >>> Ralph, >>> >>> If you don't mind I would like to understand this issue a little bit more. >>> What exactly is broken in the termination detection? >>> >>>> From a network point of view, there is a slight issue with the commit >>>> 25245. A direct call to exit will close all pending sockets, with a linger >>>> of 60 seconds (quite bad if you use static ports as an example). There are >>>> proper protocols to shutdown sockets in a reliable way, maybe it is time >>>> to implement one of them. > > I should have clarified something here. The change in r25245 doesn't cause > the daemons to directly call exit. It causes them to call orte_quit, which > runs thru orte_finalize on its way out. So if the oob properly shuts down its > sockets, then there will be no issue with lingering sockets. > > The question has always been: does the oob properly shut down sockets? If > someone has time to address that issue, it would indeed be helpful.
Please, allow me to clarify this one. We lived with the OOB issue for 7 (oh a lucky number) years, and we always manage to patch the rest of the ORTE to deal with. Why suddenly someone would bother to fix it? george. > > >> >> Did I miss this message somewhere? I didn't receive it. >> >> The problem is that the daemons with children are not seeing the sockets >> close when their child daemons terminate. So the lowest layer of daemons >> terminate (as they have no children). The next layer does not terminate, >> leaving mpirun hanging. >> >> What's interesting is that mpirun does see the sockets directly connected to >> it close. As you probably recall, the binomial routed module has daemons >> directly callback to mpirun, so that connection is created. The socket to >> the next level of daemon gets created later - it is this later socket whose >> closure isn't being detected. >> >> From what I could see, it appeared to be a progress issue. The socket may be >> closed, but the event lib may not be progressing to detect it. As we intend >> to fix that anyway with the async progress work, and static ports are not >> the default behavior (and rarely used), I didn't feel it worth leaving the >> trunk hanging while continuing to chase it. >> >> If someone has time, properly closing the sockets is something we've talked >> about for quite awhile, but never gotten around to doing. I'm not sure it >> will resolve this problem, but would be worth doing anyway. >> >> >>> >>> Thanks, >>> george. >>> >>> On Oct 10, 2011, at 12:40 , Ralph Castain wrote: >>> >>>> It wasn't the launcher that was broken, but termination detection, and not >>>> for all environments (e.g., worked fine for slurm). It is a >>>> progress-related issue. >>>> >>>> Should be fixed in r25245. >>>> >>>> >>>> On Oct 10, 2011, at 8:33 AM, Shamis, Pavel wrote: >>>> >>>>> + 1 , I see the same issue. >>>>> >>>>>> -----Original Message----- >>>>>> From: devel-boun...@open-mpi.org [mailto:devel-boun...@open-mpi.org] >>>>>> On Behalf Of Yevgeny Kliteynik >>>>>> Sent: Monday, October 10, 2011 10:24 AM >>>>>> To: OpenMPI Devel >>>>>> Subject: [OMPI devel] Launcher in trunk is broken? >>>>>> >>>>>> It looks like the process launcher is broken in the OMPI trunk: >>>>>> If you run any simple test (not necessarily including MPI calls) on 4 or >>>>>> more nodes, the MPI processes won't be killed after the test finishes. >>>>>> >>>>>> $ mpirun -host host_1,host_2,host_3,host_4 -np 4 --mca btl sm,tcp,self >>>>>> /bin/hostname >>>>>> >>>>>> Output: >>>>>> host_1 >>>>>> host_2 >>>>>> host_3 >>>>>> host_4 >>>>>> >>>>>> And test is hanging...... >>>>>> >>>>>> I have an older trunk (r25228), and everything is OK there. >>>>>> Not sure if it means that something was broken after that, or the problem >>>>>> existed before, but kicked in only now due to some other change. >>>>>> >>>>>> -- YK >>>>>> _______________________________________________ >>>>>> devel mailing list >>>>>> de...@open-mpi.org >>>>>> hxxp://www.open-mpi.org/mailman/listinfo.cgi/devel >>>>> >>>>> >>>>> _______________________________________________ >>>>> devel mailing list >>>>> de...@open-mpi.org >>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> >>>> >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel