Sergei,

11.05.2012 19:44, Sergei Golubchik wrote:
=== modified file 'mysql-test/r/read_only.result'
--- a/mysql-test/r/read_only.result     2009-03-06 14:56:17 +0000
+++ b/mysql-test/r/read_only.result     2012-05-09 18:59:45 +0000
@@ -59,7 +59,7 @@
  connection con1;
  select @@global.read_only;
  @@global.read_only
-0
+1
This is prone to race conditions.
Please, fix the test to remove "send" here and below.
(assuming the new result is correct)


But is it correct ?
Why set read_only is not blocked by a write locked myisam table?

It's not blocked as we ceased incrementing the refresh_version in this case:

+    /* No need to close the open tables if we just set the readonly state */
+    if (!set_readonly_mode)
+      refresh_version++;                       // Force close of open tables
+


Right, this test with the 'send set read_only' should be either removed or updated.

Where are the tests for the changed functionality?

No specific tests yet.
I was to lazy to add the new test while i was not sure i did the correct thing. Hoped to get the quick answer.

=== modified file 'sql/sql_base.cc'
--- a/sql/sql_base.cc   2012-04-19 06:16:30 +0000
+++ b/sql/sql_base.cc   2012-05-09 18:59:45 +0000
@@ -933,7 +938,8 @@
        for (uint idx=0 ; idx<  open_cache.records ; idx++)
        {
          TABLE *table=(TABLE*) hash_element(&open_cache,idx);
-        if (table->in_use)
+        if (table->in_use&&
+            (!set_readonly_mode || !table->file->has_transactions()))
I wonder how this could work. The line below sets a flag *on a thread*.
The task description tells "not wait for transactional tables", while your
change means "not set a flag if all tables used in a thread are
transactional". That is, if a thread uses both transactional and
non-transactional tables, your change does nothing.

That's right, it' won't work with the mixed types of tables.
But as the customer didn't ask for that, maybe the simplest solution will do here.



Back to my first question - where are the tests for this new task?


Will develop some ASAP.

HF

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to