Can you clarify -- I can parse your text multiple ways.  Which are you voting 
for?

1. show_help + return error code in all cases.
2. if OPAL_ENABLE_DEBUG, show_help + exit(1), else silently return error code.
3. show_help.  if OPAL_ENABLE_DEBUG, exit(1), else return error code.



On Nov 1, 2011, at 4:50 PM, George Bosilca wrote:

> This is a much saner solution. We [mostly] stayed away from calling exit deep 
> into our libraries, there is no reason to add it now. I'll vote in favor of 
> show_help + return code.
> 
>  george.
> 
> On Nov 1, 2011, at 15:14 , Jeff Squyres wrote:
> 
>> 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/
>> 
>> 
>> _______________________________________________
>> 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


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to