DynamoRIO / DynamoRIO/dynamorio

Avoid new minor releases when introducing new files in the trace directory

Open
#7,429 1 comment 0 reactions 1 assignee Claimed by @edeiana View on GitHub
Component-DrMemtrace Component-Tools
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

The scheduler looks for specific files in the trace directory when selecting the right reader to open them and returns an error when it sees a file that it doesn't recognize (see: `open_readers()` and `get_reader()` in `clients/drcachesim/scheduler/scheduler_impl.cpp`).
This means that every time we introduce a new file in the trace directory, we need to add it to the scheduler's ignore list and bump DynamoRIO's minor version, otherwise all analyzers will report an error on traces that have a new, unrecognized file.

This has already happened in Public Traces V2 (xref #6662) when we introduced `v2p.textproto` and is going to happen again with the for-human-consumption-only `info.textproto` file (which currently contains information on peak live cores count and workload phases).

We want to avoid having to bump DynamoRIO's version in the future just because we introduce new files in the trace directory that the scheduler doesn't recognize.
Proposed approaches are:
- Use an allowlist of known compression suffixes;
- Look for "drmemtrace" in the file name and only consider those files;
- Add a new, optional directory that will contain auxiliary trace files.

The last approach seems the cleanest to me.
We could have a directory: `aux` within the trace dir that contains auxiliary trace files (i.e., anything extra that is not necessary to run an analyzer, like human-readable files).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.