Bug 951588 fix needs revert and re-fixing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Percona Server moved to https://jira.percona.com/projects/PS |
Invalid
|
High
|
Laurynas Biveinis | |
| 5.1 |
Invalid
|
High
|
Laurynas Biveinis | |
| 5.5 |
Invalid
|
High
|
Laurynas Biveinis | |
| 5.6 |
Invalid
|
High
|
Laurynas Biveinis |
Bug Description
Bug 951588 was about the fact that calling handler ::info from another thread is inherently unsafe because it overwrites the handler state, causing troubles for the handler-owning thread. The fix was to clone handler first, and then run ::info on the cloned handler.
This fix is very fragile: see bug 1113388, bug 1193264, bug 1193308, bug 1206486, bug 1205200, bug 1204859, bug 1206020, and probably others. handler::clone() was not designed for such use.
A better is fix is needed. One option would be to implement new small info-like method for handler that returns the already-available information from the handler without doing a full clone nor info.
Related branches
- Alexey Kopytov (community): Needs Fixing on 2013-09-24
- Laurynas Biveinis (community): Needs Fixing on 2013-09-15
-
Diff: 151 lines (+50/-23)2 files modifiedPercona-Server/sql/sql_show.cc (+46/-23)
Percona-Server/storage/innodb_plugin/handler/ha_innodb.cc (+4/-0)
- Alexey Kopytov (community): Needs Fixing on 2013-09-24
- Laurynas Biveinis (community): Needs Fixing on 2013-09-15
-
Diff: 151 lines (+50/-23)2 files modifiedPercona-Server/sql/sql_show.cc (+46/-23)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+4/-0)
- Alexey Kopytov (community): Needs Fixing on 2013-09-24
- Laurynas Biveinis (community): Needs Fixing on 2013-09-15
-
Diff: 146 lines (+43/-23)2 files modifiedPercona-Server/sql/sql_show.cc (+40/-23)
Percona-Server/storage/innobase/handler/ha_innodb.cc (+3/-0)
tags: | added: i-s-temp-tables qablock |
Roel Van de Paar (roel11) wrote : | #2 |
Please also check i37704 to see if it is likely the same problem (if so please sent a note from within that issue).
Roel Van de Paar (roel11) wrote : | #3 |
Bug 1260151 & bug 1260154 were marked duplicate of this one also.
Laurynas, can we push this forward? We keep running into these sort of issues and it makes run analysis hard.
i37704 analyzed, it is a different problem.
The current issue is close to the top of my TODO.
Roel Van de Paar (roel11) wrote : | #5 |
Bug 1367922 - regression?
Not a regression because it is not fixed in the first place yet.
Un-duplicated the individual I_S.GLOBAL_
Shahriyar Rzayev (rzayev-sehriyar) wrote : | #8 |
Percona now uses JIRA for bug reports so this bug report is migrated to: https:/
It appears that TABLES queries may simply do it. TEMPORARY_ TABLES the best we can do is to read the existing stats, whatever they happen to be, without calling any method first.
- Calling info() is safe on a non-cloned handler belonging to this connection. Thus I_S.TEMPORARY_
- Calling neither info() nor clone() is safe on handlers belonging to other connections. Thus for I_S.GLOBAL_