[MDEV-11709] lock_wait_timeout has no effect when slave_parallel_mode!=none Created: 2017-01-03 Updated: 2017-06-19 Resolved: 2017-06-19 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Locking, Replication |
| Affects Version/s: | 10.1.19 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Søren Kröger | Assignee: | Kristian Nielsen |
| Resolution: | Not a Bug | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Ubuntu LTS 16 |
||
| Description |
|
Running on a slave server, with slave_parallel_mode set to "conservative" and another process with an active lock, lock_wait_timeout won't have any effect. How to reproduce:
Result: Expected:
Workaround:
|
| Comments |
| Comment by Elena Stepanova [ 2017-01-03 ] |
|
I'm not sure there is a bug in here. That said, I'll still assign it to the locking expert svoj to double-check and confirm (or object). |
| Comment by Sergey Vojtovich [ 2017-06-16 ] |
|
I tend to agree with Elena, but I also feel like lock_wait_timeout might be more convenient. knielsen, do you feel like rpl_pause_for_ftwrl() can be thought as a lock? Should we honour lock_wait_timeout there? |
| Comment by Kristian Nielsen [ 2017-06-16 ] |
|
rpl_pause_for_ftwrl() is not a lock. Maybe what happens here is that the replication worker threads are waiting Probably a similar thing would be seen if replicating a long-running A similar case is for STOP SLAVE. It also needs to running replicated I don't mind if you make rpl_pause_for_ftwrl() time out on |
| Comment by Sergey Vojtovich [ 2017-06-19 ] |
|
If this code is not a lock, then timeout on lock_wait_timeout is semantically wrong. Please use max_statement_time as Elena suggested. knielsen, rpl_pause_for_ftwrl() already has code to handle interrupt, though I have no idea if it works well. |