9 messages in com.mysql.lists.bugsRe: 64bit mysqld signal 10 (bus error...
FromSent OnAttachments
Jörg Prante23 Aug 2002 17:53 
Michael Widenius25 Aug 2002 11:24 
Jörg Prante25 Aug 2002 15:26 
Michael Widenius26 Aug 2002 05:36 
Heikki Tuuri26 Aug 2002 11:08 
Jörg Prante26 Aug 2002 15:16 
Jörg Prante26 Aug 2002 15:25 
Heikki Tuuri27 Aug 2002 01:29 
Sinisa Milivojevic29 Aug 2002 04:31 
Subject:Re: 64bit mysqld signal 10 (bus error) on sparcv9-sun-solaris2 and gcc 3.2
From:Jörg Prante (joer@netcologne.de)
Date:08/25/2002 03:26:22 PM
List:com.mysql.lists.bugs

On Sunday 25 August 2002 20:24, Michael Widenius wrote:

I think this is an indication that gcc 3.2-64 bit can't yet produce a 64 bit thread safe binary.

The reasons for the above assumption is that we know that MySQL 4.0 is 64 bit clean as it works without any problems on Linux-Alpha, Linux-Itanium and Solaris 2.8, the last one compiled with Suns 64 bit compiler.

The only way to fix this is to compile MySQL with debugging (configure --with-debug) and run mysqld under a debugger to find out what's going wrong.

I produced a file /tmp/mysqld.trace. It's the InnoDB initialization in 'innobase_init' causing trouble. After the first malloc, the signal 10 (bus error) was sent. Here are the last few lines:

[...] T@1 : >hash_init T@1 : | enter: hash: 10049e0b0 size: 128 T@1 : | >init_dynamic_array T@1 : | | >my_malloc T@1 : | | | my: Size: 2048 MyFlags: 16 T@1 : | | | exit: ptr: 1004c5370 T@1 : | | <my_malloc T@1 : | <init_dynamic_array T@1 : <hash_init T@1 : >innobase_init T@1 : | >my_malloc T@1 : | | my: Size: 23 MyFlags: 16 T@1 : | | exit: ptr: 1004bb340 T@1 : | <my_malloc

I don't know whether it is gcc 3.2 or an InnoDB bug. A recompiled mysql-64bit without InnoDB works, using gcc 3.2 on Solaris 8. Firing up mysql client and playing with SQL commands works, too. In the next days, I will run some stress tests with threads. I expect the thread issues in former gcc 3.x to be gone.

Regards,

Jörg