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