| Bug #38594 | Falcon crash in MemMgr and Sync object during exit of mysqld | ||
|---|---|---|---|
| Submitted: | 6 Aug 2008 10:36 | Modified: | 8 Jan 11:31 |
| Reporter: | Olav Sandstaa | ||
| Status: | Closed | ||
| Category: | Server: Falcon | Severity: | S3 (Non-critical) |
| Version: | 6.0.6 | OS: | Sun Solaris (Solaris 10 on AMD Opteron) |
| Assigned to: | Vladislav Vaintroub | Target Version: | 6.0.7 |
| Tags: | Sun Studio | ||
| Triage: | D1 (Critical) | ||
[6 Aug 2008 10:36]
Olav Sandstaa
[6 Aug 2008 11:59]
Olav Sandstaa
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 14:25]
Vladislav Vaintroub
Fix is in http://lists.mysql.com/commits/50993 Pushed to falcon-team
[7 Aug 2008 20: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 20: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
[23 Aug 2008 0:07]
Kevin Lewis
This fix is in version 6.0.7
[28 Aug 2008 22: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 2: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 7: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 11: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
