Removes the exception for avoiding reading ahead to get the version and filetype for as-traced drmemtrace mode, as we need those values for the record_filter.
Adds explicit error checking and error return up front to the record_filter for missing version info.
Adjusts the scheduler unit test's record ordinal to account for the new read-ahead.
Adds a test with a checked-in trace of hello,world (truncated to make it smaller) that ran on 4 different cores. The test only reproduces the problem if the read-ahead in open_reader() to find the tid is removed, which I did temporarily; I kept the test as it is also a good additional general test of other corner cases. To create a test that always reproduces in our suite we would need to combine a synthetic reader with use of the scheduler in as-traced mode, which none of our unit tests are set up for.
The fix was further tested on large inputs in an internal setup which always passes a synthetic reader, where the problem reproduces every time without the fix.
Removes the exception for avoiding reading ahead to get the version and filetype for as-traced drmemtrace mode, as we need those values for the record_filter.
Adds explicit error checking and error return up front to the record_filter for missing version info.
Adjusts the scheduler unit test's record ordinal to account for the new read-ahead.
Adds a test with a checked-in trace of hello,world (truncated to make it smaller) that ran on 4 different cores. The test only reproduces the problem if the read-ahead in open_reader() to find the tid is removed, which I did temporarily; I kept the test as it is also a good additional general test of other corner cases. To create a test that always reproduces in our suite we would need to combine a synthetic reader with use of the scheduler in as-traced mode, which none of our unit tests are set up for.
The fix was further tested on large inputs in an internal setup which always passes a synthetic reader, where the problem reproduces every time without the fix.
Fixes #6721