pthread unlock: Invalid argument during ErrorHandler::RecoverFromBGError
- Lingua principale
- C++
- Stelle
- 32.1k
- Fork
- 6.9k
- Merge medio
- 32m
- PR unite (30g)
- 1
Descrizione
It looks like this is the mutex in question: https://github.com/facebook/rocksdb/blob/master/db/error_handler.cc#L568
Does rocksdb have mechanisms to ensure that concurrently running cleanup operations complete before this mutex is destroyed?
### Expected behavior
Rocksdb instances should not crash the process.
### Actual behavior
```
pthread unlock: Invalid argument
*** Aborted at 1636596349 (Unix time, try 'date -d @1636596349') ***
*** Signal 6 (SIGABRT) (0x13) received by PID 19 (pthread TID 0x7f7301e55700) (linux TID 61682) (maybe from PID 19, UID 0) (code: -6), stack trace: ***
@ 000000000028e68c folly::symbolizer::(anonymous namespace)::signalHandler(int, siginfo_t*, void*)
/src/folly/folly/experimental/symbolizer/SignalHandler.cpp:457
@ 0000000000000000 (unknown)
@ 000000000004618b gsignal
@ 0000000000025858 abort
@ 0000000000c33ebf rocksdb::ErrorHandler::RecoverFromBGError(bool)
/src/rocksdb/db/error_handler.cc:0
@ 0000000000d5931e rocksdb::SstFileManagerImpl::ClearError()
/src/rocksdb/file/sst_file_manager_impl.cc:308
@ 0000000000000000 (unknown)
@ 0000000000009608 start_thread
@ 0000000000122292 clone
```
### Steps to reproduce the behavior
I don't have a precise set of steps to reproduce, as this happened only once. However, I believe this happened during rocksdb shutdown after the machine had previously run out of disk space, which would explain the background error.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.