[MDEV-781] LP:514135 - check_warnings_post_shutdown ignores per-test suppressions Created: 2010-01-29  Updated: 2023-11-29  Resolved: 2023-11-29

Status: Closed
Project: MariaDB Server
Component/s: Tests
Affects Version/s: 5.1.67, 5.2.14, 5.3.12, 5.5, 10.0
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Alex Budovski (Inactive) Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug514135.xml    

 Description   

The test main.innodb_bug39438 adds a test-specific suppression via mtr.add_suppression. So far so good.

The test runner runs this test, and it passes (call mtr.check_warnings skips the expected warning).

Then, sub check_warnings_post_shutdown runs. This completely ignores any per-test warnings and finds the expected warning (that was supposed to be suppressed) in the warning log and fails:

==============================================================================
TEST                                      RESULT   TIME (ms)
------------------------------------------------------------
 
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
main.innodb_bug39438                     [ pass ]    187
Yoyoyoyo
***Warnings generated in error logs during shutdown after running tests: main.innodb_bug39
438
 
100129 14:58:42  InnoDB: Error: table 'test/bug39438'  <-- this was supposed to be suppressed.
 
------------------------------------------------------------
The servers were restarted 0 times
Spent 0.187 of 16 seconds executing testcases
 
All 1 tests were successful.
 
Errors/warnings were found in logfiles during server shutdown after running the
following sequence(s) of tests:
    main.innodb_bug39438
mysql-test-run: *** ERROR: There where errors/warnings in server logs after running test c
ases.
 

Note: mtr.add_suppression is doing its job correctly, but the _post_shutdown routine completely ignores such suppressions, only using the extract_warning_lines perl routine.



 Comments   
Comment by Kristian Nielsen [ 2010-01-29 ]

Re: check_warnings_post_shutdown ignores per-test suppressions
I agree that this is a problem. Checking for (and suppressing) warnings inside the mysqld being tested is broken design, as it does not work to test the server during shutdown.

One way to fix this is to change mtr.add_suppression() to write the added suppressions to a CSV type table. Then the underlying .csv file could be read by the mysql-test-run.pl script and all warning checks could take place there.

A possibly better option would be to change the mtr.add_suppression() into a native mysqltest command, which would be more robust and could write suppressions into a file for mysql-test-run.pl to inspect.

Until this is implemented, possible work-arounds include:
1. Delay test case end until expected warnings hit the log (eg. sync_slave_with_master at end of test script or similar).
2. If 1 is not possible, add a global suppression in mysql-test-run.pl, possibly changing table names etc. to be more unique (to avoid accidentally suppressing real warnings)

Comment by Rasmus Johansson (Inactive) [ 2010-08-08 ]

Launchpad bug id: 514135

Comment by Elena Stepanova [ 2015-11-06 ]

It is not happening with the mentioned test anymore, but the general point is till valid – there is no good way to suppress warnings produced on server shutdown, or warnings that MTR considers being generated on server shutdown.

Generated at Thu Feb 08 06:31:18 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.