XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.8.2
    • Fix Version/s: 2.9.1, 2.10.4, 3.0.0-alpha4
    • Component/s: library
    • Labels:
      None

      Description

      I've encountered an intermittent segfault while running the couchbase-python-client unit tests. Initially I thought it was related to private changes I made to the client code, but it also appears to happen running from the couchbase-python-client master. It's hard to tell if it's a specific piece of functionality that is crashing, but it appears to happen pretty often on the 'bad_host' test. This is the place it segfaults:

      * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
      frame #0: 0x0000000105867799 libcouchbase.2.dylib`lcb::clconfig::Confmon::do_next_provider(this=0x0000000102500690) at confmon.cc:248
         245 for (ProviderList::const_iterator ii = active_providers.begin();
         246 ii != active_providers.end(); ++ii) {
         247 ConfigInfo *info;
      -> 248 Provider* cached_provider = *ii;
         249 info = cached_provider->get_cached();
         250 if (!info) {
         251 continue;
      Target 0: (python2.7) stopped.
      

      Have only just spotted this, so not sure how easy it is to reproduce outside this test.

        Attachments

        1. backtrace_221017.txt
          7 kB
        2. frame_variable_221017
          0.3 kB
        3. image-2019-05-29-16-54-05-375.png
          image-2019-05-29-16-54-05-375.png
          224 kB
        4. lcb_282_crash_22102017.txt
          31 kB
        5. lcb_logs_backtrace_variables.txt
          32 kB
        6. port1_mainline_pcaps_and_logs.zip
          9 kB
        7. screenshot-1.png
          screenshot-1.png
          224 kB
        8. tests.ini
          0.7 kB
        For Gerrit Dashboard: CCBC-866
        # Subject Branch Project Status CR V

          Activity

          Hide
          build-team Couchbase Build Team added a comment -

          Build libcouchbase-2.8.5-457 contains libcouchbase commit 6425bbb with commit message:
          CCBC-866: track invalidated active_provider_list using unique ID (3.0.0-alpha3)

          Show
          build-team Couchbase Build Team added a comment - Build libcouchbase-2.8.5-457 contains libcouchbase commit 6425bbb with commit message: CCBC-866 : track invalidated active_provider_list using unique ID (3.0.0-alpha3)
          Hide
          build-team Couchbase Build Team added a comment -

          Build couchbase-server-6.5.0-3370 contains libcouchbase commit eacefea with commit message:
          CCBC-866: track invalidated list using unique ID (2.10.3)

          Show
          build-team Couchbase Build Team added a comment - Build couchbase-server-6.5.0-3370 contains libcouchbase commit eacefea with commit message: CCBC-866 : track invalidated list using unique ID (2.10.3)
          Hide
          Ellis.Breen Ellis Breen added a comment -

          Just run this for many iterations (numerous PYCBC changesets) and the problem hasn't occurred once. Looks like a successful fix.

          Hoping to have this or a similar fix merged soon to go out with PYCBC Alpha release.

          Show
          Ellis.Breen Ellis Breen added a comment - Just run this for many iterations (numerous PYCBC changesets) and the problem hasn't occurred once. Looks like a successful fix. Hoping to have this or a similar fix merged soon to go out with PYCBC Alpha release.
          Hide
          Ellis.Breen Ellis Breen added a comment -

          Suggested fix: http://review.couchbase.org/c/109842/ - testing now

          Show
          Ellis.Breen Ellis Breen added a comment - Suggested fix: http://review.couchbase.org/c/109842/ - testing now
          Hide
          Ellis.Breen Ellis Breen added a comment -

          Looks like do_next_provider is ultimately calling

           

           lcb::clconfig::Confmon::prepare

           
          Which then invalidates the iterator by clearing the vector:

          Show
          Ellis.Breen Ellis Breen added a comment - Looks like do_next_provider is ultimately calling   lcb::clconfig::Confmon::prepare   Which then invalidates the iterator by clearing the vector:

            People

            • Assignee:
              avsej Sergey Avseyev
              Reporter:
              Ellis.Breen Ellis Breen
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  PagerDuty

                  Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.