Bug #31228 Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without

Submitted: 27 Sep 2007 10:57 Modified: 17 Sep 2009 20:43
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:mysql-5.1.24-rc-winx64 OS:Windows (XP 64-bit)
Assigned to: CPU Architecture:Any

[27 Sep 2007 10:57] Shane Bester
Description:
Too many Run-Time Check Failure #3 present in 5.0.48 winx64.

E:\mysql-enterprise-gpl-5.0.48-winx64\bin>mysqld-debug --console --skip-grant-tables --skip-name-resolve
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
070927 12:53:44  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
070927 12:53:45  InnoDB: Started; log sequence number 0 151274
070927 12:53:45 [Note] mysqld-debug: ready for connections.
Version: '5.0.48-enterprise-gpl-debug-log'  socket: ''  port: 3306  MySQL Enterprise Server - Debug (GPL)
Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without being defined. At :0
Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without being defined. At :0

How to repeat:
select now();
[16 Oct 2007 6:57] Sadao Hiratsuka
Hi, I have the same problem on XP 32bit.
And I think it may be GNU Bison's bug.

*Bison CangeLog

2005-07-24  Paul Eggert
	* NEWS: Version 2.0b.

...
2005-07-09  Paul Eggert
	* data/yacc.c (yyparse): Undo previous patch.  Instead,
	set yylsp[0] and yyvsp[0] only if the initial action
	sets yylloc and yylval, respectively.

	* data/yacc.c (yyparse): In the initial action, set
	yylsp[0] and yyvsp[0] rather than yylloc and yylval.
	This avoids the use of undefined variables if the initial
	action does not set yylloc and/or yylval.

This bug have been fixed 2 years ago,
But for example RHEL4 has bison 1.875c and this bug is not fiex yet.

Here is a simple workaround.

sql/sql_yacc.cpp
int yyparse()

/* The semantic value of the look-ahead symbol.  */
YYSTYPE yylval;
=> YYSTYPE yylval = { 0 };
[4 Dec 2007 10:27] Valeriy Kravchuk
Please, try to repeat with a newer version, 5.0.50, 5.0.52 or 5.0-BK, and inform about the results.
[5 Jan 2008 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[5 Jan 2008 14:09] Valeriy Kravchuk
Feedback is still needed, for 5.0.54.
[29 Jan 2008 12:00] Shane Bester
seems fixed in 5.0.56 x64
[11 Feb 2008 10:21] Shane Bester
re-opening because this affects mysqld-debug.exe in the 5.1.23-rc2 package.

E:\mysql-5.1.23-rc-winx64\bin>mysqld-debug --console --skip-grant-tables --skip-name-resolve
<cut>
080211 12:05:50 [Note] mysqld-debug: ready for connections.
Version: '5.1.23-rc-community-debug'  socket: ''  port: 3306  MySQL Community Server - Debug (GPL)
Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without being defined. At :0
Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without being defined. At :0
Error:Run-Time Check Failure #3 - The variable 'MYSQLlval' is being used without being defined. At :0
[11 Apr 2008 9:40] Shane Bester
still affects mysql-5.1.24-rc-winx64 mysqld-debug.exe
[5 Jun 2008 13:23] Paul McCullagh
I can confirm that this bug still occurs with MySQL 5.1.24.

I can repeat the bug a 32-bit Windows XP machine. All you need to do us build a debug version. The error occurs when you execute: SHOW DATABASES; (and just about any statement).

You can "fix" the problem by editing sql_yacc.cc, line 15192 (+/-):

Change:

YYSTYPE yylval;

to

YYSTYPE yylval = { 0 };

This is generated code, so this looks very much like a problem in bison.
[5 Jun 2008 13:36] Paul McCullagh
I have Bison 2.1.

This seems to be the latest versions for Windows although it was built on Nov. 19, 2005.

This version still has the bug. If there is a newer version, please post a link!
[19 Mar 2009 0:07] MySQL Verification Team
I couldn't repeat with latest source server:

c:\dbs>5.1\bin\mysqld-debug --console --skip-grant-tables --skip-name-resolve
090318 21:04:34  InnoDB: Started; log sequence number 0 454966298
090318 21:04:36 [Note] 5.1\bin\mysqld-debug: ready for connections.
Version: '5.1.34-Win X64 revno: 2839-debug-log'  socket: ''  port: 3510  Source distribution
[17 Sep 2009 20:43] Shane Bester
this is no longer repeatable with recent 5.1.38 versions.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.043 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.