| Bug #24533 | uninited null_bit of m_after_image | ||
|---|---|---|---|
| Submitted: | 23 Nov 2006 7:09 | Modified: | 27 Nov 2006 18:46 |
| Reporter: | Andrei Elkin | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Row Based Replication ( RBR ) | Severity: | S2 (Serious) |
| Version: | 5.1.14 | OS: | |
| Assigned to: | Mats Kindahl | CPU Architecture: | Any |
[23 Nov 2006 9:15]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/15749 ChangeSet@1.2371, 2006-11-23 10:15:02+01:00, mats@romeo.(none) +1 -0 BUG#24533 (uninitialized null but of m_after_image): Patch to fix valgrind warning that uninitialized bytes were written. The warning was caused by set_default(), which assumes that the field pointer is pointing into record[0], while all other functions honors the move_field_offset().
[23 Nov 2006 9:44]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/15750 ChangeSet@1.2372, 2006-11-23 10:43:43+01:00, mats@romeo.(none) +1 -0 BUG#24533 (uninitialized null bits in m_after_image): Removing valgrind memory checks from code.
[27 Nov 2006 18:46]
Paul DuBois
Noted in 5.1.14 changelog. Some unnecessary Valgrind warnings were removed from the server.

Description: Showed up as VALGRIND: 'Syscall param pwrite64(buf) points to uninitialised byte(s)' COUNT: 2 FUNCTION: (within FILES: slave.err TESTS: rpl_row_tabledefs_2myisam rpl_row_tabledefs_3innodb STACK: at 0x4D4090C: (within /lib64/tls/libpthread-0.60.so) by 0x938F33: my_pwrite (my_pread.c:150) by 0x88FB8B: _mi_update_static_record (mi_statrec.c:92) by 0x896C6E: mi_update (mi_update.c:158) by 0x6D34E8: handler::ha_update_row(char const*, char*) (handler.cc:3669) by 0x6995B4: Rows_log_event::exec_event(st_relay_log_info*) (log_event.cc:5780) by 0x74832D: exec_relay_log_event(THD*, st_relay_log_info*) (slave.cc:1802) by 0x745EDA: handle_slave_sql (slave.cc:2363) The stack says that uninited bytes of new record instance are passed to the storage. How to repeat: mysql-test-run rpl_row_tabledefs_2myisam note, that this stack with rpl_row_tabledefs_3innodb is a bug in the test (no opt file, see bug#24490). Suggested fix: either unpack into record[0] all the time (such patch The patch got committed to bug#24486), or consider to fill the extra fields in the record later after unpack.