For some, even small, tables (with .ibd files passed through normal recovery and shutdown) innochecksum from MariaDB versions 10.1,.x and 10.2.x dumps core because of floating point exception, like this:
openxs@ao756:/tmp$ ~/dbs/maria10.2/bin/innochecksum -v table_name.ibd
|
InnoDB offline file checksum utility.
|
|
Variables (--variable-name=value)
|
and boolean options {FALSE|TRUE} Value (after reading options)
|
--------------------------------- ----------------------------------------
|
verbose TRUE
|
debug FALSE
|
skip-corrupt FALSE
|
count FALSE
|
start-page 0
|
end-page 0
|
page 0
|
per-page-details FALSE
|
leaf FALSE
|
merge 0
|
Table is uncompressed
|
Page size is 16384
|
file table_name.ibd = 147456 bytes (9 pages)...
|
InnoChecksum; checking pages in range 0 to 8
|
0 bad checksum
|
4 FIL_PAGE_INDEX
|
0 FIL_PAGE_UNDO_LOG
|
1 FIL_PAGE_INODE
|
0 FIL_PAGE_IBUF_FREE_LIST
|
2 FIL_PAGE_TYPE_ALLOCATED
|
1 FIL_PAGE_IBUF_BITMAP
|
0 FIL_PAGE_TYPE_SYS
|
0 FIL_PAGE_TYPE_TRX_SYS
|
1 FIL_PAGE_TYPE_FSP_HDR
|
0 FIL_PAGE_TYPE_XDES
|
0 FIL_PAGE_TYPE_BLOB
|
0 FIL_PAGE_TYPE_ZBLOB
|
0 FIL_PAGE_PAGE_COMPRESSED
|
0 FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED
|
0 other
|
0 max index_id
|
undo type: 0 insert, 0 update, 0 other
|
undo state: 0 active, 0 cached, 0 to_free, 0 to_purge, 0 prepared, 0 other
|
index_id #pages #leaf_pages #recs_per_page #bytes_per_page
|
787 1 1 45 1350
|
Floating point exception (core dumped)
|
If we let it create core file, gdb shows the following:
openxs@ao756:/tmp$ gdb ./innochecksum core.*
|
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
|
...
|
Core was generated by `innochecksum -v table_name.ibd'.
|
Program terminated with signal SIGFPE, Arithmetic exception.
|
#0 print_stats ()
|
at /home/buildbot/buildbot/build/mariadb-10.1.13/extra/innochecksum.cc:645
|
645 /home/buildbot/buildbot/build/mariadb-10.1.13/extra/innochecksum.cc: No such file or directory.
|
(gdb) bt
|
#0 print_stats ()
|
at /home/buildbot/buildbot/build/mariadb-10.1.13/extra/innochecksum.cc:645
|
#1 0x000055555556d8f1 in main (argc=1, argv=0x7fffffffe0e0)
|
at /home/buildbot/buildbot/build/mariadb-10.1.13/extra/innochecksum.cc:983
|
innochecksum from MySQL 5.6 or Percona Serrver 5.7.14 works without dumping core on the same .ibd file:
openxs@ao756:/tmp$ ~/dbs/5.6/bin/innochecksum -v table_name.ibd
|
InnoDB offline file checksum utility.
|
|
Variables (--variable-name=value)
|
and boolean options {FALSE|TRUE} Value (after reading options)
|
--------------------------------- ----------------------------------------
|
verbose TRUE
|
debug FALSE
|
count FALSE
|
start-page 0
|
end-page 0
|
page 0
|
file table_name.ibd = 147456 bytes (9 pages)...
|
InnoChecksum; checking pages in range 0 to 8
|