SIGSEGV when PosixLogger::Logv posix_logger.h:110 on Android
- Dominant language
- C++
- Stars
- 32.1k
- Forks
- 6.9k
- Avg merge
- 32m
- Merged PRs (30d)
- 1
Description
### Basic Info
* RocksDb Version :
* Environment : Android
* Configs :
- DisableWAL = true
- Sync = false
### Description
When running RocksDb on Android, sometimes we get crash report happened on RocksDb try to recover itself.
The `posix_logger.h:110` try to access `localtime_r(&seconds, &t);` and throw `SIGSEGV`
### Steps to reproduce the behavior
Tried force kill process when operating Db and reopen process.
Not able to reproduce.
* Stacktrace is below
```
Crashed: Thread : SIGSEGV 0x0038694755524639
#00 pc 0x70b4a2fac8 libc.so
#01 pc 0x70b4a37b20 libc.so
#02 pc 0x70b4a32898 libc.so
#03 pc 0x7006efc930 librocksdb.so (rocksdb::PosixLogger::Logv(char const*, std::__va_list) [posix_logger.h:110])
#04 pc 0x7006e786e0 librocksdb.so (rocksdb::Logger::LogHeader(char const*, std::__va_list) [env.h:993])
#05 pc 0x7006e76bdc librocksdb.so (rocksdb::Logv(rocksdb::InfoLogLevel, rocksdb::Logger*, char const*, std::__va_list) [env.cc:177])
#06 pc 0x7006e914bc librocksdb.so (rocksdb::ColumnFamilyOptions::Dump(rocksdb::Logger*) const [options.cc:354])
#07 pc 0x7006dbf92c librocksdb.so (rocksdb::ColumnFamilyData::ColumnFamilyData(unsigned int, std::__ndk1::basic_string, std::__ndk1::allocator > const&, rocksdb::Version*, rocksdb::Cache*, rocksdb::WriteBufferManager*, rocksdb::ColumnFamilyOptions const&, rocksdb::ImmutableDBOptions const&, rocksdb::EnvOptions const&, rocksdb::ColumnFamilySet*, rocksdb::BlockCacheTracer*) [column_family.cc:490])
#08 pc 0x7006dc2878 librocksdb.so (rocksdb::ColumnFamilySet::CreateColumnFamily(std::__ndk1::basic_string, std::__ndk1::allocator > const&, unsigned int, rocksdb::Version*, rocksdb::ColumnFamilyOptions const&) [column_family.cc:1346])
#09 pc 0x7006e5457c librocksdb.so (rocksdb::VersionSet::CreateColumnFamily(rocksdb::ColumnFamilyOptions const&, rocksdb::VersionEdit*) [version_set.cc:5376])
#10 pc 0x7006e55274 librocksdb.so (rocksdb::VersionSet::ApplyOneVersionEditToBuilder(rocksdb::VersionEdit&, std::__ndk1::unordered_map, std::__ndk1::allocator >, rocksdb::ColumnFamilyOptions, std::__ndk1::hash, std::__ndk1::allocator > >, std::__ndk1::equal_to, std::__ndk1::allocator > >, std::__ndk1::allocator, std::__ndk1::allocator > const, rocksdb::ColumnFamilyOptions> > > const&, std::__ndk1::unordered_map, std::__ndk1::allocator >, std::__ndk1::hash, std::__ndk1::equal_to, std::__ndk1::allocator, std::__ndk1::allocator > > > >&, std::__ndk1::unordered_map >, std::__ndk1::hash, std::__ndk1::equal_to, std::__ndk1::allocator > > > >&, rocksdb::VersionEdit*) [version_set.cc:4102])
#11 pc 0x7006e5605c librocksdb.so (rocksdb::VersionSet::ReadAndRecover(rocksdb::log::Reader*, rocksdb::AtomicGroupReadBuffer*, std::__ndk1::unordered_map, std::__ndk1::allocator >, rocksdb::ColumnFamilyOptions, std::__ndk1::hash, std::__ndk1::allocator > >, std::__ndk1::equal_to, std::__ndk1::allocator > >, std::__ndk1::allocator, std::__ndk1::allocator > const, rocksdb::ColumnFamilyOptions> > > const&, std::__ndk1::unordered_map, std::__ndk1::allocator >, std::__ndk1::hash, std::__ndk1::equal_to, std::__ndk1::allocator, std::__ndk1::allocator > > > >&, std::__ndk1::unordered_map >, std::__ndk1::hash, std::__ndk1::equal_to, std::__ndk1::allocator > > > >&, rocksdb::VersionEdit*, std::__ndk1::basic_string, std::__ndk1::allocator >*) [version_set.cc:4281])
#12 pc 0x7006e569ec librocksdb.so (rocksdb::VersionSet::Recover(std::__ndk1::vector > const&, bool, std::__ndk1::basic_string, std::__ndk1::allocator >*) [version_set.cc:4367])
#13 pc 0x7006e0ed7c librocksdb.so (rocksdb::DBImpl::Recover(std::__ndk1::vector > const&, bool, bool, bool) [db_impl_open.cc:396])
#14 pc 0x7006e12fbc librocksdb.so (rocksdb::DBImpl::Open(rocksdb::DBOptions const&, std::__ndk1::basic_string, std::__ndk1::allocator > const&, std::__ndk1::vector > const&, std::__ndk1::vector >*, rocksdb::DB**, bool, bool) [db_impl_open.cc:1358])
```
Contributor guide
Assessment
This issue has not been assessed yet.