Qpid
  1. Qpid
  2. QPID-3197

C++ Broker crashes on persistence-based stress tests.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.10
    • Fix Version/s: 0.10
    • Component/s: C++ Broker
    • Labels:
      None

      Description

      While running under our persistence stress test suite, the C++ broker will occasionally crash with:

      Thread 1 (process 29629):
      #0 qpid::broker::SessionHandler::getConnection (this=0x0) at
      qpid/broker/SessionHandler.cpp:62
      #1 0x0000002a958037e4 in
      qpid::broker::SessionState::AsyncCommandCompleter::scheduleMsgCompletion
      (this=Variable "this" is not available.
      ) at ./qpid/RefCounted.h:42
      #2 0x0000002a95803b79 in
      qpid::broker::SessionState::IncompleteIngressMsgXfer::completed
      (this=0x2a9d8fc490, sync=Variable "sync" is not available.
      )
      <persistence code completes message enqueue>

      It appears that there is a window where the session is detached when the completion occurs, which results in a null pointer reference.

        Activity

        Ken Giusti created issue -
        Hide
        Ken Giusti added a comment -

        Set as blocker per Justin Ross' request.

        Show
        Ken Giusti added a comment - Set as blocker per Justin Ross' request.
        Ken Giusti made changes -
        Field Original Value New Value
        Priority Major [ 3 ] Blocker [ 1 ]
        Hide
        Ken Giusti added a comment -

        Review board of patch under test:

        https://reviews.apache.org/r/575/

        Show
        Ken Giusti added a comment - Review board of patch under test: https://reviews.apache.org/r/575/
        Hide
        Gordon Sim added a comment -

        Patch above is good for 0.10

        Show
        Gordon Sim added a comment - Patch above is good for 0.10
        Hide
        Justin Ross added a comment -

        Approved for 0.10. Reviewed by Gordon Sim.

        Show
        Justin Ross added a comment - Approved for 0.10. Reviewed by Gordon Sim.
        Hide
        Ken Giusti added a comment -

        FYI: The stress test involves running a number of clients against a single broker, using persistent storage. Clients are continually being created, setting up queues, sending and receiving persistent messages, and tearing down queues and connections.

        Show
        Ken Giusti added a comment - FYI: The stress test involves running a number of clients against a single broker, using persistent storage. Clients are continually being created, setting up queues, sending and receiving persistent messages, and tearing down queues and connections.
        Ken Giusti made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Ken Giusti
            Reporter:
            Ken Giusti
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development