Bug #38594 | Falcon crash in MemMgr and Sync object during exit of mysqld | ||
---|---|---|---|
Submitted: | 6 Aug 2008 8:36 | Modified: | 8 Jan 2009 10:31 |
Reporter: | Olav Sandstå | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S3 (Non-critical) |
Version: | 6.0.6 | OS: | Solaris (Solaris 10 on AMD Opteron) |
Assigned to: | Vladislav Vaintroub | CPU Architecture: | Any |
Tags: | Sun Studio |
[6 Aug 2008 8:36]
Olav Sandstå
[6 Aug 2008 9:59]
Olav Sandstå
To verify whether the MemMgr was a valid object or had already been destructed at the time of the crash I added a fprintf to the constructor and destructor of MemMgr and an assert on a status variable for whether or not the destructor had been run on it. The result: Installing MySQL system tables... MemMgr::Mgr(int,int,int) MemMgr::Mgr(int,int,int) MemMgr::~MemMgr MemMgr::~MemMgr Assertion failed: init == 6, file MemMgr.cpp, line 340 So the cause for this crash is basically that we are trying to allocate a new object from an already destructed Memory Manager (which also was Vlad's theory).
[6 Aug 2008 12:25]
Vladislav Vaintroub
Fix is in http://lists.mysql.com/commits/50993 Pushed to falcon-team
[7 Aug 2008 18:21]
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/51134 2770 Vladislav Vaintroub 2008-08-07 [merge] merge
[7 Aug 2008 18:21]
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/51135 2770 Vladislav Vaintroub 2008-08-07 [merge] merge
[22 Aug 2008 22:07]
Kevin Lewis
This fix is in version 6.0.7
[28 Aug 2008 20:17]
Bugs System
Pushed into 6.0.7-alpha (revid:cbell@mysql.com-20080822132131-uveo6wiuecy6m2b8) (version source revid:cbell@mysql.com-20080822132131-uveo6wiuecy6m2b8) (pib:3)
[29 Aug 2008 0:06]
Kevin Lewis
This solution is temporary. The real problem is outlined in Bug#38598. Once we can use the Falcon memory manager without overriding global new and delete, then the Falcon Memory Manager should be reverted back to only using itself. It should be used within Falcon only when it is instantiated. This patch makes it switch automatically to use plain malloc() & free() if the memory manager is not alive. This solution has caused follow-on problems when a Jstring was allocated before the MemMgr was alive, but freed after. See the latest patch for Bug#38041; http://lists.mysql.com/commits/52288.
[14 Sep 2008 5:53]
Bugs System
Pushed into 6.0.7-alpha (revid:vvaintroub@mysql.com-20080806115321-60zhg0yehaxhca7c) (version source revid:john.embretsen@sun.com-20080724122511-9c0oudz1xrdrs6y6) (pib:3)
[8 Jan 2009 10:31]
MC Brown
A note has been added to the 6.0.7 changelog: When using mysql_install_db on MySQL built with Sun Studio 12 with the --with-debug option enabled, the server would crash