Bug #81588 mt_thr_config-t Assertion `name[0] != 0' failed.
Submitted: 25 May 2016 9:34 Modified: 17 Jun 2016 9:13
Reporter: Magnus Blåudd Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:7.5.3 OS:Any
Assigned to: CPU Architecture:Any

[25 May 2016 9:34] Magnus Blåudd
Description:
Assertion occurs in unitesting of 7.5 when building a debug compile.

do_parse(ldm={cpubind=1,tc={cpubind=2}) => FAIL - Unknown param near: 'tc={cpubind=2'
mt_thr_config-t: /home/mblaudd/mysql/7.5/storage/ndb/src/common/util/parse_mask.cpp:179: unsigned int ParseThreadConfiguration::find_type(): Assertion `name[0] != 0' failed.
Signal 6 thrown, attempting backtrace.
stack_bottom = 0 thread_stack 0x0

How to repeat:
7.5$> cd bld
7.5/bld$> ctest . --verbose

<snip>
16: Test command: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t
16: Test timeout computed to be: 9.99988e+06
16: 1..1
16: do_parse(ldm,ldm) => OK -
16: do_parse(ldm={count=3},ldm) => OK -
16: do_parse(ldm={cpubind=1-2,5,count=3},ldm) => OK -
16: do_parse(ldm={ cpubind = 1- 2, 5 , count = 3 },ldm) => OK -
16: do_parse(ldm={count=3,cpubind=1-2,5 },  ldm) => OK -
16: do_parse(ldm={cpuset=1-3,count=3,realtime=0,spintime=0 },ldm) => OK -
16: do_parse(ldm={cpuset=1-3,count=3,realtime=1,spintime=0 },ldm) => OK -
16: do_parse(ldm={cpuset=1-3,count=3,realtime=0,spintime=1 },ldm) => OK -
16: do_parse(ldm={cpuset=1-3,count=3,realtime=1,spintime=1 },ldm) => OK -
16: do_parse(io={cpuset=3,4,6}) => OK -
16: do_parse(ldm={cpuset_exclusive=1-3,count=3,realtime=1,spintime=1 },ldm) => OK -
16: do_parse(ldm={cpubind_exclusive=1-3,count=3,realtime=1,spintime=1 },ldm) => OK -
16: do_parse(ldm={cpubind=1-3,count=3,thread_prio=10,spintime=1 },ldm) => OK -
16: do_parse(main,ldm={},ldm) => OK -
16: do_parse(main,ldm={},ldm,tc) => OK -
16: do_parse(main,ldm={},ldm,tc,tc) => OK -
16: do_parse(ldm={cpubind=1,tc={cpubind=2}) => FAIL - Unknown param near: 'tc={cpubind=2'
16: mt_thr_config-t: /home/mblaudd/mysql/7.5/storage/ndb/src/common/util/parse_mask.cpp:179: unsigned int ParseThreadConfiguration::find_type(): Assertion `name[0] != 0' failed.
16: Signal 6 thrown, attempting backtrace.
16: stack_bottom = 0 thread_stack 0x0
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x40bdb8]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x40b24b]
16: /lib/x86_64-linux-gnu/libc.so.6(+0x36d40)[0x7f2c0e000d40]
16: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x39)[0x7f2c0e000cc9]
16: /lib/x86_64-linux-gnu/libc.so.6(abort+0x148)[0x7f2c0e0040d8]
16: do_parse(ldm,ldm,ldm) => FAIL - No of LDM-instances can be 1,2,4,6,8,12,16,24 or 32. Specified: 3
16: /lib/x86_64-linux-gnu/libc.so.6(+0x2fb86)[0x7f2c0dff9b86]
16: /lib/x86_64-linux-gnu/libc.so.6(+0x2fc32)[0x7f2c0dff9c32]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x40a627]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x40a426]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x403a5c]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x404418]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x4048fe]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x4045fc]
16: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f2c0dfebec5]
16: /home/mblaudd/mysql/7.5/bld/unittest/ndb/mt_thr_config-t[0x4015a9]
16/47 Test #16: mt_thr_config ....................***Failed    0.00 sec

Suggested fix:
.
[13 Jun 2016 16:04] Mauritz Sundell
Posted by developer:
 
Approved, but replace tabs with spaces before push.
[17 Jun 2016 9:13] Jon Stephens
Documented fix in the NDB 7.5.3 changelog, as follows:

    Using a ThreadConfig parameter value ending with a comma led to an 
    assert.

Closed.