[MDEV-11705] InnoDB: Failing assertion: (&log_sys->mutex)->is_owned() if server started with innodb-scrub-log Created: 2017-01-02 Updated: 2017-01-03 Resolved: 2017-01-03 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2 |
| Fix Version/s: | 10.2.4 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Elena Stepanova | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
To reproduce,
|
| Comments |
| Comment by Jan Lindström (Inactive) [ 2017-01-03 ] |
|
http://lists.askmonty.org/pipermail/commits/2017-January/010369.html |
| Comment by Marko Mäkelä [ 2017-01-03 ] |
|
The patch looks otherwise OK to me, but in the test, I think that instead of SLEEP(5), we should use include/wait_condition.inc to wait that the counter is advancing. That would make the test run normally faster, and it would avoid random test failures in a loaded test environment where nothing might happen during the 5-second wait. |
| Comment by Jan Lindström (Inactive) [ 2017-01-03 ] |
|
commit 403f6e96070a3f35745d4d59d12e222d21ac4f38 Problem was that log_scrub function did not take required log_sys mutex. Background: Unused space in log blocks are padded with MLOG_DUMMY_RECORD if innodb-scrub-log log_scrub(): Take log_sys mutex log_pad_current_log_block(): Increase srv_stats.n_log_scrubs if padding is done. srv0srv.cc: Set srv_stats.n_log_scrubs to export vars innodb_scrub_log ha_innodb.cc: Export innodb_scrub_log to global status. |