Skip to content

MCA_BASE_VAR_SCOPE_READONLY and MCA_BASE_VAR_SCOPE_CONSTANT still set a variable to "writable" #4995

@jsquyres

Description

@jsquyres

Per #4992, if I set an MCA param to MCA_BASE_VAR_SCOPE_CONSTANT, it still shows up as "writable" in ompi_info output:

$ ompi_info --param pmix pmix3x --parsable --level 9 | grep library_version
mca:pmix:pmix3x:param:pmix_pmix3x_library_version:value:PMIx library version 3.0.0 (embedded in Open MPI)
mca:pmix:pmix3x:param:pmix_pmix3x_library_version:source:default
mca:pmix:pmix3x:param:pmix_pmix3x_library_version:status:writeable

I note that the same thing happens if I change the code to use MCA_BASE_VAR_SCOPE_READONLY, too.

Here's the code in question -- am I doing something wrong?

    asprintf(&pmix_library_version,
             "PMIx library version %s (embedded in Open MPI)", PMIx_Get_version());
    (void) mca_base_component_var_register(component, "library_version",
                                           "Version of the underlying PMIx library",
                                           MCA_BASE_VAR_TYPE_STRING,
                                           NULL, 0, 0,
                                           OPAL_INFO_LVL_4,
                                           MCA_BASE_VAR_SCOPE_READONLY,
                                           &pmix_library_version);

I see the same thing on other READONLY variables, too, such as mca_base_param_files (registered as READONLY here)

$ ompi_info --all --level 9 --parsable | grep base_param_files
mca:mca:base:param:mca_param_files:synonym_of:name:mca_base_param_files
mca:mca:base:param:mca_base_param_files:value:"/home/jsquyres/.openmpi/mca-params.conf:/home/jsquyres/bogus/etc/openmpi-mca-params.conf"
mca:mca:base:param:mca_base_param_files:source:default
mca:mca:base:param:mca_base_param_files:status:writeable
...

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions