Bug #43201 | sp-error.test fails on Windows debug build in embedded mode | ||
---|---|---|---|
Submitted: | 25 Feb 2009 17:06 | Modified: | 14 Mar 2010 1:01 |
Reporter: | Ingo Strüwing | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S2 (Serious) |
Version: | 6.0 | OS: | Windows (debug build) |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
[25 Feb 2009 17:06]
Ingo Strüwing
[25 Feb 2009 18:21]
Vladislav Vaintroub
Exception code 0xc00000fd is stack overflow
[20 Feb 2010 23:16]
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/100983 3094 Vladislav Vaintroub 2010-02-21 Bug#43201 : Stack overrun when running sp-error test. It appears that stack overflow checks for recusrive stored procedure calls, that run in the normal server, did not work in embedded and were dummified with preprocessor magic( #ifndef EMBEDDED_SERVER ). The fix is to remove ifdefs, there is no reason not to run overflow checks and crash in deeply recursive calls. Note: Start of the stack (thd->thread_stack variable) in embedded is not necessarily exact but stil provides the best guess. Unless the caller of mysql_read_connect() is already deep in the stack, thd->thread_stack variable should approximate stack start address well.
[23 Feb 2010 11:49]
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/101186 3099 Vladislav Vaintroub 2010-02-23 Bug#43201 : Stack overrun when running sp-error test. It appears that stack overflow checks for recusrive stored procedure calls, that run in the normal server, did not work in embedded and were dummified with preprocessor magic( #ifndef EMBEDDED_SERVER ). The fix is to remove ifdefs, there is no reason not to run overflow checks and crash in deeply recursive calls. Note: Start of the stack (thd->thread_stack variable) in embedded is not necessarily exact but stil provides the best guess. Unless the caller of mysql_read_connect() is already deep in the stack, thd->thread_stack variable should approximate stack start address well.
[23 Feb 2010 19:28]
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/101248 2980 Vladislav Vaintroub 2010-02-23 Bug#43201: Post-fix. Set thread stack address at the start of each query. Reason: implementation of send/reap in mysqltest uses the same "embedded" connection in a thread different from current, so thread stack has to change when connection is used in different OS thread..
[25 Feb 2010 19:47]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100225194420-p60r4u90tszj8q2x) (version source revid:wlad@sun.com-20100223200354-0b9k5wroq5frqoyd) (merge vers: 6.0.14-alpha) (pib:16)
[25 Feb 2010 19:49]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100225194305-h49uyjrlfl3mwo60) (version source revid:wlad@sun.com-20100223192538-is2877eg074f925p) (pib:16)
[6 Mar 2010 10:57]
Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:alik@sun.com-20100225195857-farb6yvy8x06bylj) (merge vers: 5.5.99-m3) (pib:16)
[14 Mar 2010 1:01]
Paul DuBois
Noted in 5.5.3, 6.0.14 changelogs. In the embedded server, stack overflow checks for recursive stored procedure calls did not work and stack overflow could occur.