Skip to content

[Bug]: EloqDoc start crashed when eloq_store files is more then maxclients #211

Closed

Description

@xiexiaoy
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./bin/eloqdoc --config=./etc/eloqdoc.conf --data_substrate_config=./etc/data_su'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007c70e661f62c in io_uring_queue_exit () from /home/xiexy/service/eloqdoc/bin/../lib/liburing.so.2
[Current thread is 1 (Thread 0x7c70e4b9e100 (LWP 20951))]
(gdb) bt
#0  0x00007c70e661f62c in io_uring_queue_exit () from /home/xiexy/service/eloqdoc/bin/../lib/liburing.so.2
#1  0x00007c70e6a51a4f in eloqstore::IouringMgr::~IouringMgr (this=0x3009b343000, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloqstore/async_io_manager.cpp:120
#2  0x00007c70e6a5829a in eloqstore::CloudStoreMgr::~CloudStoreMgr (this=0x3009b343000, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/allocator.h:184
#3  eloqstore::CloudStoreMgr::~CloudStoreMgr (this=0x3009b343000, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloqstore/async_io_manager.h:395
#4  0x00007c70e69faf7e in std::default_delete<eloqstore::AsyncIoManager>::operator() (__ptr=<optimized out>, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:93
#5  std::unique_ptr<eloqstore::AsyncIoManager, std::default_delete<eloqstore::AsyncIoManager> >::~unique_ptr (this=0x3009a8880f0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#6  eloqstore::Shard::~Shard (this=0x3009a887e00, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloqstore/shard.h:21
#7  0x00007c70e69f7c00 in std::default_delete<eloqstore::Shard>::operator() (this=<optimized out>, __ptr=0x3009a887e00) at /usr/include/c++/13/bits/unique_ptr.h:93
#8  std::default_delete<eloqstore::Shard>::operator() (__ptr=0x3009a887e00, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:93
#9  std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> >::~unique_ptr (this=0x3009ad360e0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#10 std::destroy_at<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> > > (__location=0x3009ad360e0) at /usr/include/c++/13/bits/stl_construct.h:88
#11 std::_Destroy<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> > > (__pointer=0x3009ad360e0) at /usr/include/c++/13/bits/stl_construct.h:149
#12 std::_Destroy_aux<false>::__destroy<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> >*> (__last=0x3009ad36130, __first=0x3009ad360e0) at /usr/include/c++/13/bits/stl_construct.h:163
#13 std::_Destroy<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> >*> (__last=0x3009ad36130, __first=<optimized out>) at /usr/include/c++/13/bits/stl_construct.h:196
#14 std::_Destroy<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> >*, std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> > > (__last=0x3009ad36130, __first=<optimized out>) at /usr/include/c++/13/bits/alloc_traits.h:948
#15 std::vector<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> >, std::allocator<std::unique_ptr<eloqstore::Shard, std::default_delete<eloqstore::Shard> > > >::~vector (this=0x3009ab07180, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_vector.h:735
#16 eloqstore::EloqStore::~EloqStore (this=0x3009ab07000, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloqstore/eloq_store.cpp:153
#17 0x00007c70e693e08a in std::default_delete<eloqstore::EloqStore>::operator() (this=<optimized out>, __ptr=0x3009ab07000) at /usr/include/c++/13/bits/unique_ptr.h:93
#18 std::default_delete<eloqstore::EloqStore>::operator() (__ptr=0x3009ab07000, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:93
#19 std::unique_ptr<eloqstore::EloqStore, std::default_delete<eloqstore::EloqStore> >::~unique_ptr (this=0x3009aaf8018, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#20 EloqDS::EloqStoreDataStore::~EloqStoreDataStore (this=0x3009aaf8000, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloq_store_data_store.h:167
#21 EloqDS::EloqStoreDataStore::~EloqStoreDataStore (this=0x3009aaf8000, __in_chrg=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloq_store_data_store.h:167
#22 std::default_delete<EloqDS::EloqStoreDataStore>::operator() (__ptr=0x3009aaf8000, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:99
#23 std::unique_ptr<EloqDS::EloqStoreDataStore, std::default_delete<EloqDS::EloqStoreDataStore> >::~unique_ptr (this=<synthetic pointer>, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#24 EloqDS::EloqStoreDataStoreFactory::CreateDataStore (this=<optimized out>, create_if_missing=<optimized out>, shard_id=<optimized out>, data_store_service=<optimized out>, start_db=<optimized out>)
    at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/eloq_store_data_store_factory.h:57
#25 0x00007c70e699d2af in EloqDS::DataStoreService::StartService (this=0x3009ae28000, create_db_if_missing=<optimized out>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/store_handler/eloq_data_store_service/data_store_service.cpp:292
#26 0x00007c70e693ccfa in DataSubstrate::InitializeStorageHandler (this=this@entry=0x7c70e6ad7900 <DataSubstrate::Instance()::instance_>, config_reader=...) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/core/src/storage_init.cpp:312
#27 0x00007c70e68f8a45 in DataSubstrate::Start (this=this@entry=0x7c70e6ad7900 <DataSubstrate::Instance()::instance_>) at /home/xiexy/eloqdoc/src/mongo/db/modules/eloq/data_substrate/core/src/data_substrate.cpp:171
#28 0x00007c70e8ca1ecc in mongo::EloqKVEngine::EloqKVEngine (this=this@entry=0x3009a8ac400, path=...) at src/mongo/db/modules/eloq/src/eloq_kv_engine.cpp:160
#29 0x00007c70e8dea83c in std::make_unique<mongo::EloqKVEngine, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> () at /usr/include/c++/13/bits/unique_ptr.h:1070
#30 mongo::(anonymous namespace)::EloqFactory::create (this=<optimized out>, params=..., lockFile=<optimized out>) at src/mongo/db/modules/eloq/src/eloq_init.cpp:48
#31 0x00007c70ecb0ec9f in mongo::initializeStorageEngine (service=service@entry=0x3009a800640, initFlags=initFlags@entry=mongo::kNone) at src/mongo/db/storage/storage_engine_init.cpp:188
#32 0x00007c70ee8158f2 in mongo::(anonymous namespace)::_initAndListen (listenPort=<optimized out>) at src/mongo/db/db.cpp:337
#33 0x00007c70ee819842 in mongo::(anonymous namespace)::initAndListen (listenPort=<optimized out>) at src/mongo/db/db.cpp:689
#34 mongo::mongoDbMain (argc=3, argv=0x7ffe97a37df8, envp=envp@entry=0x7ffe97a37e18) at src/mongo/db/db.cpp:1034
#35 0x0000612c734a5c7d in main (argc=<optimized out>, argv=<optimized out>, envp=0x7ffe97a37e18) at src/mongo/db/dbmain.cpp:57

Activity

  1. coderabbitai commented on Dec 15, 2025

    @coderabbitai
    Contributor

    📝 CodeRabbit Plan Mode

    Generate an implementation plan and prompts that you can use with your favorite coding agent.

    • Create Plan
    Examples

    🔗 Similar Issues

    Related Issues

    🔗 Related PRs

    eloqdata/eloqdoc#224 - Replace USE_ROCKSDB_LOG_STATE and WITH_ROCKSDB_CLOUD compile flags [merged]
    eloqdata/store_handler#122 - Convert txservice cluster config to dss_config [merged]
    eloqdata/eloqdoc#333 - build eloqstore release tarball [merged]
    eloqdata/tx_service#250 - fix bug and refactor init process [merged]
    eloqdata/eloqdoc#345 - Fix cluster fail to start after bootstrap when using built-in log service [merged]

    👤 Suggested Assignees


    🧪 Issue enrichment is currently in early access.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false
  2. xiexiaoy commented on Dec 15, 2025

    @xiexiaoy
    CollaboratorAuthor

    EloqStore configurations

    eloq_store_open_files_limit=260000
    eloq_store_manifest_limit=100000
    

    --maxclients not set.

    git@github.com:monographdb/sysbench-mongodb-lua.git branch: large_doc
    Run sysbench to prepare documents.

    sysbench oltp-mongo.lua --threads=1 --tables=1 --table-size=60000000 --mongodb-db=sbtest --rand-type=uniform --create_secondary=false prepare
    

    There are 10 nodes; somehow, one node crashed during sysbench prepare. Then, restart reports segmentation fault.

  3. thweetkomputer commented on Jan 12, 2026

    @thweetkomputer
    Collaborator

    data_substrate uses maxclients to set rlimit improperly

  4. added theissue type on Jan 13, 2026
  5. added this to the release-1.0 milestone on Jan 13, 2026
  6. thweetkomputer commented on Jan 14, 2026

    @thweetkomputer
    Collaborator

    maxclients default parameter is increased, this should be an issue of data_substrate. eloqdata/tx_service#364

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions