the parameter thread_pool_stall_limit is invalid in percona server 5.7.17

Bug #1690723 reported by Zhengsilong
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)
Changed in percona-server:
assignee: nobody → Zhengsilong (asdfsi)
Changed in percona-server:
assignee: Zhengsilong (asdfsi) → Nickolay Ihalainen (ihanick)
Revision history for this message
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
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.