Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-57651

ASAN failure for "stat vkey"

    XMLWordPrintable

Details

    • Untriaged
    • 0
    • Unknown

    Description

      I wrote a unit test utilizing "stat vkey mykey 0" and got an address sanitizer error:

      19:13:39  #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
      19:13:39  #1  0x00007f3de809a7f1 in __GI_abort () at abort.c:79
      19:13:39  #2  0x0000000001670d87 in __sanitizer::Abort() ()
      19:13:39  #3  0x000000000166f761 in __sanitizer::Die() ()
      19:13:39  #4  0x00000000016572e9 in __asan::ScopedInErrorReport::~ScopedInErrorReport() ()
      19:13:39  #5  0x0000000001658a5f in __asan::ReportGenericError(unsigned long, unsigned long, unsigned long, unsigned long, bool, unsigned long, unsigned int, bool) ()
      19:13:39  #6  0x00000000015f27c1 in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) ()
      19:13:39  #7  0x00000000015f2bab in bcmp ()
      19:13:40  #8  0x00000000023fbf77 in KVBucket::validateKey[abi:cxx11](DocKey const&, Vbid, Item&) (this=<optimized out>, key=..., vbucket=..., diskItem=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/engines/ep/src/kv_bucket.cc:1981
      19:13:41  #9  0x0000000001c4dbce in EventuallyPersistentEngine::doKeyStats(CookieIface&, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&, Vbid, DocKey const&, bool) (this=<optimized out>, cookie=..., add_stat=..., vbid=..., key=..., validate=<optimized out>) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/engines/ep/src/ep_engine.cc:4178
      19:13:41  #10 0x0000000001c58fd0 in EventuallyPersistentEngine::doVKeyStats(CookieIface&, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&, std::basic_string_view<char, std::char_traits<char> >) (this=<optimized out>, cookie=..., add_stat=..., statKey=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/engines/ep/src/ep_engine.cc:4756
      19:13:41  #11 0x0000000001bfb800 in EventuallyPersistentEngine::getStats(CookieIface&, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&) (this=<optimized out>, c=..., key=..., value=..., add_stat=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/engines/ep/src/ep_engine.cc:4966
      19:13:41  #12 0x0000000001bf97ee in EventuallyPersistentEngine::get_stats(CookieIface&, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&) (this=0x7f3dcc6a33e0, cookie=..., key=..., value=..., add_stat=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/engines/ep/src/ep_engine.cc:356
      19:13:42  #13 0x0000000002a907b0 in EWB_Engine::get_stats(CookieIface&, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&) (this=<optimized out>, cookie=..., key=..., value=..., add_stat=...) at ../kv_engine/engines/ewouldblock_engine/ewouldblock_engine.cc:1202
      19:13:42  #14 0x0000000001ab4f3c in bucket_get_stats(Cookie&, std::basic_string_view<char, std::char_traits<char> >, cb::sized_buffer<unsigned char const>, std::function<void (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, CookieIface&)> const&) (cookie=..., key=..., value=..., add_stat=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/daemon/protocol/mcbp/engine_wrapper.cc:430
      19:13:42  #15 0x00000000019c4fd1 in StatsTaskBucketStats::getStats (this=<optimized out>, command_error=<optimized out>, stats=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/daemon/stats_tasks.cc:62
      19:13:42  #16 0x00000000019c6ed5 in StatsTask::run()::$_59::operator()<StatsTask::TaskData> (this=<optimized out>, data=...) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/daemon/stats_tasks.cc:40
      19:13:42  #17 0x00000000019c4ba1 in folly::SynchronizedBase<folly::Synchronized<StatsTask::TaskData, std::mutex>, (folly::detail::SynchronizedMutexLevel)1>::withLock<StatsTask::run()::$_59>(StatsTask::run()::$_59&&) (this=<optimized out>, function=...) at tlm/deps/folly.exploded/include/folly/Synchronized.h:525
      19:13:42  #18 0x00000000019c4a68 in StatsTask::run (this=<optimized out>) at /home/couchbase/jenkins/workspace/kv_engine.ASan-UBSan_master/kv_engine/daemon/stats_tasks.cc:39
      [ ... cut ... ] 

       

      The code does the following:

      1. set the bucket compression mode to active
      2. use incr to create a document
      3. use subdoc to add a large extended attribute (so the document will compress)
      4. loop and use 'stat vkey docname`  to wait for the document to be compressed

       

      Attachments

        For Gerrit Dashboard: MB-57651
        # Subject Branch Project Status CR V

        Activity

          People

            trond Trond Norbye
            trond Trond Norbye
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty