| Bug #26015 | valgrind warning PollGuard::unlock_and_signal()/NdbCondition_Destroy | ||
|---|---|---|---|
| Submitted: | 1 Feb 2007 16:04 | Modified: | 8 Feb 2007 7:46 |
| Reporter: | Tomas Ulin | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Replication | Severity: | S1 (Critical) |
| Version: | 5.1 | OS: | |
| Assigned to: | Magnus BlÄudd | CPU Architecture: | Any |
[6 Feb 2007 21:06]
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/19448 ChangeSet@1.2425, 2007-02-06 22:06:13+01:00, msvensson@pilot.mysql.com +1 -0 Bug#26015 valgrind warning PollGuard::unlock_and_signal()/NdbCondition_Destroy - Add variable "ndbcluster_binlog_terminating" and use that to signal the cluster binlog thread it's time to shutdown. This allows exact control of when the thread shutdown, previous implementation would start shutdown of the thread as soon as the mysqld started shutdown. Now we will shutdown cluster binlog thread in 'ndbcluster_binlog_end'
[7 Feb 2007 17:15]
Tomas Ulin
pushed to 5.1.16
[8 Feb 2007 7:46]
Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.
If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at
http://dev.mysql.com/doc/en/installing-source.html
Documented bugfix in 5.1.16 changelog.
Changed bug category to Cluster:Replication.

Description: first occurence found in ndb clone Fri Dec 22 13:21:00 2006 msvensson [C=4] (60 lines) BUG#22694 VALGRIND: 'Invalid read of size 8' COUNT: 1 FUNCTION: PollGuard::unlock_and_signal() FILES: slave.err TESTS: rpl_ndb_auto_inc STACK: at 0x99144C: PollGuard::unlock_and_signal() (NdbWaiter.hpp:103) by 0x9926CF: PollGuard::wait_n_unlock(int, unsigned short, unsigned, bool) (TransporterFacade.cpp:1370) by 0x91E583: Ndb::sendRecSignal(unsigned short, unsigned, NdbApiSignal*, unsigned, unsigned*) (Ndbif.cpp:1416) by 0x919C78: Ndb::releaseConnectToNdb(NdbTransaction*) (Ndblist.cpp:467) by 0x91541E: Ndb::doDisconnect() (Ndb.cpp:234) by 0x91FF75: Ndb::~Ndb() (Ndbinit.cpp:147) by 0x712C59: Thd_ndb::~Thd_ndb() (ha_ndbcluster.cc:376) by 0x719EA7: ndbcluster_close_connection(handlerton*, THD*) (ha_ndbcluster.cc:5965) by 0x6FE85C: closecon_handlerton(THD*, st_plugin_int*, void*) (handler.cc:556) by 0x7D6BD8: plugin_foreach_with_mask(THD*, char (*)(THD*, st_plugin_int*, void*), int, unsigned, void*) (sql_plugin.cc:993) by 0x6019B5: THD::~THD() (sql_class.cc:477) by 0x78CD95: handle_slave_sql (slave.cc:2458) by 0x4D44192: start_thread (in /lib64/libpthread-2.4.so) by 0x52B745C: clone (in /lib64/libc-2.4.so) Address 0x54E99E8 is 656 bytes inside a block of size 1,312 free'd at 0x4A2046E: free (vg_replace_malloc.c:233) by 0x92000A: Ndb::~Ndb() (Ndbinit.cpp:164) by 0x7445F9: ndb_binlog_thread_func (ha_ndbcluster_binlog.cc:3992) by 0x4D44192: start_thread (in /lib64/libpthread-2.4.so) by 0x52B745C: clone (in /lib64/libc-2.4.so) VALGRIND: 'Syscall param futex(futex) points to unaddressable byte(s)' COUNT: 1 FUNCTION: __lll_mutex_lock_wait FILES: slave.err TESTS: rpl_ndb_auto_inc STACK: at 0x4D49B48: __lll_mutex_lock_wait (in /lib64/libpthread-2.4.so) Address 0x54E9ED8 is 0 bytes inside a block of size 48 free'd at 0x4A2046E: free (vg_replace_malloc.c:233) by 0x98139A: NdbCondition_Destroy (NdbCondition.c:138) by 0x94BE8A: NdbDictionaryImpl::~NdbDictionaryImpl() (NdbDictionaryImpl.cpp:1387) by 0x920002: Ndb::~Ndb() (Ndbinit.cpp:164) by 0x7445F9: ndb_binlog_thread_func (ha_ndbcluster_binlog.cc:3992) by 0x4D44192: start_thread (in /lib64/libpthread-2.4.so) by 0x52B745C: clone (in /lib64/libc-2.4.so) VALGRIND: 'Invalid read of size 4' COUNT: 1 FUNCTION: pthread_cond_signal@@GLIBC_2.3.2 FILES: slave.err TESTS: rpl_ndb_auto_inc STACK: at 0x4D47B4A: pthread_cond_signal@@GLIBC_2.3.2 (in /lib64/libpthread-2.4.so) Address 0x54E9ED8 is 0 bytes inside a block of size 48 free'd at 0x4A2046E: free (vg_replace_malloc.c:233) by 0x98139A: NdbCondition_Destroy (NdbCondition.c:138) by 0x94BE8A: NdbDictionaryImpl::~NdbDictionaryImpl() (NdbDictionaryImpl.cpp:1387) by 0x920002: Ndb::~Ndb() (Ndbinit.cpp:164) by 0x7445F9: ndb_binlog_thread_func (ha_ndbcluster_binlog.cc:3992) by 0x4D44192: start_thread (in /lib64/libpthread-2.4.so) by 0x52B745C: clone (in /lib64/libc-2.4.so) How to repeat: Shows up occasionally in pbuild valgrind