Bug #32896 ndb_mgmd (and therefore the whole cluster) does not work properly on FreeBSD 7
| Submitted: | 1 Dec 2007 17:53 | Modified: | 19 Feb 2009 20:02 |
|---|---|---|---|
| Reporter: | Attila Nagy | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S1 (Critical) |
| Version: | 5.1.22-rc | OS: | FreeBSD (7.0) |
| Assigned to: | Hartmut Holzgraefe | CPU Architecture: | Any |
| Tags: | cluster, freebsd, FreeBSD 7, MySQL, ndb, ndb_mgmd | ||
[4 Dec 2007 0:22]
Marek Biela
Similar problem attempting to run 3 node MySQL cluster with MySQL 5.1.22-rc on 64 bit FreeBSD 7.0-BETA3-p1 amd64. I compiled MySQL with this set of flags: BUILD_OPTIMIZED=yes WITH_NDB=yes WITH_OPENSSL=yes WITH_CHARSET=utf8 Management node initially starts fine. I am able to start first NDB node and see it connecting to Management node (via ndb_mgm run either from Management or NDB node). However, when second NDB node starts successfully?, I am losing ability to use ndb_mgm tool. I get time out error from ndb_mgm CLI: "Unable to get status from management server 60: error Time out talking to management server" I also find "setEventReportingLevelImpl: failed 2!" error in Management server ndb_1_out.log log. Other log, ndb_1_cluster.log, contains no errors, warning or alerts, but I surely can submit it if needed. I have no connectivity problem between servers, and I am able to telnet to default port 1186 on Management server. MySQL node fails to start "ndbcluster" option stating: "Configuration error: Error : Timeout talking to management node Plugin 'ndbcluster' init funtion return error Plugin 'ndbcluster' registration as a STORAGE ENGINE failed" and I see no "ndbcluster" when issuing MySQL "show engines;" query MySQL cluster works well when I downgraded MySQL to 5.0.45_1. I used the same version of OS and cluster configuration files. Only thing different was MySQL compilation flags, that were "BUILD_OPTIMIZED=yes WITH_NDB=yes". Regards, Marek Biela
[13 Dec 2007 14:49]
Hartmut Holzgraefe
Verified on FreeBSD 7. Maybe another duplicate of http://bugs.mysql.com/bug.php?id=31761 due to GCC 4.2.x optimizations gone wild on the server code ... Testing with different compile flags now ...
[14 Dec 2007 12:13]
Attila Nagy
No, it's not a duplicate. I've tested that setting different compiler flags, or switching back to gcc 3.4 doesn't help. BTW, I've found the cause: FreeBSD 7 has a new threading code (called libthr, while the other was libkse). If I compile libkse (it doesn't get built automaticaly) and map libthr to it for ndb_mgmd, everything works fine. So an entry in /etc/libmap.conf: [/usr/local/libexec/ndb_mgmd] libthr.so.3 libkse.so.3 Helps. Of course this is not a real fix, just a silly workaround.
[19 Feb 2009 20:02]
Hartmut Holzgraefe
Latest MySQL Cluster 6.3.22 works just fine on FreeBSD 7.0 with libthr.so.3
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: I have installed MySQL 5.1.22-rc to four machines: - 1x NDB management - 2x NDB data nodes - 1x SQL server The problem is that even the management node fails to work correctly. The symptom is: - I start the management daemon boot00a# /usr/local/libexec/ndb_mgmd --nodaemon -f /data/config.ini NDB Cluster Management Server. Version 5.1.22 (rc) Id: 1, Command port: 1186 setEventReportingLevelImpl: failed 2! and try to connect from the same host: boot00a# ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> SHOW Connected to Management Server at: localhost:1186 Could not get status * 60: Error * Time out talking to management server ndb_mgm> Also, the NDB data nodes and the MySQL server does not work correctly. BTW, if I install a FreeBSD 6-STABLE environment on the same machine (in a chroot) and compile the same version of MySQL server (from FreeBSD ports) in that environment and run that ndb_mgmd binary from the (outside) 7.x environment, everything (not just the ndb_mgm, but the whole cluster, the NDB data nodes and the SQL node) works fine: boot00a# /data/fbsd6/usr/local/libexec/ndb_mgmd --nodaemon -f /data/config.ini NDB Cluster Management Server. Version 5.1.22 (rc) Id: 1, Command port: 1186 setEventReportingLevelImpl: failed 2! boot00a# ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> SHOW Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 172.27.9.8) id=3 (not connected, accepting connect from 172.27.9.9) [ndb_mgmd(MGM)] 1 node(s) id=1 @172.27.9.2 (Version: 5.1.22) [mysqld(API)] 1 node(s) id=4 (not connected, accepting connect from 172.27.9.4) ndb_mgm> So basically, MySQL cluster works (at least starts and can provide basic services, like creating a table, inserting, selecting some rows, I haven't yet tested it further) on FreeBSD 6, but to run that on FreeBSD 7, you have to use an ndb_mgmd from a previous (6.x) build. Other components, like the ndb_mgm, the NDB data nodes and the SQL nodes can run a full 7.x environment. boot00a# ldd /data/fbsd6/usr/local/libexec/ndb_mgmd (6.x binary, the old libraries are available in the 7.x OS) /data/fbsd6/usr/local/libexec/ndb_mgmd: libreadline.so.6 => /lib/libreadline.so.6 (0x8006f9000) libncurses.so.6 => /lib/libncurses.so.6 (0x800837000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x800994000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x800aad000) libm.so.4 => /lib/libm.so.4 (0x800ca4000) libpthread.so.2 => /lib/libpthread.so.2 (0x800dc0000) libc.so.6 => /lib/libc.so.6 (0x800eeb000) boot00a# ldd /usr/local/libexec/ndb_mgmd (7.x binary) /usr/local/libexec/ndb_mgmd: libreadline.so.7 => /lib/libreadline.so.7 (0x8006fa000) libncurses.so.7 => /lib/libncurses.so.7 (0x800837000) libcrypt.so.4 => /lib/libcrypt.so.4 (0x800993000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x800aac000) libm.so.5 => /lib/libm.so.5 (0x800cab000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x800dc5000) libthr.so.3 => /lib/libthr.so.3 (0x800ed2000) libc.so.7 => /lib/libc.so.7 (0x800fe8000) How to repeat: Try to use a natively compiled ndb_mgmd on a FreeBSD 7 OS. OS: FreeBSD/amd64 7.0-BETA3 The differences between the old (6.x) and the new (7.x) OS are significant (new malloc, new default threading library, new gcc, etc), but I couldn't yet find the exact cause of this.