Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-6149

std::string ctor is called for a c-string without nul terminator

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • None
    • None
    • PrimProc
    • None

    Description

      Can be reproduced with QA using TPC-H q7 over TPC-H SF1 dataset.
      Here is crashtrace I encountered.

      (gdb) bt
      #0  __memcpy_avx_unaligned_erms_rtm () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:831
      #1  0x00007a333b559e77 in std::char_traits<char>::copy (__n=<optimized out>, __s2=<optimized out>, __s1=<optimized out>) at /usr/include/c++/13/bits/char_traits.h:435
      #2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy (__n=4294967297, 
          __s=0x5e9613237b60 <vtable for std::_Sp_counted_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, (__gnu_cxx::_Lock_policy)2>+16> "p\271\f\023\226^", 
          __d=<optimized out>) at /usr/include/c++/13/bits/basic_string.h:430
      #3  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars (__k2=0x5e9713237b61 <error: Cannot access memory at address 0x5e9713237b61>, 
          __k1=0x5e9613237b60 <vtable for std::_Sp_counted_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, (__gnu_cxx::_Lock_policy)2>+16> "p\271\f\023\226^", 
          __p=<optimized out>) at /usr/include/c++/13/bits/basic_string.h:478
      #4  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (__end=0x5e9713237b61 <error: Cannot access memory at address 0x5e9713237b61>, 
          __beg=0x5e9613237b60 <vtable for std::_Sp_counted_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, (__gnu_cxx::_Lock_policy)2>+16> "p\271\f\023\226^", 
          this=0x7a2a8a1fd850) at /usr/include/c++/13/bits/basic_string.tcc:247
      #5  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__str=..., this=0x7a2a8a1fd850) at /usr/include/c++/13/bits/basic_string.h:551
      #6  utils::NullString::safeString[abi:cxx11](char const*) const (defaultValue=0x7a333b5afaaa "", this=<optimized out>)
          at /data/mdb-server/storage/columnstore/columnstore/utils/common/nullstring.h:158
      #7  execplan::PredicateOperator::getBoolVal (this=0x7a3329e54c00, row=..., isNull=<optimized out>, lop=<optimized out>, rop=<optimized out>)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/predicateoperator.cpp:720
      #8  0x00007a333b545f38 in execplan::ParseTree::getBoolVal (this=<optimized out>, isNull=@0x7a2a8a1fdadf: false, row=...)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/parsetree.h:326
      #9  execplan::ParseTree::getBoolVal (isNull=@0x7a2a8a1fdadf: false, row=..., this=<optimized out>) at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/parsetree.h:321
      #10 execplan::LogicOperator::getBoolVal (this=<optimized out>, row=..., isNull=@0x7a2a8a1fdadf: false, lop=<optimized out>, rop=0x7a3329f85800)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/logicoperator.h:130
      #11 0x00007a333b545e13 in execplan::ParseTree::getBoolVal (isNull=@0x7a2a8a1fdadf: false, row=..., this=<optimized out>)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/parsetree.h:324
      #12 execplan::LogicOperator::getBoolVal (this=<optimized out>, row=..., isNull=@0x7a2a8a1fdadf: false, lop=<optimized out>, rop=0x7a3329f85840)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/logicoperator.h:134
      #13 0x00007a333a547269 in execplan::ParseTree::getBoolVal (isNull=@0x7a2a8a1fdadf: false, row=..., this=<optimized out>)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/execplan/parsetree.h:324
      #14 funcexp::FuncExp::evaluate (filters=<optimized out>, row=..., this=<optimized out>) at /data/mdb-server/storage/columnstore/columnstore/utils/funcexp/funcexp.h:107
      #15 funcexp::FuncExpWrapper::evaluate (this=this@entry=0x7a3329f85900, r=r@entry=0x7a2a8a1fdc90) at /data/mdb-server/storage/columnstore/columnstore/utils/funcexp/funcexpwrapper.cpp:120
      #16 0x00007a333b87eb15 in joblist::TupleHashJoinStep::processFE2 (this=this@entry=0x7a3329e25000, input=..., output=..., inRow=..., outRow=..., rgData=rgData@entry=0x7a2a8a1fe600, 
          local_fe=0x7a3329f85900) at /data/mdb-server/storage/columnstore/columnstore/dbcon/joblist/tuplehashjoin.cpp:1656
      #17 0x00007a333b882c96 in joblist::TupleHashJoinStep::generateJoinResultSet (this=0x7a3329e25000, threadID=<optimized out>, joinerOutput=std::vector of length 2, capacity 2 = {...}, baseRow=..., 
          mappings=std::shared_ptr<std::shared_ptr<int []> []> (use count 1, weak count 0) = {...}, depth=<optimized out>, l_outputRG=..., rgData=..., 
          outputData=std::vector of length 17, capacity 32 = {...}, smallRows=std::shared_ptr<rowgroup::Row []> (use count 1, weak count 0) = {...}, joinedRow=..., dlp=0x7a3329f56500)
          at /data/BuildOf_mdb-server/storage/columnstore/columnstore/.boost/boost-lib/include/boost/smart_ptr/shared_ptr.hpp:562
      #18 0x00007a333b882832 in joblist::TupleHashJoinStep::generateJoinResultSet (this=this@entry=0x7a3329e25000, threadID=threadID@entry=10, joinerOutput=std::vector of length 2, capacity 2 = {...}, 
          baseRow=..., mappings=std::shared_ptr<std::shared_ptr<int []> []> (use count 1, weak count 0) = {...}, depth=depth@entry=0, l_outputRG=..., rgData=..., 
          outputData=std::vector of length 17, capacity 32 = {...}, smallRows=std::shared_ptr<rowgroup::Row []> (use count 1, weak count 0) = {...}, joinedRow=..., dlp=0x7a3329f56500)
          at /data/mdb-server/storage/columnstore/columnstore/dbcon/joblist/tuplehashjoin.cpp:1865
      #19 0x00007a333b88334f in joblist::TupleHashJoinStep::joinOneRG (this=this@entry=0x7a3329e25000, threadID=threadID@entry=10, out=std::vector of length 17, capacity 32 = {...}, inputRG=..., 
          joinOutput=..., largeSideRow=..., joinFERow=..., joinedRow=..., baseRow=..., joinMatches=std::vector of length 2, capacity 2 = {...}, 
          smallRowTemplates=std::shared_ptr<rowgroup::Row []> (use count 1, weak count 0) = {...}, outputDL=0x7a3329f56500, tjoiners=0x7a3329e25478, rgMappings=0x7a3329e25b68, feMappings=0x7a3329e25b78, 
          smallNullMem=0x7a3329e25ba0) at /data/mdb-server/storage/columnstore/columnstore/dbcon/joblist/tuplehashjoin.cpp:1838
      #20 0x00007a333b884a02 in joblist::TupleHashJoinStep::joinRunnerFcn (this=<optimized out>, threadID=10) at /data/mdb-server/storage/columnstore/columnstore/dbcon/joblist/tuplehashjoin.cpp:1578
      --Type <RET> for more, q to quit, c to continue without paging--
      #21 0x00007a333b888985 in joblist::TupleHashJoinStep::JoinRunner::operator() (this=0x7a2b0020c3a0) at /data/mdb-server/storage/columnstore/columnstore/dbcon/joblist/tuplehashjoin.h:535
      #22 0x00007a333adbe828 in boost::function_n<void>::operator() (this=0x7a2b0020c398)
          at /data/BuildOf_mdb-server/storage/columnstore/columnstore/.boost/boost-lib/include/boost/function/function_template.hpp:789
      #23 threadpool::ThreadPool::beginThread (this=0x5e9613248a00 <joblist::JobStep::jobstepThreadPool>) at /data/mdb-server/storage/columnstore/columnstore/utils/threadpool/threadpool.cpp:382
      #24 0x00007a333b016594 in thread_proxy () from /lib/x86_64-linux-gnu/librwlock.so
      #25 0x00007a3339c9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
      #26 0x00007a3339d29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Attachments

        Activity

          People

            drrtuy Roman
            drrtuy Roman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.