[MDEV-11732] MTR leaves intermediate files after applying rdiffs to result files Created: 2017-01-06  Updated: 2022-11-17  Resolved: 2022-11-17

Status: Closed
Project: MariaDB Server
Component/s: Tests
Affects Version/s: 10.0, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Not a Bug Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-27155 mysql-test-run.pl creates temporary r... Open

 Description   

Some time ago we discussed how overlay- and other rdiff-based-problems can seemingly disappear while debugging them, and I promised to provide an example. I don't insist that it has to be fixed, but want to get it off my TODO list, and now there is a good simple real-life example in 10.0 tree.

When MTR runs a test A with a combination B which has A,B.rdiff, it applies the rdiff to a result file and creates A,B.result~ file.

Being smart, MTR not only preserves the file after test execution, but it also intentionally does not re-generate it unless the base result file or rdiff file have changed.

It is all fine until we start debugging problems, e.g. failing hunks. Since the file does not get re-created, the 'failing hunk' problem does not re-appear when we are re-running tests, which makes us miss things (that was the reason why we had the discussion).

Now in 10.0 (as of 670b85804 and possibly long before) there is an rdiff which fails to apply:

$ perl ./mtr funcs_1.is_engines_innodb,innodb_plugin
...
==============================================================================
 
TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------
 
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
1 out of 1 hunk FAILED
funcs_1.is_engines_innodb 'innodb_plugin' [ pass ]      5
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.005 of 8 seconds executing testcases
 
Completed: All 1 tests were successful.

But if you re-run the same test again, no error anymore:

$ perl ./mtr funcs_1.is_engines_innodb,innodb_plugin
...
==============================================================================
 
TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------
 
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
funcs_1.is_engines_innodb 'innodb_plugin' [ pass ]      2
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.002 of 8 seconds executing testcases
 
Completed: All 1 tests were successful.



 Comments   
Comment by Elena Stepanova [ 2022-10-08 ]

vlad.lesin,

I assume this entry will become irrelevant after your work on MDEV-27155. Please then close it.

Comment by Sergei Golubchik [ 2022-11-17 ]

failing hunk isn't an error, it's just an informational message. If the test (after the hunk has failed) still passes — it's fine, one can ignore the failing hunk.

Generated at Thu Feb 08 07:52:14 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.