1
1
openmpi/opal/mca/btl/tcp
George Bosilca 5b8616d890 Fix the race condition in endpoint connection initialization. The race
was quite subtle, and only happened on the process with the smallest
guid (as this process will tear down the connection created locally and
replace it with the result of accept). If multiple threads are active in
the system, the deadlock occurs during the recv event deletion as one
thread will hold the recv event lock of the endpoint and try to access
the TCP event base lock, while the other thread will hold the TCP event
base lock while trying to access the recv event lock (in case data is
available on the socket).

The proposed solution let the event callback fail to process the data,
preventing the deadlock and allowing the other thread to always complete
it's job. As the event is not execute the same triggered will trigger
again at the next opportunity, so this solution introduce a minimal
delay in the connection establishement.
2014-12-13 01:45:00 -05:00
..
btl_tcp_addr.h George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_component.c Revert "Merge pull request #275 from hjelmn/btlmod" 2014-11-19 23:22:43 -07:00
btl_tcp_endpoint.c Fix the race condition in endpoint connection initialization. The race 2014-12-13 01:45:00 -05:00
btl_tcp_endpoint.h George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_frag.c George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_frag.h Revert "Merge pull request #275 from hjelmn/btlmod" 2014-11-19 23:22:43 -07:00
btl_tcp_ft.c George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_ft.h George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_hdr.h George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
btl_tcp_proc.c ompi_proc_finalize has an interesting side effect. A proc is 2014-11-28 18:26:36 -05:00
btl_tcp_proc.h Don't release the provided opal_proc in the error path. 2014-11-06 08:42:23 -08:00
btl_tcp.c Revert "Merge pull request #275 from hjelmn/btlmod" 2014-11-19 23:22:43 -07:00
btl_tcp.h Fix the race condition in endpoint connection initialization. The race 2014-12-13 01:45:00 -05:00
configure.m4 George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
help-mpi-btl-tcp.txt George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-) 2014-07-26 00:47:28 +00:00
Makefile.am configury: new OPAL_SET_LIB_PREFIX/ORTE_SET_LIB_PREFIX macros 2014-10-22 10:32:19 -07:00