Commit fa10a65d authored by Jan Lindström's avatar Jan Lindström

MDEV-9356: innodb.innodb_bug53290 fails (crashes) on sol10-64 in buildbot

Analysis: In storage/innobase/row/row0merge.cc InnoDB calls
thd_progress_init, thd_progress_report and thd_progress_end
functions. These seem to cause crash on solaris 10 64-bit.

Fix: Disable progress reporting on UNIV_SOLARIS until the
actual issue causing the crash is fixed. The actual bug
is not on InnoDB code base.
parent c3c4d55e
...@@ -2381,10 +2381,16 @@ row_merge_sort( ...@@ -2381,10 +2381,16 @@ row_merge_sort(
of file marker). Thus, it must be at least one block. */ of file marker). Thus, it must be at least one block. */
ut_ad(file->offset > 0); ut_ad(file->offset > 0);
/* These thd_progress* calls will crash on sol10-64 when innodb_plugin
is used. MDEV-9356: innodb.innodb_bug53290 fails (crashes) on
sol10-64 in buildbot.
*/
#ifndef UNIV_SOLARIS
/* Progress report only for "normal" indexes. */ /* Progress report only for "normal" indexes. */
if (!(dup->index->type & DICT_FTS)) { if (!(dup->index->type & DICT_FTS)) {
thd_progress_init(trx->mysql_thd, 1); thd_progress_init(trx->mysql_thd, 1);
} }
#endif /* UNIV_SOLARIS */
/* Merge the runs until we have one big run */ /* Merge the runs until we have one big run */
do { do {
...@@ -2394,9 +2400,11 @@ row_merge_sort( ...@@ -2394,9 +2400,11 @@ row_merge_sort(
/* Report progress of merge sort to MySQL for /* Report progress of merge sort to MySQL for
show processlist progress field only for show processlist progress field only for
"normal" indexes. */ "normal" indexes. */
#ifndef UNIV_SOLARIS
if (!(dup->index->type & DICT_FTS)) { if (!(dup->index->type & DICT_FTS)) {
thd_progress_report(trx->mysql_thd, file->offset - num_runs, file->offset); thd_progress_report(trx->mysql_thd, file->offset - num_runs, file->offset);
} }
#endif /* UNIV_SOLARIS */
if (error != DB_SUCCESS) { if (error != DB_SUCCESS) {
break; break;
...@@ -2407,9 +2415,11 @@ row_merge_sort( ...@@ -2407,9 +2415,11 @@ row_merge_sort(
mem_free(run_offset); mem_free(run_offset);
#ifndef UNIV_SOLARIS
if (!(dup->index->type & DICT_FTS)) { if (!(dup->index->type & DICT_FTS)) {
thd_progress_end(trx->mysql_thd); thd_progress_end(trx->mysql_thd);
} }
#endif /* UNIV_SOLARIS */
DBUG_RETURN(error); DBUG_RETURN(error);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment