Invalid heap address and fatal signal 11

I just ran into the same issue and had it at a re-producable state. This is the error I was getting:

08-04 17:37:05.491: A/libc(4233): @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
08-04 17:37:05.491: A/libc(4233): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)

What it boiled down to is a function call being made from two different threads at the same time.

More specifically, this function was BluetoothSocket’s close() method.

I checked the source code at this website , and the call is not synchronized (not sure if this changed since it is from Android 2.1).

At any rate, do you maybe have a similar scenario where a function call is made from multiple threads? Can’t say for sure from the source code you’re showing.

Also have you tried not using THREAD_POOL_EXECUTOR? According to the android dev guide:

When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting with HONEYCOMB, tasks are executed on a single thread to avoid common application errors caused by parallel execution.

Leave a Comment