Bug #19520 MYSQL daemon crashes on W32 statemant not exactly known
Submitted: 3 May 2006 17:22 Modified: 8 May 2006 17:13
Reporter: Guenther Waldbauer Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:5.0.21/5.0BK/5.1BK OS:Windows (W2K/Linux)
Assigned to: CPU Architecture:Any

[3 May 2006 17:22] Guenther Waldbauer
Description:
The dameon crashes whenever the following statement or statement before is executed. Because the software i use is vbulletin - i don't know exactly which statement causes the crash. It happens whenever any user log into vbulletin 3.5.4:

Operating system reports only the statements in 0x00472012 reports to 0x0000001c transaction read.

This is the last i get from VB:

SELECT forum.forumid
   FROM vbulletin.forum AS forum
   LEFT JOIN vbulletin.forumread AS forumread ON (forum.forumid = forumread.forumid AND forumread.userid = 1384)
   WHERE forum.forumid IN (47,-1)
    AND forum.forumid NOT IN (47, -1)
    AND (forum.lastpost = 0 OR
     IF(forumread.readtime IS NULL, 1145793245, forumread.readtime) > forum.lastpost
    );

MySQL-Fehler : Lost connection to MySQL server during query

How to repeat:
Install mysql 5.0.21 and vbulletin 3.5.4 thats all.
[3 May 2006 17:30] MySQL Verification Team
Thank you for the bug report. Could you please try to run the same
query using the mysql.exe client. If you get the crash could you please
provide a dump with insert data of the tables involved?

Thanks in advance.
[3 May 2006 17:38] Guenther Waldbauer
mysql> use vbulletin
Database changed
mysql> SELECT forum.forumid
    -> FROM vbulletin.forum AS forum
    -> LEFT JOIN vbulletin.forumread AS forumread ON (forum.forumid =
    -> forumread.forumid AND forumread.userid = 1384)
    -> WHERE forum.forumid IN (47,-1)
    -> AND forum.forumid NOT IN (47, -1)
    -> AND (forum.lastpost = 0 OR
    -> IF(forumread.readtime IS NULL, 1145793245, forumread.readtime) >
    -> forum.lastpost
    -> );
ERROR 2013 (HY000): Lost connection to MySQL server during query

-- phpMyAdmin SQL Dump
-- version 2.9.0-dev
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generation Time: May 03, 2006 at 07:38 
-- Server version: 5.0.21
-- PHP Version: 5.1.2
-- 
-- Database: `vbulletin`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `forum`
-- 

CREATE TABLE `forum` (
  `forumid` smallint(5) unsigned NOT NULL auto_increment,
  `styleid` smallint(5) unsigned NOT NULL default '0',
  `title` varchar(100) NOT NULL default '',
  `description` text NOT NULL,
  `displayorder` smallint(6) NOT NULL default '0',
  `replycount` int(10) unsigned NOT NULL default '0',
  `lastpost` int(11) NOT NULL default '0',
  `lastposter` varchar(100) NOT NULL default '',
  `threadcount` mediumint(8) unsigned NOT NULL default '0',
  `daysprune` smallint(6) NOT NULL default '0',
  `newpostemail` varchar(250) NOT NULL default '',
  `newthreademail` varchar(250) NOT NULL default '',
  `parentid` smallint(6) NOT NULL default '0',
  `parentlist` varchar(250) NOT NULL default '',
  `lastthread` varchar(250) NOT NULL default '',
  `lastthreadid` int(10) unsigned NOT NULL default '0',
  `password` varchar(50) NOT NULL default '',
  `link` varchar(200) NOT NULL default '',
  `lasticonid` smallint(6) NOT NULL default '0',
  `options` int(10) unsigned NOT NULL default '0',
  `childlist` varchar(250) NOT NULL default '',
  `title_clean` varchar(100) NOT NULL default '',
  `description_clean` text NOT NULL,
  PRIMARY KEY  (`forumid`),
  KEY `styleid` (`styleid`),
  KEY `title` (`title`),
  KEY `displayorder` (`displayorder`),
  KEY `replycount` (`replycount`),
  KEY `lastpost` (`lastpost`),
  KEY `lastposter` (`lastposter`),
  KEY `threadcount` (`threadcount`),
  KEY `parentid` (`parentid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=66 ;

-- 
-- Dumping data for table `forum`
-- 

INSERT INTO `forum` VALUES ('1', '0', 'PDA, Handheld und Psion Forum', 'Fragen zu allen Handhelds - neben Psion natürlich auch PALM erwünscht !', '10', '1705', '1145368170', 'Chrismn', '580', -1, '', '', '-1', '1,-1', 'PSION 5mx Pro (24 MB)', '1836', '', '', 0, '131015', '1,-1', 'PDA, Handheld und Psion Forum', 'Fragen zu allen Handhelds - neben Psion natürlich auch PALM erwünscht !');
INSERT INTO `forum` VALUES ('20', '0', 'Anregungen, Vorschläge, Lob & Kritik', '', '5', '26', '1137760509', 'waldbauer.com', '12', -1, '', '', '-1', '20,-1', 'versandkosten', '1805', '', '', 9, '98247', '20,-1', 'Anregungen, Vorschläge, Lob & Kritik', '');
INSERT INTO `forum` VALUES ('47', '0', 'Bedienung und Fragen zum Online Shop', '', '0', '0', '0', '', '0', -1, '', '', '-1', '47,-1', '', '0', '', '', 0, '98241', '47,59,65,61,62,63,60,64,-1', 'Bedienung und Fragen zum Online Shop', '');
INSERT INTO `forum` VALUES ('54', '0', 'Support zu allen Produkten', '', '1', '250', '1145606843', 'Unregistriert', '131', -1, '', '', '-1', '54,-1', 'Eizo  1910 jetzt mit Reaktionszeit Mid-Tone: 8 ms', '1834', '', '', 0, '97351', '54,-1', 'Support zu allen Produkten', '');
INSERT INTO `forum` VALUES ('55', '0', 'Firmen Informationen', '', '0', '8', '1127725255', 'waldbauer.com', '6', -1, '', '', '-1', '55,-1', 'eCommerce Gütezeichen des Handelsverbandes', '1348', '', '', 0, '98247', '55,-1', 'Firmen Informationen', '');
INSERT INTO `forum` VALUES ('56', '0', 'Sambar Server Forum', '', '11', '285', '1141769945', 'robotnik', '79', -1, '', '', '-1', '56,-1', 'Sambar Mail - Erfahrungsaustausch', '1828', '', '', 0, '97863', '56,-1', 'Sambar Server Forum', '');
INSERT INTO `forum` VALUES ('57', '0', 'SPI OA4 Open Access IV Anwender Forum', '', '12', '174', '1145435937', 'waldbauer.com', '39', -1, '', 'edv@waldbauer.com', '-1', '57,-1', 'DB30169: Definierte Zeile zu lang.', '1835', '', '', 0, '97863', '57,-1', 'SPI OA4 Open Access IV Anwender Forum', '');
INSERT INTO `forum` VALUES ('59', '0', 'Fragen vor dem Kauf', '', '1', '5', '1142422437', 'waldbauer.com', '5', -1, '', '', '47', '59,47,-1', 'Versandkostenübersicht', '1829', '', '', 0, '89799', '59,-1', 'Fragen vor dem Kauf', '');
INSERT INTO `forum` VALUES ('60', '0', 'Fragen zur Garantieabwicklung & Service', '', '6', '5', '1118308833', 'waldbauer.com', '4', -1, '', '', '47', '60,47,-1', 'Warum ist ein Sofortaustausch nicht immer möglich...?', '1738', '', '', 0, '89799', '60,-1', 'Fragen zur Garantieabwicklung & Service', '');
INSERT INTO `forum` VALUES ('61', '0', 'Fragen zu Bezahlmöglichkeiten, Portospesen, ...', '', '3', '10', '1138780024', 'waldbauer.com', '6', -1, '', '', '47', '61,47,-1', 'Der Nachnnahmebetrag ist zu hoch oder falsch ?!', '1812', '', '', 0, '89799', '61,-1', 'Fragen zu Bezahlmöglichkeiten, Portospesen, ...', '');
INSERT INTO `forum` VALUES ('62', '0', 'Fragen zu Lagerständen und Lieferzeiten', '', '3', '5', '1094725338', 'waldbauer.com', '5', -1, '', '', '47', '62,47,-1', 'Da steht Nachbestellt xx Stück - wann kommt das Produkt', '1667', '', '', 0, '89799', '62,-1', 'Fragen zu Lagerständen und Lieferzeiten', '');
INSERT INTO `forum` VALUES ('63', '0', 'Fragen zur Bedienung bzw. wie Bestellt- / Reserviert man Produkte', '', '3', '4', '1118999493', 'waldbauer.com', '4', -1, '', '', '47', '63,47,-1', 'Kann man den Paketverlauf sehen ?', '1751', '', '', 0, '89799', '63,-1', 'Fragen zur Bedienung bzw. wie Bestellt- / Reserviert man Produkte', '');
INSERT INTO `forum` VALUES ('64', '0', 'Fragen zu Rücksendungen, etc...', '', '6', '6', '1120740123', 'waldbauer.com', '6', -1, '', '', '47', '64,47,-1', 'Wichtig: Annahmverweigerung einer Bestellung', '1764', '', '', 0, '89799', '64,-1', 'Fragen zu Rücksendungen, etc...', '');
INSERT INTO `forum` VALUES ('65', '0', 'Fragen zu "Warum reservieren sie nur 1 Werktag bei Privatkunden"', '', '2', '1', '1137604351', 'waldbauer.com', '1', -1, '', '', '47', '65,47,-1', 'Unverbindliche Reservierungen ?!', '1804', '', '', 0, '97991', '65,-1', 'Fragen zu "Warum reservieren sie nur 1 Werktag bei Privatkunden"', '');
[3 May 2006 17:45] Guenther Waldbauer
-- phpMyAdmin SQL Dump
-- version 2.9.0-dev
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generation Time: May 03, 2006 at 07:44 
-- Server version: 5.0.21
-- PHP Version: 5.1.2
-- 
-- Database: `vbulletin`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `forumread`
-- 

CREATE TABLE `forumread` (
  `userid` int(10) unsigned NOT NULL default '0',
  `forumid` smallint(5) unsigned NOT NULL default '0',
  `readtime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`forumid`,`userid`),
  KEY `readtime` (`readtime`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Dumping data for table `forumread`
-- 

INSERT INTO `forumread` VALUES ('1384', '47', '1146677128');
INSERT INTO `forumread` VALUES ('1679', '1', '1146082294');
INSERT INTO `forumread` VALUES ('1384', '20', '1146655356');
INSERT INTO `forumread` VALUES ('1384', '1', '1146655473');
INSERT INTO `forumread` VALUES ('1678', '56', '1145905871');
INSERT INTO `forumread` VALUES ('1384', '56', '1146224214');
INSERT INTO `forumread` VALUES ('1384', '54', '1146555945');
INSERT INTO `forumread` VALUES ('1384', '59', '1146665097');
INSERT INTO `forumread` VALUES ('1539', '57', '1145984523');
INSERT INTO `forumread` VALUES ('1681', '1', '1146665507');
[3 May 2006 18:04] MySQL Verification Team
Thank you for the feedback. I still need the dump of table vbulletin.forumread
for to run that query.

Thanks in advance.
[3 May 2006 20:49] Guenther Waldbauer
I attached the table forumread - have only these few datas inside.
[3 May 2006 20:52] Guenther Waldbauer
In vbulletin the exact statement is:

$parents_sql = $db->query_read("
SELECT forum.forumid
FROM " . TABLE_PREFIX . "forum AS forum
LEFT JOIN " . TABLE_PREFIX . "forumread AS forumread ON (forum.forumid = forumread.forumid AND forumread.userid = $userid)
WHERE forum.forumid IN ($foruminfo[parentlist])
AND forum.forumid NOT IN ($foruminfo[forumid], -1)
AND (forum.lastpost = 0 OR
IF(forumread.readtime IS NULL, " . (TIMENOW - ($vbulletin->options['markinglimit'] * 86400)) . ", forumread.readtime) > forum.lastpost
)
");
[5 May 2006 7:17] Guenther Waldbauer
Please note that vbulletin developers have confirmed bug in mysql:
http://www.vbulletin.com/forum/bugs35.php?do=view&bugid=2449
[5 May 2006 11:59] MySQL Verification Team
Dump for test case

Attachment: bug19520.sql (text/plain), 6.47 KiB.

[5 May 2006 12:01] MySQL Verification Team
Thank you for the bug report. I was able to repeat:

miguel@hegel:~/dbs/5.0> bin/mysql -uroot vbulletin
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.22-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SELECT forum.forumid
    ->  FROM vbulletin.forum AS forum
    -> LEFT JOIN vbulletin.forumread AS forumread ON (forum.forumid =
    ->  forumread.forumid AND forumread.userid = 1384)
    ->  WHERE forum.forumid IN (47,-1)
    ->  AND forum.forumid NOT IN (47, -1)
    ->  AND (forum.lastpost = 0 OR
    -> IF(forumread.readtime IS NULL, 1145793245, forumread.readtime) >
    ->  forum.lastpost
    ->  );
ERROR 2013 (HY000): Lost connection to MySQL server during query

060506  8:47:51 [Note] /home/miguel/dbs/5.0/libexec/mysqld: ready for connections.
Version: '5.0.22-debug'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
[New Thread 1131862960 (LWP 5787)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1131862960 (LWP 5787)]
0x082a4a59 in SEL_ARG::last (this=0x0) at opt_range.cc:1295
1295      if (!next_arg->right)
(gdb) bt full
#0  0x082a4a59 in SEL_ARG::last (this=0x0) at opt_range.cc:1295
        next_arg = (SEL_ARG *) 0x0
#1  0x082ae185 in get_func_mm_tree (param=0x4376a0dc, cond_func=0x8e8dc80, field=0x8e6ea50, value=0x0, cmp_type=INT_RESULT, inv=true)
    at opt_range.cc:3556
        last_val = (SEL_ARG *) 0x43769e58
        new_interval = (SEL_ARG *) 0x8e89428
        idx = 0
        i = 1
        tmp_root = (MEM_ROOT *) 0x4376c140
<CUT>
-----------------------------------------------------------------------------------
miguel@hegel:~/dbs/5.1> bin/mysqladmin -uroot create vbulletin
miguel@hegel:~/dbs/5.1> bin/mysql -uroot vbulletin < /home/miguel/jj/bug19520.sql 
miguel@hegel:~/dbs/5.1> bin/mysql -uroot vbulletin
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.1.10-beta-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SELECT forum.forumid
    ->  FROM vbulletin.forum AS forum
    -> LEFT JOIN vbulletin.forumread AS forumread ON (forum.forumid =
    ->  forumread.forumid AND forumread.userid = 1384)
    ->  WHERE forum.forumid IN (47,-1)
    ->  AND forum.forumid NOT IN (47, -1)
    ->  AND (forum.lastpost = 0 OR
    -> IF(forumread.readtime IS NULL, 1145793245, forumread.readtime) >
    ->  forum.lastpost
    ->  );
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> 
-----------------------------------------------------------------------------------
miguel@hegel:~/dbs/4.1> bin/mysqladmin -uroot create vbulletin
miguel@hegel:~/dbs/4.1> bin/mysql -uroot vbulletin < /home/miguel/jj/bug19520.sql 
miguel@hegel:~/dbs/4.1> bin/mysql -uroot vbulletin
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.19-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SELECT forum.forumid
    ->  FROM vbulletin.forum AS forum
    -> LEFT JOIN vbulletin.forumread AS forumread ON (forum.forumid =
    ->  forumread.forumid AND forumread.userid = 1384)
    ->  WHERE forum.forumid IN (47,-1)
    ->  AND forum.forumid NOT IN (47, -1)
    ->  AND (forum.lastpost = 0 OR
    -> IF(forumread.readtime IS NULL, 1145793245, forumread.readtime) >
    ->  forum.lastpost
    ->  );
Empty set (0.02 sec)

mysql>
[8 May 2006 16:40] Nik Soggia
a simpler test case: http://bugs.mysql.com/bug.php?id=19618
[8 May 2006 17:13] MySQL Verification Team
Marking this bug as duplicate of http://bugs.mysql.com/bug.php?id=19618
since the last one has a more simple test case.