Bug #43420 ndb_mgmd cores on in InitConfigFileParser::Context::reportWarning
Submitted: 5 Mar 2009 15:41 Modified: 17 Mar 2009 19:00
Reporter: Jonathan Miller Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S1 (Critical)
Version:mysql-5.1-telco-6.4 OS:Linux
Assigned to: Magnus Blåudd CPU Architecture:Any

[5 Mar 2009 15:41] Jonathan Miller
Description:
Wen found that ndb_mgmd cores while using ACRT this morning, bt follows

#0  0x0000003f3ff3f525 in vfprintf () from /lib64/tls/libc.so.6
#1  0x0000003f3ff480b6 in fprintf () from /lib64/tls/libc.so.6
#2  0x0000000000481a11 in InitConfigFileParser::Context::reportWarning (this=0x7fbffff1b0, fmt=Variable "fmt" is not available.
)
    at InitConfigFileParser.cpp:601
#3  0x00000000004805f5 in check_node_vs_replicas (sections=Variable "sections" is not available.
)
    at ../../../../storage/ndb/include/util/BaseString.hpp:199
#4  0x0000000000481dfa in InitConfigFileParser::run_config_rules (this=0x7fbffff510,
    ctx=@0x7fbffff1b0) at InitConfigFileParser.cpp:181
#5  0x0000000000483bfd in InitConfigFileParser::parse_mycnf (this=0x7fbffff510)
    at InitConfigFileParser.cpp:939
#6  0x000000000048875f in ConfigManager::load_config (config_filename=0x0, mycnf=Variable "mycnf" is not available.
)
    at ConfigManager.cpp:1658
#7  0x0000000000489295 in ConfigManager::init (this=0x823d90) at ConfigManager.cpp:1690
#8  0x000000000047050d in MgmtSrvr::init (this=0x836a30) at MgmtSrvr.cpp:404
#9  0x0000000000474fa5 in start () at main.cpp:277
#10 0x0000000000475211 in main (argc=Variable "argc" is not available.
) at main.cpp:256

----
#0  0x0000003f3ff3f525 in vfprintf () from /lib64/tls/libc.so.6
(gdb) l
256       return start();
257     }
258
259     int daemon_stop()
260     {
261       g_StopServer= true;
262       return 0;
263     }
264
265     int start()

---
#2  0x0000000000481a11 in InitConfigFileParser::Context::reportWarning (this=0x7fbffff1b0, fmt=Variable "fmt" is not available.
)
    at InitConfigFileParser.cpp:601
601       fprintf(m_errstream, "Warning line %d: %s\n",
(gdb) l
596
597       va_start(ap, fmt);
598       if (fmt != 0)
599         BaseString::vsnprintf(buf, sizeof(buf)-1, fmt, ap);
600       va_end(ap);
601       fprintf(m_errstream, "Warning line %d: %s\n",
602               m_lineno, buf);
603     }
604
605     #include <my_sys.h>
-----
(gdb) f 3
#3  0x00000000004805f5 in check_node_vs_replicas (sections=Variable "sections" is not available.
)
    at ../../../../storage/ndb/include/util/BaseString.hpp:199
199     {
(gdb) l
194       friend bool operator!(const BaseString& str);
195     };
196
197     inline const char*
198     BaseString::c_str() const
199     {
200       return m_chr;
201     }
202
203     inline unsigned

----
#4  0x0000000000481dfa in InitConfigFileParser::run_config_rules (this=0x7fbffff510,
    ctx=@0x7fbffff1b0) at InitConfigFileParser.cpp:181
181         if(!(* ConfigInfo::m_ConfigRules[i].m_configRule)(tmp, ctx,
(gdb) l
176         ctx.m_userDefaults   = 0;
177         ctx.m_currentInfo    = 0;
178         ctx.m_systemDefaults = 0;
179
180         Vector<ConfigInfo::ConfigRuleSection> tmp;
181         if(!(* ConfigInfo::m_ConfigRules[i].m_configRule)(tmp, ctx,
182                                                           ConfigInfo::m_ConfigRules[i].m_ruleData))183           return 0;
184
185         for(size_t j = 0; j<tmp.size(); j++){

How to repeat:
sh -x scripts/boot.sh --clone=mysql-5.1-telco-6.4 --conf=/space/cluster_rep_auto/cr-autotest.conf --leave-clone --start-and-exit 2-dn-func
[6 Mar 2009 9:24] Magnus Blåudd
InitConfigFileParser::m_errstream is uninitialized
[6 Mar 2009 11:00] 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/68480

2917 Magnus Svensson	2009-03-06
      Bug#43420 ndb_mgmd cores on in InitConfigFileParser::Context::reportWarning
       - Remove remnants of m_errrstream(which was left uninitialized) and use 
         g_eventLogger everywhere
      modified:
        storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
        storage/ndb/src/mgmsrv/InitConfigFileParser.hpp
[7 Mar 2009 10:30] Bugs System
Pushed into 5.1.32-ndb-6.4.4 (revid:msvensson@mysql.com-20090306160957-nwj1ulv16ozti2ij) (version source revid:msvensson@mysql.com-20090306160957-nwj1ulv16ozti2ij) (merge vers: 5.1.32-ndb-6.4.4) (pib:6)
[11 Mar 2009 3:48] jack andrews
straight forward small fix
[17 Mar 2009 19:00] Jon Stephens
Test failure; not in release version; doesn't appear to be applicable to end users. Closed without further action.