Bug #48524 | Loading innodb_plugin cause gcc-3.x compiled server crash. | ||
---|---|---|---|
Submitted: | 4 Nov 2009 8:21 | Modified: | 9 Nov 2009 18:21 |
Reporter: | Hiroaki Kawai (OCA) | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S3 (Non-critical) |
Version: | 5.1.40 | OS: | Linux |
Assigned to: | CPU Architecture: | Any | |
Tags: | Contribution |
[4 Nov 2009 8:21]
Hiroaki Kawai
[4 Nov 2009 10:43]
MySQL Verification Team
I couldn't repeat on Ubuntu 9.10 64-bit with server built with current source and gcc: miguel@quetzalli:~/dbs$ gcc --version gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1 Copyright (C) 2009 Free Software Foundation, Inc. miguel@quetzalli:~/dbs$ 5.1crash/libexec/mysqld --ignore-builtin-innodb --plugin-load=innodb=ha_innodb_plugin.so 091104 8:38:24 [Note] Plugin 'FEDERATED' is disabled. 091104 8:38:24 [Note] Plugin 'ndbcluster' is disabled. InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 091104 8:38:25 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 091104 8:38:25 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 091104 8:38:25 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 091104 8:38:25 InnoDB Plugin 1.0.5 started; log sequence number 0 091104 8:38:25 [Note] Event Scheduler: Loaded 0 events 091104 8:38:25 [Note] 5.1crash/libexec/mysqld: ready for connections. Version: '5.1.41' socket: '/tmp/mysql.sock' port: 3306 Source distribution
[4 Nov 2009 11:45]
Hiroaki Kawai
> gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1 Of cource, gcc 4.x compiled binary will work fine. gcc-3.x compiled server will crash.
[5 Nov 2009 15:51]
Valeriy Kravchuk
I'd say this is not a bug formally. Our manual (http://dev.mysql.com/doc/refman/5.1/en/innodb.html) clearly says: "If you use gcc, InnoDB Plugin cannot be compiled with gcc 3.x; you must use gcc 4.x instead."
[5 Nov 2009 16:41]
Hiroaki Kawai
You say it's documented so it is not a BUG in that word. Ok I saw it now. But reading the source code, gcc 3.3 and higher which supports 'visibility' attribute, will be able to compile the plugin actually. IMHO, letting people compile this plugin with gcc 3.3.x, 3.4.x is not so bad. I already suggested a patch, and I'd suggest following points: 1. Apply the patch and rewrite the documentation 2. Make configure script more clever to detect gcc version or innobase/innodb_plugin conflict and raise warning if condition is not satisfied 3. Move InnoDB compilation note into "2.3 MySQL Installation Using a Source Distribution"