Bug #53306 | valgrind: warnings in innodb.innodb | ||
---|---|---|---|
Submitted: | 30 Apr 2010 9:38 | Modified: | 18 Oct 2010 19:37 |
Reporter: | Vasil Dimov | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | mysql-5.1-innodb | OS: | Any |
Assigned to: | Marko Mäkelä | CPU Architecture: | Any |
[30 Apr 2010 9:38]
Vasil Dimov
[30 Apr 2010 9:39]
Vasil Dimov
Full output from mtr
Attachment: innodb.innodb.valgrind.txt (text/plain), 4.47 KiB.
[4 May 2010 13:09]
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/107317
[4 May 2010 13:09]
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/107318
[4 May 2010 13:14]
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/107320
[4 May 2010 13:14]
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/107321
[4 May 2010 13: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/107322
[4 May 2010 13: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/107323
[4 May 2010 13:18]
Marko Mäkelä
With added Valgrind instrumentation to places where blocks are inserted into the flush list and copied to the doublewrite buffer, I was able to determine that fsp_init_file_page_low() should initialize the pages to zero. (Alternatively, we could make sure that higher-level routines initialize all of the pages, but that could generate more redo log.)
[5 May 2010 11:32]
Marko Mäkelä
Closed Bug #53009 as a duplicate of this.
[31 May 2010 8:28]
Bugs System
Pushed into 5.1.48 (revid:vasil.dimov@oracle.com-20100531082307-9x08gg1g7zybx2jy) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:16)
[14 Jun 2010 5:58]
Mark Callaghan
Does fsp_init_page_low() memset the entire page for correctness? Or just to avoid a valgrind warning? If this is done frequently, it is an expensive way to avoid a valgrind warning.
[14 Jun 2010 6:01]
Mark Callaghan
Does fsp_init_page_low() memset the entire page for correctness? Or just to avoid a valgrind warning? If this is done frequently, it is an expensive way to avoid a valgrind warning.
[14 Jun 2010 8:10]
Marko Mäkelä
Mark, you are right, this fix may hurt performance. I am not sure if this is a "genuine" bug. In any case, I think that it is a bad idea to write uninitialized bytes to data files. An alternative fix would be to explicitly initialize the unused data in those places that need it. I decided against that, because it would generate more redo log. I thought that the MLOG_INIT_FILE_PAGE operation would be the logical place to initialize the whole page. Come to think of it, there is a better solution: When applying the redo log entry of MLOG_INIT_FILE_PAGE, initialize the page. In other places, initialize only those bytes that would otherwise be left uninitialized, but do it outside the redo log mechanism.
[17 Jun 2010 6:13]
Bugs System
Pushed into 5.5.5-m3 (revid:alexey.kopytov@sun.com-20100615145247-8bj0vmuqlotbqsn9) (version source revid:marko.makela@oracle.com-20100504130917-qmvzbj3pgil2nuat) (merge vers: 5.1.47) (pib:16)
[17 Jun 2010 6:17]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100615150216-cubqoyn1fj9b6a2p) (version source revid:marko.makela@oracle.com-20100504130917-qmvzbj3pgil2nuat) (pib:16)
[22 Jun 2010 8:36]
Marko Mäkelä
I reviewed the code once more. The function fsp_init_file_page() is internal to fsp0fsp.c. It is only called by code that creates file-based data structures for managing the allocated pages within the tablespace. That code should not be executed too often. For a while, I thought that we could be initializing every new B-tree page twice, once in fsp_init_file_page() and then in page_create(). Something like that would certainly hurt performance. We can reopen this bug if fsp_init_file_page() is showing high in a OProfile report, for example.
[27 Jul 2010 20:33]
John Russell
Although there is some customer communication related to this bug, the specific fix appears to be primarily an internal issue. Closing without adding to Ref Man change log. (Please reopen if you feel it should be mentioned in the doc.)
[14 Oct 2010 8:38]
Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.51-ndb-7.0.20 (revid:martin.skold@mysql.com-20101014082627-jrmy9xbfbtrebw3c) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)
[14 Oct 2010 8:53]
Bugs System
Pushed into mysql-5.1-telco-6.3 5.1.51-ndb-6.3.39 (revid:martin.skold@mysql.com-20101014083757-5qo48b86d69zjvzj) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)
[14 Oct 2010 9:08]
Bugs System
Pushed into mysql-5.1-telco-6.2 5.1.51-ndb-6.2.19 (revid:martin.skold@mysql.com-20101014084420-y54ecj85j5we27oa) (version source revid:vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh) (merge vers: 5.5.5-m3) (pib:21)