Hi!

>>>>> "Vladimir" == Vladimir Kolesnikov <[email protected]> writes:

Vladimir> Hi Sanja,
Vladimir> I have seen this case before and my analysis showed that the
Vladimir> uninitialized bytes are at the tail of 512-byte blocks. This is not a
Vladimir> bug. This happens because we write data block-by-block and the last
Vladimir> block is likely to be only partially filled with data. If you have
Vladimir> evidence of any real probem with this please let me know, otherwise I
Vladimir> will close the bug.

We would prefer to not have this happen when compiled with HAVE_valgrind.
For example, if we ignore these, we will also miss bugs when you
compile uninitialized bytes into the middle of a block.

For example, in MyISAM we handle it when writing a block:

#ifdef HAVE_valgrind
  {
    length=mi_getint(buff);
    bzero((uchar*) buff+length,keyinfo->block_length-length);
    length=keyinfo->block_length;
  }
#endif

In other words, we explicitly fill the not used parts with 0 to ensure
that valgrind doesn't complain.

HAVE_valgrind is only defined in debug builds, so there is no speed
penally for production systems.

Regards,
Monty

-- 
Uninitialised memory write in XTDatabaseLog::xlog_append
https://bugs.launchpad.net/bugs/451080
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to