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

storage config target_systems value seemingly accepts partition level specification, but then nothing is written to selected file. #3402

Closed
CicadaDennis opened this issue Feb 25, 2025 · 2 comments

Comments

@CicadaDennis
Copy link

I tried setting the storage.target_systems so that output to debug partitions would go to a different file than a storage config for the general partitions, but when I do that, nothing is getting written out to the results database file, despite reframe output including the correct filename/location for the results database file. The following config entry:

        {
            'backend': 'sqlite',
            'enable': True,
            'sqlite_db_file_mode': "660",
            'sqlite_db_file': "/N/project/radl/regression_tests/DebugTests.db",
            'target_systems': ["quartz:debug","quartz:gpu-debug","quartz:interactive","bigred200:debug","bigred200:gpu-debug"]
        },

results in nothing being written to the file, although, the following is written by ReFrame, during a test:

[ReFrame Setup]
  version:           4.7.3
  command:           '/N/soft/rhel8/reframe/4.7.3/bin/reframe -C config.py -c tests/stream4.py --system quartz:gpu-debug --prgenv=gnu -r --keep-stage-files --save-log-files --output ./output --stage ./stage --report-file ./reports/quartz_stream_report_202502241504.json --timestamp=%FT-%H-%M'
.
.
.
  results database:  '/N/project/radl/regression_tests/DebugTests.db'

ReFrame does seem to know where I want the test results to be written when I use the above config. But it doesn't write anything to the file.

However, when using the following config instead of the above, ReFrame does write to the dbfile:

        {
            'backend': 'sqlite',
            'enable': True,
            'sqlite_db_file_mode': "660",
            'sqlite_db_file': "/N/project/radl/regression_tests/DebugTests.db",
            'target_systems': ["quartz"]
        },

So when I specify target_systems with partition level information, even though ReFrame seems to parse and at some level to correctly set the results database to be the file specified by sqlite_db_file in the config, when the sqlite_db_file value is set using target_systems values that include partitions, nothing is written out to the results database file.

Perhaps ReFrame should not set or show a value for the results database file in this case,
or perhaps it would not be too difficult to change the behavior so that ReFrame writes out to the results database file,
since ReFrame does seem to know what file is specified in these cases.

@vkarak
Copy link
Contributor

vkarak commented Mar 12, 2025

This is expected, but documented poorly and the fact that --show-config reports the right file in case of partition scopes is confusing.

This is what happens: not all configuration options have an effect at partition level, since many of them affect global aspects, such as the database file. Switching system partitions (and therefore configuration options) is something that happens only during test execution, so only options that are related to tests (e.g., general/trap_job_errors, general/use_login_shell etc.) will "understand" partition scope changes.

The --show-config option does not know if the requested option has a system or partition-specific effect, so it simply performs the resolution based on the --system option and the target_systems scope.

Documenting the scope of all configuration options and maybe adding metadata to help --show-config show always the right value probably deserves a separate issue. I will open one.

@vkarak
Copy link
Contributor

vkarak commented Mar 13, 2025

Closing, replaced by #3427.

@vkarak vkarak closed this as completed Mar 13, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in ReFrame Backlog Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

2 participants