Details
Description
NB: Fix for this bug also present in Stewart Smith' patchset: memory_barrier-experimental_5.6.4.diff.
From errorlog:
2014-07-31 21:02:00 ff6fb757190 InnoDB: Assertion failure in thread 17553455149456 in file sync0rw.cc line 690 InnoDB: Failing assertion: !lock->recursive InnoDB: We intentionally generate a memory trap. ... stack_bottom = 0xff6fb756610 thread_stack 0x48000 :0(000000ca.plt_call.MD5_Init)[0x109b476c] :0(000000ca.plt_call.MD5_Init)[0x103d7180] linux-vdso64.so.1(__kernel_sigtramp_rt64+0x0)[0xfff8fa30448] /opt/at7.0/lib64/power7/libc.so.6(gsignal-0x16f708)[0xfff8f1cf8f0] /opt/at7.0/lib64/power7/libc.so.6(abort-0x16dab4)[0xfff8f1d19c4] sync/sync0rw.cc:690(000000ca.plt_call.MD5_Init)[0x10124318] sync/sync0rw.cc:834(000000ca.plt_call.MD5_Init)[0x107d2b08] include/sync0rw.ic:917(pfs_rw_lock_x_lock_func)[0x108329b4] include/btr0sea.ic:81(000000ca.plt_call.MD5_Init)[0x1081c85c] include/btr0pcur.ic:485(btr_pcur_open_with_no_init_func)[0x107b3c74] handler/ha_innodb.cc:8374(000000ca.plt_call.MD5_Init)[0x106dfc4c] sql/handler.h:2888(000000ca.plt_call.MD5_Init)[0x103e8f64] sql/handler.cc:5520(000000ca.plt_call.MD5_Init)[0x103d7e6c] sql/handler.cc:2609(000000ca.plt_call.MD5_Init)[0x103de780] sql/sql_select.cc:18167(000000ca.plt_call.MD5_Init)[0x1023b53c] sql/table.h:1366(disable_keyread)[0x10115844] sql/sql_select.cc:3785(000000ca.plt_call.MD5_Init)[0x1011980c] sql/sql_select.cc:1338(optimize_inner)[0x1026b5fc] sql/sql_select.cc:3289(mysql_select)[0x10270180] ... Query (0xff68001a850): SELECT c FROM sbtest18 WHERE id=4968 Connection ID (thread ID): 1287
This is MariaDB-10.0, bzr revision 4308, compiled with ATC 7.0. Unlike previous (working) binaries, this one is using libaio.
Gliffy Diagrams
Attachments
Issue Links
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Below are my comments on InnoDB memory barriers framework. I will post additional comment on correctness of barriers when I complete review.
do {} while(0) is excessive, just #define os_rmb should be fine.