mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-28124 Server crashes in Explain_aggr_filesort::print_json_members
SHOW EXPLAIN/ANALYZE FORMAT=JSON tries to access items that have already been freed by a call to free_items() during THD::cleanup_after_query(). The solution is to disallow APC calls including SHOW EXPLAIN/ANALYZE just before the call to free_items().
This commit is contained in:
committed by
Sergei Petrunia
parent
a0475cb9ca
commit
02c3babdec
@ -131,9 +131,9 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
|
||||
14 14 stage/sql/Commit (stage) STATEMENT 0
|
||||
15 15 stage/sql/closing tables (stage) STATEMENT 0
|
||||
16 16 stage/sql/Starting cleanup (stage) STATEMENT 0
|
||||
17 17 stage/sql/Freeing items (stage) STATEMENT 0
|
||||
18 18 wait/io/socket/sql/client_connection send STATEMENT 0
|
||||
19 19 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STATEMENT 0
|
||||
17 18 stage/sql/Freeing items (stage) STATEMENT 0
|
||||
18 18 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 17
|
||||
19 19 wait/io/socket/sql/client_connection send STATEMENT 0
|
||||
20 21 stage/sql/Reset for next command (stage) STATEMENT 0
|
||||
21 21 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 20
|
||||
22 22 wait/synch/mutex/sql/THD::LOCK_thd_data lock STATEMENT 0
|
||||
@ -155,9 +155,9 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
|
||||
38 38 stage/sql/Commit (stage) STATEMENT 24
|
||||
39 39 stage/sql/closing tables (stage) STATEMENT 24
|
||||
40 40 stage/sql/Starting cleanup (stage) STATEMENT 24
|
||||
41 41 stage/sql/Freeing items (stage) STATEMENT 24
|
||||
42 42 wait/io/socket/sql/client_connection send STATEMENT 24
|
||||
43 43 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STATEMENT 24
|
||||
41 42 stage/sql/Freeing items (stage) STATEMENT 24
|
||||
42 42 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 41
|
||||
43 43 wait/io/socket/sql/client_connection send STATEMENT 24
|
||||
44 45 stage/sql/Reset for next command (stage) STATEMENT 24
|
||||
45 45 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 44
|
||||
46 46 wait/synch/mutex/sql/THD::LOCK_thd_data lock STATEMENT 24
|
||||
@ -179,9 +179,9 @@ relative_event_id relative_end_event_id event_name comment nesting_event_type re
|
||||
62 62 stage/sql/Commit (stage) STATEMENT 48
|
||||
63 63 stage/sql/closing tables (stage) STATEMENT 48
|
||||
64 64 stage/sql/Starting cleanup (stage) STATEMENT 48
|
||||
65 65 stage/sql/Freeing items (stage) STATEMENT 48
|
||||
66 66 wait/io/socket/sql/client_connection send STATEMENT 48
|
||||
67 67 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STATEMENT 48
|
||||
65 66 stage/sql/Freeing items (stage) STATEMENT 48
|
||||
66 66 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 65
|
||||
67 67 wait/io/socket/sql/client_connection send STATEMENT 48
|
||||
68 69 stage/sql/Reset for next command (stage) STATEMENT 48
|
||||
69 69 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 68
|
||||
70 70 wait/synch/mutex/sql/THD::LOCK_thd_data lock STATEMENT 48
|
||||
@ -207,8 +207,8 @@ select "With a third part to make things complete" as payload NULL NULL
|
||||
88 88 stage/sql/closing tables (stage) STATEMENT 72
|
||||
89 89 stage/sql/Starting cleanup (stage) STATEMENT 72
|
||||
90 92 stage/sql/Freeing items (stage) STATEMENT 72
|
||||
91 91 wait/io/socket/sql/client_connection send STAGE 90
|
||||
92 92 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 90
|
||||
91 91 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 90
|
||||
92 92 wait/io/socket/sql/client_connection send STAGE 90
|
||||
93 110 statement/sql/select select "And this is the second part of a multi query" as payload;
|
||||
select "With a third part to make things complete" as payload NULL NULL
|
||||
94 96 stage/sql/starting (stage) STATEMENT 93
|
||||
@ -226,8 +226,8 @@ select "With a third part to make things complete" as payload NULL NULL
|
||||
106 106 stage/sql/closing tables (stage) STATEMENT 93
|
||||
107 107 stage/sql/Starting cleanup (stage) STATEMENT 93
|
||||
108 110 stage/sql/Freeing items (stage) STATEMENT 93
|
||||
109 109 wait/io/socket/sql/client_connection send STAGE 108
|
||||
110 110 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 108
|
||||
109 109 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 108
|
||||
110 110 wait/io/socket/sql/client_connection send STAGE 108
|
||||
111 129 statement/sql/select select "With a third part to make things complete" as payload NULL NULL
|
||||
112 113 stage/sql/starting (stage) STATEMENT 111
|
||||
113 113 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 112
|
||||
@ -242,9 +242,9 @@ select "With a third part to make things complete" as payload NULL NULL
|
||||
122 122 stage/sql/Commit (stage) STATEMENT 111
|
||||
123 123 stage/sql/closing tables (stage) STATEMENT 111
|
||||
124 124 stage/sql/Starting cleanup (stage) STATEMENT 111
|
||||
125 125 stage/sql/Freeing items (stage) STATEMENT 111
|
||||
126 126 wait/io/socket/sql/client_connection send STATEMENT 111
|
||||
127 127 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STATEMENT 111
|
||||
125 126 stage/sql/Freeing items (stage) STATEMENT 111
|
||||
126 126 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 125
|
||||
127 127 wait/io/socket/sql/client_connection send STATEMENT 111
|
||||
128 129 stage/sql/Reset for next command (stage) STATEMENT 111
|
||||
129 129 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 128
|
||||
130 130 wait/synch/mutex/sql/THD::LOCK_thd_data lock STATEMENT 111
|
||||
@ -266,9 +266,9 @@ select "With a third part to make things complete" as payload NULL NULL
|
||||
146 146 stage/sql/Commit (stage) STATEMENT 132
|
||||
147 147 stage/sql/closing tables (stage) STATEMENT 132
|
||||
148 148 stage/sql/Starting cleanup (stage) STATEMENT 132
|
||||
149 149 stage/sql/Freeing items (stage) STATEMENT 132
|
||||
150 150 wait/io/socket/sql/client_connection send STATEMENT 132
|
||||
151 151 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STATEMENT 132
|
||||
149 150 stage/sql/Freeing items (stage) STATEMENT 132
|
||||
150 150 wait/synch/mutex/sql/THD::LOCK_thd_kill lock STAGE 149
|
||||
151 151 wait/io/socket/sql/client_connection send STATEMENT 132
|
||||
152 153 stage/sql/Reset for next command (stage) STATEMENT 132
|
||||
153 153 wait/synch/mutex/sql/THD::LOCK_thd_data lock STAGE 152
|
||||
disconnect con1;
|
||||
|
Reference in New Issue
Block a user