Bug #75738 flexAsync segfaults if failed to create tables
Submitted: 3 Feb 2015 4:16 Modified: 26 Feb 2016 0:35
Reporter: Stewart Smith Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: NDB API Severity:S3 (Non-critical)
Version:7.3.8 OS:Any
Assigned to: Magnus Blåudd CPU Architecture:Any
Tags: flexAsync

[3 Feb 2015 4:16] Stewart Smith
Description:
If you run flexAsync on say, a cluster where there's node restarts going on, and it attempts to create tables, it may end up failing.

If so, it'll end up segfaulting with null pointer dereference. The reason for this is that g_record[0] wasn't initialized and the following was called:
    Uint32 sz = NdbDictionary::getRecordRowLength(g_record[0]);

How to repeat:
run flexAsync on a cluster during node restart

Suggested fix:
apply my patch!
[3 Feb 2015 4:17] Stewart Smith
make flexAsync not segfault when run when dict operations are forbidden

(*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: ndb-flexasync-segfault-on-fail-createtables.patch (text/x-patch), 518 bytes.

[1 Jul 2015 4:05] MySQL Verification Team
Hello Stewart,

Thank you for the report and contribution.

Thanks,
Umesh
[7 Jul 2015 9:41] Magnus Blåudd
Fixed in 7.3.11. Thanks!
[9 Jul 2015 9:41] Jon Stephens
Fixed in NDB 7.3.11 and 7.4.8.

This effects testing only; no end-user changes to document.

Closed.
[26 Feb 2016 0:35] Stewart Smith
I think you managed to forget to close the bug as fixed. Closing :)