the parameter thread_pool_stall_limit is invalid in percona server 5.7.17

Bug #1690723 reported by Zhengsilong on 2017-05-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Status tracked in 5.7
5.5
Invalid
Undecided
Unassigned
5.6
Invalid
Undecided
Unassigned
5.7
Triaged
High
Unassigned

Bug Description

As compared with percona server 5.6. We found set_timespec_nsec() is different in function:timer_thread(file:sql/threadpool_unix.cc)

set_timespec_nsec(ts, timer->tick_interval*1000000LL); -- percona server 5.6
set_timespec_nsec(ts, timer->tick_interval*1000000); -- percona server 5.7

In percona server 5.7, the table information_schema.tp_groups has been removed, we can not observe the changes of IO_EVENT_COUNT and QUEUE_EVENT_COUNT by thread_pool_stall_limit. So we port information_schema.tp_groups from percona server 5.6. When set thread_pool_stall_limit = 20000 and do something in normal client, we find the IO_EVENT_COUNT and QUEUE_EVENT_COUNT never changes(At least 20 seconds later, there is still no change)

On the other hand, we modify "set_timespec_nsec(ts, timer->tick_interval*1000000);" in percona server 5.6(just remove "LL"), and compile again. We do the same thing on the above, the IO_EVENT_COUNT and QUEUE_EVENT_COUNT in table information_schema.tp_groups never changes, neither.

All of the above operations are performed under suse11sp2.

Zhengsilong (asdfsi) on 2017-05-15
Changed in percona-server:
assignee: nobody → Zhengsilong (asdfsi)
Changed in percona-server:
assignee: Zhengsilong (asdfsi) → Nickolay Ihalainen (ihanick)
Nickolay Ihalainen (ihanick) wrote :

32bit integer overflow in https://github.com/percona/percona-server/blob/5.7/sql/threadpool_unix.cc#L571
set_timespec_nsec(&ts, timer->tick_interval*1000000);
tick_interval defined as int.

In oracle mysql code thread_pool_stall_limit value is limited to 600 (600M, no overflow for 32bit int):
https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_thread_pool_stall_limit

Workaround, do not use thread_pool_stall_limit bigger than 2 seconds

commit b0aaa59271fd268dbf8d56eb5026ad7c18bb15a9
Merge: b4104b2 2071aee
Author: Laurynas Biveinis <email address hidden>
Date: Fri Dec 4 13:16:08 2015 +0200

    Merge Percona Server 5.6 to MySQL 5.7.9, producing Percona Server 5.7.9

Changed in percona-server:
status: New → Confirmed
Changed in percona-server:
assignee: Nickolay Ihalainen (ihanick) → nobody
tags: added: regression

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1095

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers