Skip to content
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

rocksdb/env/io_posix.cc:449: rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, const string&, void*, size_t, const rocksdb::EnvOptions&): Assertion `!options.use_direct_reads' failed. #895

Open
george-lorch opened this issue Nov 1, 2018 · 3 comments

Comments

@george-lorch
Copy link

I believe this is similar but different from #778

I reproduced this on facebook-mysql-5.6.35 at commit 414870a

Start mysqld with "--rocksdb-use-direct-io-for-flush-and-compaction=1 --rocksdb-block-cache-size=10000000 --rocksdb-allow-mmap-reads=1" on tmpfs and get the following callstack:

mysqld: /home/glorch/dev/ps/facebook-mysql/rocksdb/env/io_posix.cc:449: rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, const string&, void*, size_t, const rocksdb::EnvOptions&): Assertion `!options.use_direct_reads' failed.

Thread 1 "mysqld" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff5915801 in __GI_abort () at abort.c:79
#2 0x00007ffff590539a in __assert_fail_base (fmt=0x7ffff5a8c7d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x555557478f4f "!options.use_direct_reads",
file=file@entry=0x555557478c98 "/home/glorch/dev/ps/facebook-mysql/rocksdb/env/io_posix.cc", line=line@entry=449,
function=function@entry=0x55555747af60 <rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, void*, unsigned long, rocksdb::EnvOptions const&)::PRETTY_FUNCTION> "rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, const string&, void*, size_t, const rocksdb::EnvOptions&)") at assert.c:92
#3 0x00007ffff5905412 in __GI___assert_fail (assertion=0x555557478f4f "!options.use_direct_reads", file=0x555557478c98 "/home/glorch/dev/ps/facebook-mysql/rocksdb/env/io_posix.cc", line=449,
function=0x55555747af60 <rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, void*, unsigned long, rocksdb::EnvOptions const&)::PRETTY_FUNCTION> "rocksdb::PosixMmapReadableFile::PosixMmapReadableFile(int, const string&, void*, size_t, const rocksdb::EnvOptions&)") at assert.c:101
#4 0x0000555556e6ea75 in rocksdb::PosixMmapReadableFile::PosixMmapReadableFile (this=0x5555583452d0, fd=6, fname="./.rocksdb/IDENTITY", base=0x7ffff7ff4000, length=37, options=...) at /home/glorch/dev/ps/facebook-mysql/rocksdb/env/io_posix.cc:449
#5 0x0000555556e61309 in rocksdb::(anonymous namespace)::PosixEnv::NewRandomAccessFile (this=0x555557f5ff20 rocksdb::Env::Default()::default_env, fname="./.rocksdb/IDENTITY", result=0x7fffffffbd50, options=...)
at /home/glorch/dev/ps/facebook-mysql/rocksdb/env/env_posix.cc:231
#6 0x0000555556d378e0 in rocksdb::DBImpl::Recover (this=0x555558346af0, column_families=std::vector of length 2, capacity 2 = {...}, read_only=false, error_if_log_file_exist=false, error_if_data_exists_in_logs=false)
at /home/glorch/dev/ps/facebook-mysql/rocksdb/db/db_impl_open.cc:368
#7 0x0000555556d3c060 in rocksdb::DBImpl::Open (db_options=..., dbname="./.rocksdb", column_families=std::vector of length 2, capacity 2 = {...}, handles=0x7fffffffc800, dbptr=0x7fffffffc3c8, seq_per_batch=false, batch_per_txn=true)
at /home/glorch/dev/ps/facebook-mysql/rocksdb/db/db_impl_open.cc:1127
#8 0x00005555570168d5 in rocksdb::TransactionDB::Open (db_options=..., txn_db_options=..., dbname="./.rocksdb", column_families=std::vector of length 2, capacity 2 = {...}, handles=0x7fffffffc800, dbptr=0x555557f3ea80 myrocks::rdb)
at /home/glorch/dev/ps/facebook-mysql/rocksdb/utilities/transactions/pessimistic_transaction_db.cc:236
#9 0x0000555556bc29bf in myrocks::rocksdb_init_func (p=0x5555583358a0) at /home/glorch/dev/ps/facebook-mysql/storage/rocksdb/ha_rocksdb.cc:4859
#10 0x000055555626dc6b in ha_initialize_handlerton (plugin=0x555558329200) at /home/glorch/dev/ps/facebook-mysql/sql/handler.cc:655
#11 0x00005555564ad227 in plugin_initialize (plugin=0x555558329200) at /home/glorch/dev/ps/facebook-mysql/sql/sql_plugin.cc:1163
#12 0x00005555564add2d in plugin_init (argc=0x555557ed1410 <remaining_argc>, argv=0x5555581d94f0, flags=0) at /home/glorch/dev/ps/facebook-mysql/sql/sql_plugin.cc:1465
#13 0x000055555623cc27 in init_server_components () at /home/glorch/dev/ps/facebook-mysql/sql/mysqld.cc:6010
#14 0x00005555562401f3 in mysqld_main (argc=18, argv=0x5555581d94f0) at /home/glorch/dev/ps/facebook-mysql/sql/mysqld.cc:7355
#15 0x000055555623085a in main (argc=5, argv=0x7fffffffd868) at /home/glorch/dev/ps/facebook-mysql/sql/main.cc:25

I don't feel this is a critical issue but reporting it in case there is a low-hanging way to address it without asserting.

@hermanlee
Copy link
Contributor

Yes, it's the same issue. Could probably just extend the fix to check for use-direct-io-for-flush-and-compaction too.

@george-lorch
Copy link
Author

Yup, I believe as well. I'll send in a patch in a bit.

@george-lorch
Copy link
Author

#897

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants