We talked about this on the call today. A good suggestion was made: call show_help/opal_finalize/exit only when OPAL_ENABLE_DEBUG is true. Otherwise, return an error code.
If no one objects to this, I'll commit this tomorrow. On Oct 31, 2011, at 4:16 PM, Jeff Squyres wrote: > WHAT: what to do if registering an MCA param results in an error? > > WHERE: opal/mca/base/mca_base_param.c > > WHY: MCA param re-registration issues should be treated as OMPI developer > errors > > WHEN: COB Friday, 4 Nov 2011 > > ----------------- > > Short version: > > Re-registering an MCA param to be a different type (e.g., it was initially > registered to be a string, but was later re-registered to be an int) should > be treated as an OMPI developer error, and should opal_finalize()/exit(1). > > More details: > > A mistaken MCA param re-registration recently caused an orted segv. > > The MCA param subsystem was fixed to avoid this segv, but silently convert > the MCA param to the newly-registered type. Upon reflection and some > discussion, this seems to be a bad idea. Instead, we should loudly complain > via a show_help message and then exit(1). > > Specifically: this kind of behavior is clearly an error and should be fixed. > Unfortunately, in most cases, we don't actually check the return value from > MCA param registration functions, so if we change the MCA param function to > simply return a non OPAL_SUCCESS status, it's unlikely that anyone will > notice until some code tries to read the param value, likely still resulting > in a segv. > > Does anyone have heartburn if I change the error behavior to > opal_finalize()/exit(1)? > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/