"search_content_get" seems to be the culprit if I read your dump right.
blob_get needs to be wrapped in a begin/end pair or called within db_transaction. That's because it is pulling a bunch of segments from its blob table. If it's not executed in a transaction another thread could delete the blob and remove the segments when the blob_get's halfway through, screwing things up.
I could've made the driver smart enough to wrap it in a transaction if it weren't being called from within one, but didn't bother. It's simple enough to do so at the caller's end.
I'd welcome a patch, I'm sure!