Bug #17750 MySQL service fails on systems with AMD processor(s)
Submitted: 27 Feb 2006 19:59 Modified: 15 Mar 2006 10:47
Reporter: Eugene Drobitko
Status: Duplicate
Category:Server: InnoDB Severity:S1 (Critical)
Version:5.0.18 OS:Microsoft Windows (Windows 2003)
Assigned to: Target Version:

[27 Feb 2006 19:59] Eugene Drobitko
Description:
sometimes windows service fails with message
Event Type:	Error
Event Source:	Application Error
Event Category:	(100)
Event ID:	1000
Date:		2/25/2006
Time:		10:07:09 AM
User:		N/A
Computer:	W2KNEW
Description:
Faulting application mysqld-max-nt.exe, version 0.0.0.0, faulting module
mysqld-max-nt.exe, version 0.0.0.0, fault address 0x00226add.

It happens on Windows 2003 64bit edition, Windows 2003 32bit edition with AMD processors
(64 bit and 32 bit). But service never fails on Windows 2003 with Intel processor.

How to repeat:
run mysql on Windows 2003 an AMD processor. I'm searching for exactly SQL now.
[27 Feb 2006 20:36] Jorge del Conde
Hi!

Can you please give me instructions on how to reproduce this crash ?  I have been running
mysql under an AMD64 environment for quite some time, and have never experienced the
problem you're describing.

I use mysqld.exe and mysqld-max-nt.exe
[2 Mar 2006 6:54] Jorge del Conde
Hi  Eugene,

Thanks for providing us the details to reproduce this bug.

I experienced the behaviour you reported in my AMD64 machine, hence I was able to
reproduce this bug.
[2 Mar 2006 6:55] Jorge del Conde
I tested this under WinXP-64 and WinXP/SP2
[10 Mar 2006 10:42] Shane Bester
Are the tables InnoDB ? I might suspect assertion from btr_pcur_restore_position() is it's
the case.  what's in the mysql error log ??
[14 Mar 2006 6:26] Shane Bester
060313 18:32:00InnoDB: Assertion failure in thread 360 in file .\btr\btr0pcur.c

Attachment: 5.0.18-max-nt-error-log.txt (application/octet-stream, text), 23.49 KiB.

[14 Mar 2006 6:37] Shane Bester
Line 216 of btr0pcur.c is the below assertion.

if (UNIV_UNLIKELY(cursor->old_stored != BTR_PCUR_OLD_STORED)
	    || UNIV_UNLIKELY(cursor->pos_state != BTR_PCUR_WAS_POSITIONED
			     && cursor->pos_state != BTR_PCUR_IS_POSITIONED)) {
		ut_print_buf(stderr, (const byte*)cursor, sizeof(btr_pcur_t));
		if (cursor->trx_if_known) {
			trx_print(stderr, cursor->trx_if_known, 0);
		}
		
		ut_error;
	}
[15 Mar 2006 10:47] Heikki Tuuri
Since you are using innodb_locks_unsafe_for_binlog, this is probably a duplicate of:

http://bugs.mysql.com/bug.php?id=15650

Please test with 5.0.19.
[15 Mar 2006 12:08] Shane Bester
Heikki,

5.0.19 still crashes but I suspect it's a completely different crash, for which I will
investigate and open another bug report if needed.

5.0.18 didn't crash when innodb_locks_unsafe_for_binlog=0.