Hi Li!

Sorry for the delay.
It seems the problem lies here:
https://github.com/apache/arrow/blob/9f5899019d23b2b1eae2fedb9f6be8827885d843/cpp/src/arrow/filesystem/s3fs.cc#L1858

The Future is marked finished with the ObjectOutputStream's mutex taken, and the Future's callback then triggers a chain of event which leads to calling the ObjectOutputStream destructor, which in turn tries to take the lock.

Can you open a GH issue and we can follow up there?

Regards

Antoine.


Le 23/05/2024 à 21:23, Li Jin a écrit :
Hello,

I am seeing a deadlock when destructing an ObjectOutputStream. I have attached the stack trace.

I did some debugging and found that the issue seems to be that the mutex in question is already held by this thread (I checked the __owner field in the pthread_mutex_t which points to the hanging thread)

Unfortunately the stack trace doesn’t show exactly which mutex it is trying to lock. I wonder if someone more familiar with the IO code has some ideas what might be the issue and where to dig deeper?

Appreciate the help,
Li



Reply via email to