Bug #34587 Creating a view inside a stored procedure leads to a server crash
| Submitted: | 15 Feb 2008 10:56 | Modified: | 15 Mar 2008 11:03 |
|---|---|---|---|
| Reporter: | Davi Arnaut (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.1+ | OS: | Any |
| Assigned to: | Davi Arnaut | CPU Architecture: | Any |
[15 Feb 2008 10:56]
Davi Arnaut
[15 Feb 2008 11:41]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/42344 ChangeSet@1.2552, 2008-02-15 09:40:55-02:00, davi@mysql.com +5 -0 Bug#34587 Creating a view inside a stored procedure leads to a server crash The problem is that when a stored procedure is being parsed for the first execution, the body is copied to a temporary buffer which is disregarded sometime after the statement is parsed. And during this parsing phase, the rule for CREATE VIEW was holding a reference to the string being parsed for use during the execution of the CREATE VIEW statement, leading to invalid memory access later. The solution is to allocate and copy the SELECT of a CREATE VIEW statement using the thread memory root, which is set to the permanent arena of the stored procedure.
[20 Feb 2008 14:45]
Konstantin Osipov
Approved by email.
[20 Feb 2008 20:27]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/42699 ChangeSet@1.2552, 2008-02-20 17:26:50-03:00, davi@mysql.com +5 -0 Bug#34587 Creating a view inside a stored procedure leads to a server crash The problem is that when a stored procedure is being parsed for the first execution, the body is copied to a temporary buffer which is disregarded sometime after the statement is parsed. And during this parsing phase, the rule for CREATE VIEW was holding a reference to the string being parsed for use during the execution of the CREATE VIEW statement, leading to invalid memory access later. The solution is to allocate and copy the SELECT of a CREATE VIEW statement using the thread memory root, which is set to the permanent arena of the stored procedure.
[20 Feb 2008 20:30]
Davi Arnaut
Queued in 5.1-runtime
[3 Mar 2008 18:19]
Bugs System
Pushed into 5.1.24-rc
[3 Mar 2008 18:20]
Bugs System
Pushed into 6.0.5-alpha
[15 Mar 2008 11:03]
Jon Stephens
Documented bugfix in the 5.1.24 and 6.0.5 changelogs as follows:
Creating a view inside a stored procedure could lead to a crash of the
MySQL Server.
[2 Apr 2008 19:58]
Jon Stephens
Also noted in the 5.1.23-ndb-6.3.11 changelog.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.058 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.