kdevelop assert failure: *** glibc detected *** kdevelop: free(): invalid pointer: 0xbfc22c44 ***
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GLibC |
Fix Released
|
Medium
|
|||
KDevelop |
Invalid
|
High
|
|||
eglibc (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Karmic |
Fix Released
|
High
|
Unassigned | ||
kdevelop (Ubuntu) |
Invalid
|
Low
|
Unassigned | ||
Karmic |
Invalid
|
Undecided
|
Unassigned | ||
qt4-x11 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Karmic |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: kdevelop
I created new project: "qt4 cmake gui application" with subversion system. For subversion repository I entered "localhost" (probably wrong, I was just playing with it). After clicking Finish kdevelop hanged so I closed it (it closed instantly without hanging my destkop for a second). Apport showed up a minute after closing.
ProblemType: Crash
Architecture: i386
AssertionMessage: *** glibc detected *** kdevelop: free(): invalid pointer: 0xbfc22c44 ***
Date: Mon Sep 7 15:28:48 2009
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/kdevelop
Package: kdevelop 4:3.9.95-0ubuntu2
ProcCmdline: /usr/bin/kdevelop
ProcEnviron:
LANGUAGE=
LANG=pl_PL.UTF-8
SHELL=/bin/bash
ProcVersionSign
Signal: 6
SourcePackage: kdevelop
StacktraceTop:
__kernel_vsyscall ()
raise () from /lib/tls/
abort () from /lib/tls/
?? () from /lib/tls/
?? () from /lib/tls/
Title: kdevelop assert failure: *** glibc detected *** kdevelop: free(): invalid pointer: 0xbfc22c44 ***
Uname: Linux 2.6.31-9-generic i686
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
visibility: | private → public |
Changed in kdevelop4: | |
status: | Unknown → Invalid |
Changed in kdevelop (Ubuntu): | |
status: | Triaged → Invalid |
Changed in glibc: | |
status: | Unknown → Fix Released |
Changed in kdevelop (Ubuntu Karmic): | |
status: | New → Invalid |
Changed in qt4-x11 (Ubuntu Karmic): | |
status: | New → Invalid |
Changed in eglibc (Ubuntu Karmic): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in eglibc (Ubuntu Karmic): | |
status: | Triaged → In Progress |
tags: |
added: verification-done removed: verification-needed |
Changed in kdevelop4: | |
status: | Invalid → Unknown |
Changed in kdevelop4: | |
importance: | Unknown → High |
status: | Unknown → Invalid |
Changed in glibc: | |
importance: | Unknown → Medium |
In multi-threaded programs, we are seeing a lot of free() aborts with
MALLOC_CHECK_ turned on (our default settings) with glibc-2.10 on
openSUSE:Factory. A simple testcase is not easy to make, but I suppose
brute-forcing parallel free()s agressively enough would make it show up.
I think this locking change is the cause. In realloc_check(), the mutex is
explicitly taken when calling mem2chunk_check(), and mem2chunk_check appears to
be accessing other parts of the arena which I guess is unsafe without the mutex.
Shouldn't the mutex be held during mem2chunk_check()?