Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
5.5.30
-
None
-
Linux 3.2.0-38-generic
Description
Create a table like this
CREATE TABLE `foo` ( |
`id` int(11) NOT NULL, |
`modified` datetime NOT NULL, |
PRIMARY KEY (`id`) |
);
|
Then run the following query to crash the server:
select a.* from foo a left join foo b on a.id = b.id where a.modified > b.modified or b.modified is null; |
The query will enter the optimizing state and start consuming memory (and swap, if applicable) until the server runs out of memory and mysqld is killed.
Note that it does not matter whether the table is an InnoDB or MyISAM table. MySQL 5.5.29 does not exhibit this behavior.
Attachments
Issue Links
- relates to
-
MDEV-4461 Server uses all memory and CPU in remove_eq_conds
-
- Closed
-
It's a regression which came to 5.5.30 with the following revision:
revno: 3671 [merge]
revision-id: sergii@pisem.net-20130228214729-t0xhegqa9uzsr1k9
parent: sergii@pisem.net-20130228191953-70sigyi7o2viwe53
parent: sergii@pisem.net-20130228204847-vlit40812mz8af3u
committer: Sergei Golubchik <sergii@pisem.net>
branch nick: 5.5
timestamp: Thu 2013-02-28 22:47:29 +0100
message:
5.3->5.5 merge
I couldn't however reproduce it on 5.3 (neither on the current one nor on the version from that time), so I'm keeping it 5.5-only for now.
Reproducible as described, it doesn't matter whether the table is empty or not.
EXPLAIN exhibits the same behavior.