-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libc++abi.dylib: Pure virtual function called! #3794
Comments
couldn't repro.. can you run under gdb and get a backtrace? |
|
RocksDB version: 5.8.7 |
Seems like shared_ptr to block cache is mishandled here; the block cache was deleted before being accessed again here:
and accessed again at
|
The problem seems to be that table reader keeps a reference of the options instead of a copy of them. As a result the shared_ptr to block cache is not ref counted and the pointer to block cache could be deleted while the table reader is still alive. rocksdb/table/block_based_table_reader.h Line 423 in 17e0403
|
This is already fixed in master: 93d5269 |
What release of RocksDB contains this fix ? |
I don't see this commit in latest version and before We can't upgrage RocksDB version because of this bug |
Expected behavior
Test finished successfully
Actual behavior
libc++abi.dylib: Pure virtual function called!
Steps to reproduce the behavior
#include "rocksdb/db.h"
`int main() {
system("rm -rf /repos/rocksdata/*");
system("exec rm -rf /repos/load.sst");
}`
The text was updated successfully, but these errors were encountered: