in file storage/xtradb/buf/buf0rea.c, buf_read_page_low(), thd_wait_begin() is called when synchronous is requested, however thd_wait_end() is not called in case of fil_io() returns error DB_TABLESPACE_DELETED.
in file storage/xtradb/bufbuf0rea.c, buf_page_read_low
thd_wait_begin is called when synchronous is requested, however thd_wait_end is not called in case of _fil_io returns error DB_TABLESPACE_DELETED.
in file {{storage/xtradb/buf/buf0rea.c}}, {{buf_read_page_low()}},
{{thd_wait_begin()}} is called when synchronous is requested, however {{thd_wait_end()}} is not called in case of {{fil_io()}} returns error {{DB_TABLESPACE_DELETED}}.
By the way, the bug was introduced in the changeset with the comment "Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO". You might want to consider doing something similar. Just a thought.
Sergei Golubchik
added a comment - Fixed. Thanks for looking into this!
By the way, the bug was introduced in the changeset with the comment "Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO". You might want to consider doing something similar. Just a thought.
> By the way, the bug was introduced in the changeset with the comment "Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO". You might
> want to consider doing something similar. Just a thought.
Indeed, thanks. Sergei (Glushchenko), is this included in our TP port?
Laurynas Biveinis
added a comment - Hi Sergei and Sergei -
> By the way, the bug was introduced in the changeset with the comment "Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO". You might
> want to consider doing something similar. Just a thought.
Indeed, thanks. Sergei (Glushchenko), is this included in our TP port?
Thank you guys! Sergei, Laurynas, we have it in threadpool port. Sergei, why that revision ("Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO") fixes only XtraDB engine and keeps untouched InnoDB?
Sergei Glushchenko
added a comment - Thank you guys! Sergei, Laurynas, we have it in threadpool port. Sergei, why that revision ("Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO") fixes only XtraDB engine and keeps untouched InnoDB?
There is no technical reason not to change Innodb the same way. Generally, we did not change original Innodb much, for the sake of easy merges, and because running with non-builtin Xtradb but "vanilla" plugin Innodb instead in 5.5 is uncommon scenario. Most of our improvements were done with XtraDB in mind.
Vladislav Vaintroub
added a comment - There is no technical reason not to change Innodb the same way. Generally, we did not change original Innodb much, for the sake of easy merges, and because running with non-builtin Xtradb but "vanilla" plugin Innodb instead in 5.5 is uncommon scenario. Most of our improvements were done with XtraDB in mind.
Re. InnoDB, is there an Oracle bug report that thd_wait_begin/end should called only for sync reads? I searched around, but didn't find anything.
Laurynas Biveinis
added a comment - Re. InnoDB, is there an Oracle bug report that thd_wait_begin/end should called only for sync reads? I searched around, but didn't find anything.
I did not report it, if the question is about it - I would not be able to prove the bug without commercial version of MySQL anyway.
Vladislav Vaintroub
added a comment - I did not report it, if the question is about it - I would not be able to prove the bug without commercial version of MySQL anyway.
Let's troll them and see what happens: http://bugs.mysql.com/bug.php?id=68197. In the best case it will reduce the XtraDB delta for us. Sergei Glushchenko, can you duplicate that bug for PS and link it to the threadpool MP?
Laurynas Biveinis
added a comment - Let's troll them and see what happens: http://bugs.mysql.com/bug.php?id=68197 . In the best case it will reduce the XtraDB delta for us. Sergei Glushchenko, can you duplicate that bug for PS and link it to the threadpool MP?
Fixed. Thanks for looking into this!
By the way, the bug was introduced in the changeset with the comment "Only synchronous disk reads should use thd_wait_begin with THD_WAIT_DISKIO". You might want to consider doing something similar. Just a thought.