Bug #40498 | MGM C API calls "Exit" if connection to the managment server is lost | ||
---|---|---|---|
Submitted: | 4 Nov 2008 12:51 | Modified: | 19 Nov 2008 14:36 |
Reporter: | Lars Torstensson | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S2 (Serious) |
Version: | ndb-6.3.17-telco | OS: | Linux |
Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
Tags: | MGM C API Exit |
[4 Nov 2008 12:51]
Lars Torstensson
[12 Nov 2008 14:13]
Magnus Blåudd
The application get "broken pipe" error. This can be caught by installing a signal handler that ignores this error, the default signal handler will call "exit" without any error message. #include <signal.h> signal(SIGPIPE, SIG_IGN); We need to decide _if_ we should install a signal handler for SIGPIPE as part of mgmapi or if that would be up to the application to do.
[12 Nov 2008 14:27]
Jonas Oreland
brilliant analysis magnus! i think we *should* add the signal handler, e.g we do so in ndbapi R1 E1
[19 Nov 2008 9:52]
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/59170 2744 Magnus Svensson 2008-11-19 Bug#40498 MGM C API calls "Exit" if connection to the managment server is lost - Install SIGPIPE handler to catch broken pipe error that occurs when writing to a closed or rest socket - Add function 'ndb_mgm_set_ignore_sigpipe' making it possible to avoid that mgmapi installs SIGPIPE handler
[19 Nov 2008 10:36]
Bugs System
Pushed into 5.1.29-ndb-6.3.19 (revid:msvensson@mysql.com-20081119095201-y1z9a2q9l7w8fr0e) (version source revid:msvensson@mysql.com-20081119103154-liyfrlze453wheq1) (pib:5)
[19 Nov 2008 10:36]
Bugs System
Pushed into 5.1.29-ndb-6.4.0 (revid:msvensson@mysql.com-20081119095201-y1z9a2q9l7w8fr0e) (version source revid:msvensson@mysql.com-20081119103401-eeyjgl030jnt9yq3) (pib:5)
[19 Nov 2008 14:36]
Jon Stephens
Documented bugfix in the NDB-6.3.19 changelog as follows: MGM API applications exited without raising any errors if the connection to the management server was lost. The fix for this issue includes two changes: 1. The MGM API now provides its own SIGPIPE handler to catch the broken pipe error that occurs when writing to a closed or reset socket. This means that MGM API now behaves the same as NDB API in this regard. 2. A new function ndb_mgm_set_ignore_sigpipe() has been added to the MGM API. This function makes it possible to bypass the SIGPIPE handler provded by the MGM API. Documented new function in the Cluster API Guide: http://lists.mysql.com/commits/59235