Bug #53482 ndbd crash if epoll_create is not supported
Submitted: 7 May 2010 12:45 Modified: 12 May 2010 9:43
Reporter: Magnus Blåudd Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:6.3.34 OS:Any
Assigned to: Magnus Blåudd CPU Architecture:Any

[7 May 2010 12:45] Magnus Blåudd
Description:
When MySQL CLuster has been compiled with support for 'epoll_create' but 'epoll_create' is not available during runtime it will fallback to use 'select'. Unfortunately there is a printout using ndbout which causes the ndbd so segfault becuase the ndbout module is not yet initialized.

How to repeat:
.

Suggested fix:
Remove the ndbout_c("Falling back to select"); printout, the error is already printed with 'perror' on the previous line.
[7 May 2010 13:07] Magnus Blåudd
Occurs on for example RHEL3
[7 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/107748
[7 May 2010 13:22] Bugs System
Pushed into 5.1.44-ndb-7.0.15 (revid:magnus.blaudd@sun.com-20100507131158-ync2mbdvh2jgrf61) (version source revid:magnus.blaudd@sun.com-20100507131158-ync2mbdvh2jgrf61) (merge vers: 5.1.44-ndb-7.0.15) (pib:16)
[10 May 2010 7:37] Magnus Blåudd
Pushed to 6.3.34, 7.0.15 and 7.1.4
[11 May 2010 13:48] Jon Stephens
Documented bugfix in the NDB-6.3.34, 7.0.15, and 7.1.4 changelogs, as follows:

      When compiled with support for epoll but this functionality 
      is not available at runtime, MySQL Cluster tries to fall back to 
      use SELECT. However, an extra ndbout_c() call in the transporter
      registry code caused ndbd to fail instead.

Closed.
[12 May 2010 9:43] Jon Stephens
Updated changelog entry per developer feedback; it now reads:

        When compiled with support for epoll but this functionality 
        is not available at runtime, MySQL Cluster tries to fall back to 
        use the select() function in its place. However, an extra 
        ndbout_c() call in the transporter registry code caused ndbd to
        fail instead.

Closed.