WHAT: Generate an error if the user provides duplicate MCA params on the cmd line
WHY: User confusion due to unexpected behavior WHEN: Tues, Sept 16 as this is a gating issue for 1.8.3 release In the beginning, OMPI would look at a cmd line for MCA params - if a param was listed more than once, we would take the LAST value given and ignore all the rest. At some point, this behavior was changed in opal/mca/base/mca_base_cmd_line.c such that we concatenated the values into a comma-delimited list. Unfortunately, the backend parser doesn't know how to deal with such a list when converting the param to values such as INT or BOOL. In r32686, I reverted the behavior back to the original one of taking the LAST value. However, this can lead to unexpected behavior. For example, consider the case where the user provides a cmd line containing the following: ... -mca btl ^sm..... -mca btl openib..... In this case, the result will be a setting of "btl=openib", and only the openib BTL will be selected. If the user thought that all BTLs other than sm were to be considered, this could be a surprise. Likewise, note that if the order is reversed, the result would be "btl=^sm" - a completely different behavior. On the telecon, we couldn't think of any use-case where we would want the last value or concatenating behaviors. Instead, there was consensus that we should generate an error as the user is asking us to do conflicting things. However, we acknowledged that we might not understand all the use-cases, so we are issuing this as an RFC in case someone knows of a reason for the other behaviors.