The malloc error reporting should only report the first error, not attempt to recusively report all error (we knew it was corrupted at the outer most point, so any further work inside malloc is also likely to find corruption).
Full stack trace to follow.
The main problem is the process does not abort() and die, it hangs around in:
malloc_printerr() on error detection "free(): invalid next size (fast)" ends up calling into:
backtrace.c:init() c:do_dlopen( ) c:malloc_ printerr( )
dl-libc.
malloc.c:calloc()
malloc.
The malloc error reporting should only report the first error, not attempt to recusively report all error (we knew it was corrupted at the outer most point, so any further work inside malloc is also likely to find corruption).
Full stack trace to follow.
The main problem is the process does not abort() and die, it hangs around in:
pthread_ once.S: pthread_ one() c:__backtrace( )
backtrace.
I think due to recursive lock, this lock should trylock() on the 2nd time and abort() the process immediately. It does appear to deadlock itself.