From 3884629d888c48ec113de6463db569c9edc907d6 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 13 Sep 2005 20:19:59 +0200 Subject: Bug#12845 - Stress test: Server crashes on CREATE .. SELECT statement Solution for 4.0 and 4.1. If the caller cannot re-open table(s), it gives a NULL 'refresh' argument to open_table(). We used to ignore flushes then. Now we ignore drops too. --- sql/sql_base.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sql/sql_base.cc') diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 7d3bb81793a..bc2ad9fff50 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -871,6 +871,13 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name, { if (table->version != refresh_version) { + if (! refresh) + { + /* Ignore flush for now, but force close after usage. */ + thd->version= table->version; + continue; + } + /* ** There is a refresh in progress for this table ** Wait until the table is freed or the thread is killed. -- cgit v1.2.1