Tc_log_page_size should be unflushable or server crashes if 2 XA SEs installed

Bug #1255551 reported by Laurynas Biveinis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MySQL Server
Unknown
Unknown
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
High
Laurynas Biveinis
5.1
Won't Fix
Undecided
Unassigned
5.5
Won't Fix
Undecided
Unassigned
5.6
Fix Released
High
Laurynas Biveinis

Bug Description

http://bugs.mysql.com/bug.php?id=70854:

[7 Nov 10:40] Laurynas Biveinis

Description:
Credit goes to MariaDB.

With bug 47134 fixed, if TC_LOG_MMAP is in use (because of two XA-supporting storage engines available, such as InnoDB and TokuDB), FLUSH STATUS should cause a server crash on the next XA commit.

The status variable tc_log_page_size is directly bound to tc_log_page_size source variable, which is setup once in TC_LOG_MMAP::open(). A FLUSH would cause it to be reset to zero. Then TC_LOG_MMAP::unlog() would attempt to divide by it.

How to repeat:
Code analysis. It's not easy to make a testcase due to stock MySQL not having a second XA-supporting storage engine.

Suggested fix:
Make Tc_log_page_size a SHOW_LONG_NOFLUSH variable.

Related branches

tags: added: tokudb upstream
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-743

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.