facebook / facebook/rocksdb

pthread unlock: Invalid argument during ErrorHandler::RecoverFromBGError

Aperta
#9,155 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
question up-for-grabs
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.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.