Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-6232

[C++ broker] Linearstore segfaults when ulimit prevents creating new file in EFP

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.30
    • Future
    • C++ Broker

    Description

      When EFP fails to open a new file (i.e. due to ulimit to nofiles), linearstore segfaults with backtrace:

      #0 0x00000034d429c1b9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const () from /usr/lib64/libstdc++.so.6
      #1 0x00007fe466719b50 in qpid::linearstore::journal::EmptyFilePool::takeEmptyFile (this=0xddb540, destDirectory="/var/lib/qpidd/qls/jrnl/Durable_4_8")
      at /usr/src/debug/qpid-0.22/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp:109
      #2 0x00007fe4667327a0 in qpid::linearstore::journal::LinearFileController::pullEmptyFileFromEfp (this=0x3478288)
      at /usr/src/debug/qpid-0.22/cpp/src/qpid/linearstore/journal/LinearFileController.cpp:239
      #3 0x00007fe466748bfd in qpid::linearstore::journal::wmgr::flush_check (this=0x34784f8, res=@0x7fe462f55f90, cont=@0x7fe462f55f9f, done=@0x7fe462f55f9c)
      at /usr/src/debug/qpid-0.22/cpp/src/qpid/linearstore/journal/wmgr.cpp:651
      #4 0x00007fe46674c134 in qpid::linearstore::journal::wmgr::enqueue (this=0x34784f8, data_buff=<value optimized out>, tot_data_len=177, this_data_len=<value optimized out>, dtokp=
      0x7fe3e583ed60, xid_ptr=0x0, xid_len=0, tpc_flag=false, transient=false, external=false) at /usr/src/debug/qpid-0.22/cpp/src/qpid/linearstore/journal/wmgr.cpp:223

      The problem is EmptyFilePool::overwriteFileContents does not react anyhow if ofs.good() is false.

      Attachments

        Activity

          People

            pmoravec Pavel Moravec
            pmoravec Pavel Moravec
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: