Bug #25246 ndb_dd_backuprestore.test fails on pb-valgrind
Submitted: 22 Dec 2006 12:35 Modified: 31 Jan 2007 13:56
Reporter: Ingo Strüwing Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Cluster: Disk Data Severity:S2 (Serious)
Version:5.1.15 OS:
Assigned to: Guangbao Ni CPU Architecture:Any

[22 Dec 2006 12:35] Ingo Strüwing
Description:
Quote from https://intranet.mysql.com/~knielsen/pb/getlog.pl?dir=mysql-5.1-engines&entry=istruewing@c...

ndb_dd_backuprestore           [ fail ]

Errors are (from /dev/shm/var-n_mix-120/log/mysqltest-time) :
==6351== Memcheck, a memory error detector.
==6351== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==6351== Using LibVEX rev 1658, a library for dynamic binary translation.
==6351== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==6351== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==6351== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==6351== For more details, rerun with: -v
==6351== 
==6351== Conditional jump or move depends on uninitialised value(s)
==6351==    at 0x4CA385F: strxmov (strxmov.c:43)
==6351==    by 0x4112B0: var_set (mysqltest.c:1250)
==6351==    by 0x411506: do_let (mysqltest.c:2448)
==6351==    by 0x4137B8: main (mysqltest.c:5768)
{
   <insert a suppression name here>
   Memcheck:Cond
   fun:strxmov
   fun:var_set
   fun:do_let
   fun:main
}
mysqltest: At line 334: query 'DROP TABLE test.t5' failed: 2013: Lost connection to MySQL server during query
==6351== 
==6351== ERROR SUMMARY: 3 errors from 1 contexts (suppressed: 3 from 1)
==6351== malloc/free: in use at exit: 272 bytes in 2 blocks.
==6351== malloc/free: 11,558 allocs, 11,556 frees, 4,002,484 bytes allocated.
==6351== For counts of detected errors, rerun with: -v
==6351== searching for pointers to 2 not-freed blocks.
==6351== checked 1,053,200 bytes.
==6351== 
==6351== 
==6351== 16 bytes in 1 blocks are definitely lost in loss record 1 of 2
==6351==    at 0x4A20859: malloc (vg_replace_malloc.c:149)
==6351==    by 0x4C90C04: my_malloc (my_malloc.c:35)
==6351==    by 0x4C90D68: my_strdup (my_malloc.c:80)
==6351==    by 0x4112BD: var_set (mysqltest.c:1251)
==6351==    by 0x411506: do_let (mysqltest.c:2448)
==6351==    by 0x4137B8: main (mysqltest.c:5768)
{
   <insert a suppression name here>
   Memcheck:Leak
   fun:_vgrZU_libcZdsoZa_malloc
   fun:my_malloc
   fun:my_strdup
   fun:var_set
   fun:do_let
   fun:main
}
==6351== 
==6351== 
==6351== 256 bytes in 1 blocks are still reachable in loss record 2 of 2
==6351==    at 0x4A20859: malloc (vg_replace_malloc.c:149)
==6351==    by 0x4C90C04: my_malloc (my_malloc.c:35)
==6351==    by 0x4C97550: init_dynamic_string (string.c:40)
==6351==    by 0x411ED0: run_query (mysqltest.c:5180)
==6351==    by 0x4134DA: main (mysqltest.c:5824)
{
   <insert a suppression name here>
   Memcheck:Leak
   fun:_vgrZU_libcZdsoZa_malloc
   fun:my_malloc
   fun:init_dynamic_string
   fun:run_query
   fun:main
}
==6351== 
==6351== LEAK SUMMARY:
==6351==    definitely lost: 16 bytes in 1 blocks.
==6351==      possibly lost: 0 bytes in 0 blocks.
==6351==    still reachable: 256 bytes in 1 blocks.
==6351==         suppressed: 0 bytes in 0 blocks.
(the last lines may be the most important ones)
Result from queries before failure can be found in /dev/shm/var-n_mix-120/log/ndb_dd_backuprestore.log

Stopping All Servers

How to repeat:
See pushbuild log.
[22 Dec 2006 12:37] Ingo Strüwing
Found server log https://intranet.mysql.com/~knielsen/pb/getlog.pl?dir=mysql-5.1-engines&entry=istruewing@c...

WARNING:  'Attempting backtrace. You can use the following information to find out'
    COUNT: 1
    FILES:    master.err
    TESTS:    ndb_dd_backuprestore

VALGRIND: 'Invalid read of size 4'
    COUNT: 1
    FUNCTION: Ndb::handleReceivedSignal(NdbApiSignal*,    FILES:    master.err
    TESTS:    ndb_dd_backuprestore
    STACK: at 0x91D4C4: Ndb::handleReceivedSignal(NdbApiSignal*, LinearSectionPtr*) (Ndbif.cpp:745)
             by 0x991DAE: execute(void*, SignalHeader*, unsigned char, unsigned*, LinearSectionPtr*) (TransporterFacade.cpp:226)
             by 0x969AA8: TransporterRegistry::unpack(unsigned*, unsigned, unsigned short, IOState) (Packer.cpp:109)
             by 0x968A1F: TransporterRegistry::performReceive() (TransporterRegistry.cpp:816)
             by 0x9921AA: PollGuard::wait_for_input_in_loop(int, bool) (TransporterFacade.cpp:1396)
             by 0x992305: PollGuard::wait_n_unlock(int, unsigned short, unsigned, bool) (TransporterFacade.cpp:1369)
             by 0x9472F9: NdbDictInterface::dictSignal(NdbApiSignal*, LinearSectionPtr*, int, int, WaitSignalType, int, unsigned, int const*, int) (NdbDictionaryImpl.cpp:1761)
             by 0x94A9B0: NdbDictInterface::createEvent(Ndb&, NdbEventImpl&, int) (NdbDictionaryImpl.cpp:3562)
             by 0x953112: NdbDictionaryImpl::getEvent(char const*, NdbTableImpl*) (NdbDictionaryImpl.cpp:3685)
             by 0x953CCF: NdbDictionaryImpl::dropEvent(char const*) (NdbDictionaryImpl.cpp:3943)
             by 0x73ECE3: ndbcluster_handle_drop_table(Ndb*, char const*, st_ndbcluster_share*, char const*) (ha_ndbcluster_binlog.cc:2893)
             by 0x725769: ha_ndbcluster::delete_table(ha_ndbcluster*, Ndb*, char const*, char const*, char const*) (ha_ndbcluster.cc:5600)
             by 0x726402: ha_ndbcluster::delete_table(char const*) (ha_ndbcluster.cc:5647)
             by 0x7018D2: ha_delete_table(THD*, handlerton*, char const*, char const*, char const*, bool) (handler.cc:1405)
             by 0x750D48: mysql_rm_table_part2(THD*, st_table_list*, bool, bool, bool, bool) (sql_table.cc:1747)
             by 0x751476: mysql_rm_table(THD*, st_table_list*, char, char) (sql_table.cc:1512)
           Address 0x17 is not stack'd, malloc'd or (recently) free'd
[26 Jan 2007 3:15] Guangbao Ni
Tomas,
   Ok, i can try.