Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

btl/sm: fix race condition #1246

Merged

Conversation

ggouaillardet
Copy link
Contributor

write to file and then rename, so when the file is open for read, its content is known to have been written.

Fixes #1230

write to file and then rename, so when the file is open for read, its content is known to have been written.

Fixes open-mpi#1230
@ggouaillardet
Copy link
Contributor Author

@rhc54
i also applied the patch below, but i still get errors at run time when compiled with --disable-dlopen
(and i did not try yet without it)

i tried to disable one module, but i still get runtime errors

$ OMPI_MCA_pmix=^pmix112 OMPI_MCA_pmix_base_verbose=19 ./hello_c 2>&1 | grep pmix1
[xxx:07332] mca: base: components_register: found loaded component pmix120
[xxx:07332] mca: base: components_register: component pmix120 has no register or open function
[xxx:07332] mca: base: components_open: found loaded component pmix120
[xxx:07332] mca: base: components_open: component pmix120 open function successful
[xxx:07332] mca:base:select:( pmix) Querying component [pmix120]
[xxx:07332] mca:base:select:( pmix) Query of component [pmix120] set priority to 0
[xxx:07332] mca:base:select:( pmix) Selected component [pmix120]
[xxx:07334] mca: base: components_register: found loaded component pmix112
[xxx:07334] mca: base: components_register: component pmix112 has no register or open function
[xxx:07334] mca: base: components_register: found loaded component pmix120
[xxx:07334] mca: base: components_register: component pmix120 has no register or open function
[xxx:07334] mca: base: components_open: found loaded component pmix112
[xxx:07334] mca: base: components_open: component pmix112 open function successful
[xxx:07334] mca: base: components_open: found loaded component pmix120
[xxx:07334] mca: base: components_open: component pmix120 open function successful
[xxx:07334] mca:base:select:( pmix) Querying component [pmix112]
[xxx:07334] mca:base:select:( pmix) Query of component [pmix112] set priority to 5
[xxx:07334] mca:base:select:( pmix) Querying component [pmix120]
[xxx:07334] mca:base:select:( pmix) Query of component [pmix120] set priority to 0
[xxx:07334] mca:base:select:( pmix) Selected component [pmix112]
[xxx:07334] mca: base: close: component pmix120 closed
[xxx:07334] mca: base: close: unloading component pmix120
diff --git a/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h b/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
index 195d143..0931fc9 100644
--- a/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
+++ b/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
@@ -288,6 +288,60 @@ BEGIN_C_DECLS
 #define pmix_usock_set_blocking                 PMIX_NAME(usock_set_blocking)
 #define pmix_usock_set_nonblocking              PMIX_NAME(usock_set_nonblocking)

+/* misc stuff */
+#define pmix_add_errhandler PMIX_NAME(pmix_add_errhandler)
+#define pmix_bfrop_copy_topo PMIX_NAME(pmix_bfrop_copy_topo)
+#define pmix_bfrop_pack_bool PMIX_NAME(pmix_bfrop_pack_bool)
+#define pmix_bfrop_pack_topo PMIX_NAME(pmix_bfrop_pack_topo)
+#define pmix_bfrop_print_bool PMIX_NAME(pmix_bfrop_print_bool)
+#define pmix_bfrop_print_topo PMIX_NAME(pmix_bfrop_print_topo)
+#define pmix_bfrop_unpack_bool PMIX_NAME(pmix_bfrop_unpack_bool)
+#define pmix_bfrop_unpack_topo PMIX_NAME(pmix_bfrop_unpack_topo)
+#define pmix_client_deregister_errhandler PMIX_NAME(pmix_client_deregister_errhandler)
+#define pmix_client_notify_error PMIX_NAME(pmix_client_notify_error)
+#define pmix_client_register_errhandler PMIX_NAME(pmix_client_register_errhandler)
+#define pmix_get_errorgroup PMIX_NAME(pmix_get_errorgroup)
+#define pmix_globals_finalize PMIX_NAME(pmix_globals_finalize)
+#define pmix_globals_init PMIX_NAME(pmix_globals_init)
+#define pmix_lookup_errhandler PMIX_NAME(pmix_lookup_errhandler)
+#define pmix_pack_proc_map PMIX_NAME(pmix_pack_proc_map)
+#define pmix_pending_nspace_requests PMIX_NAME(pmix_pending_nspace_requests)
+#define pmix_pending_resolve PMIX_NAME(pmix_pending_resolve)
+#define pmix_regex_parse_nodes PMIX_NAME(pmix_regex_parse_nodes)
+#define pmix_regex_parse_procs PMIX_NAME(pmix_regex_parse_procs)
+#define pmix_remove_errhandler PMIX_NAME(pmix_remove_errhandler)
+#define pmix_server_abort PMIX_NAME(pmix_server_abort)
+#define pmix_server_commit PMIX_NAME(pmix_server_commit)
+#define pmix_server_connect PMIX_NAME(pmix_server_connect)
+#define pmix_server_deregister_errhandler PMIX_NAME(pmix_server_deregister_errhandler)
+#define pmix_server_deregister_events PMIX_NAME(pmix_server_deregister_events)
+#define pmix_server_fence PMIX_NAME(pmix_server_fence)
+#define pmix_server_get PMIX_NAME(pmix_server_get)
+#define pmix_server_lookup PMIX_NAME(pmix_server_lookup)
+#define pmix_server_notify_error PMIX_NAME(pmix_server_notify_error)
+#define pmix_server_notify_error_client PMIX_NAME(pmix_server_notify_error_client)
+#define pmix_server_publish PMIX_NAME(pmix_server_publish)
+#define pmix_server_register_errhandler PMIX_NAME(pmix_server_register_errhandler)
+#define pmix_server_register_events PMIX_NAME(pmix_server_register_events)
+#define pmix_server_spawn PMIX_NAME(pmix_server_spawn)
+#define pmix_server_unpublish PMIX_NAME(pmix_server_unpublish)
+#define pmix_start_listening PMIX_NAME(pmix_start_listening)
+#define pmix_stop_listening PMIX_NAME(pmix_stop_listening)
+#define pmix_value_cmp PMIX_NAME(pmix_value_cmp)
+
+#define PMIx_generate_ppn PMIX_NAME(PMIx_generate_ppn)
+#define PMIx_generate_regex PMIX_NAME(PMIx_generate_regex)
+#define PMIx_Notify_error PMIX_NAME(PMIx_Notify_error)
+#define PMIx_server_deregister_client PMIX_NAME(PMIx_server_deregister_client)
+#define PMIx_server_deregister_nspace PMIX_NAME(PMIx_server_deregister_nspace)
+#define PMIx_server_dmodex_request PMIX_NAME(PMIx_server_dmodex_request)
+#define PMIx_server_finalize PMIX_NAME(PMIx_server_finalize)
+#define PMIx_server_init PMIX_NAME(PMIx_server_init)
+#define PMIx_server_register_client PMIX_NAME(PMIx_server_register_client)
+#define PMIx_server_register_nspace PMIX_NAME(PMIx_server_register_nspace)
+#define PMIx_server_setup_fork PMIX_NAME(PMIx_server_setup_fork)
+#define PMIx_Store_internal PMIX_NAME(PMIx_Store_internal) 
+

 #endif /* PMIX_SYM_TRANSFORM */

@ggouaillardet ggouaillardet merged commit db4f483 into open-mpi:master Dec 21, 2015
jsquyres added a commit to jsquyres/ompi that referenced this pull request Aug 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant