Bug #85993 innochecksum read_file: Conditional jump or move depends on uninitialised value
Submitted: 19 Apr 2017 2:19 Modified: 26 Sep 2017 12:25
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0.1, 8.0.2 OS:Any
Assigned to: CPU Architecture:Any
Tags: innochecksum, innodb, valgrind

[19 Apr 2017 2:19] Laurynas Biveinis
Description:
$ ./mtr --debug-server innochecksum_2 --valgrind --valgrind-clients --big-test
...
==681== Conditional jump or move depends on uninitialised value(s)
==681==    at 0x1494A1: read_file(unsigned char*, bool, page_size_t const&, _IO_FILE*) (innochecksum.cc:395)
==681==    by 0x14B835: main (innochecksum.cc:1763)
==681== 
mysqltest: At line 33: command "$INNOCHECKSUM -v --page-type-dump $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/test/t1.ibd" failed

How to repeat:
See above
[19 Apr 2017 2:21] Laurynas Biveinis
Fixing typo in the title
[19 Apr 2017 2:21] Laurynas Biveinis
Really fixing typo in the title
[19 Apr 2017 8:18] MySQL Verification Team
Hello Laurynas,

Thank you for the report.
Observed that test is failing but not seeing the conditional jumps etc.
Source build using cmake . -DWITH_DEBUG=ON -DWITH_ASAN=ON -DWITH_BOOST=./boost/ , cmake version 3.5.1/gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904. Anything else needed? Please let us know.

Thanks,
Umesh
[19 Apr 2017 8:19] MySQL Verification Team
test results

Attachment: 85993.results (application/octet-stream, text), 8.33 KiB.

[20 Apr 2017 3:44] Laurynas Biveinis
Umesh -

You seem to have replaced -DWITH_VALGRIND=ON with -DWITH_ASAN=ON, but the former is a better match here. If I try with -DWITH_ASAN=ON, the test fails for me:

./mtr --debug-server innochecksum_2 --valgrind-clients --big-test
...

CURRENT_TEST: innodb_zip.innochecksum_2
==1888==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD.
mysqltest: At line 33: command "$INNOCHECKSUM -v --page-type-dump $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/test/t1.ibd" failed

Please try with -DWITH_VALGRIND=ON instead of -DWITH_ASAN=ON
[20 Apr 2017 5:51] Laurynas Biveinis
MTR --valgrind arg is not required, --valgrind-clients is enough
[20 Apr 2017 6:41] MySQL Verification Team
Thank you Laurynas, fully verified now.

regards,
Umesh
[20 Apr 2017 6:50] MySQL Verification Team
test results

Attachment: 85993.results1 (application/octet-stream, text), 202.41 KiB.

[14 Aug 2017 6:14] Laurynas Biveinis
Same with 8.0.2.
[26 Sep 2017 12:25] Daniel Price
Posted by developer:
 
Fixed as of the upcoming 8.0.4, 9.0.0 release, and here's the changelog entry:

 innochecksum returned a Valgrind error when run on InnoDB files with a 1K
compressed page size.