Uploaded image for project: 'bgpcep'
  1. bgpcep
  2. BGPCEP-525

BGP session creation potentially caused deadlock

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • Bugzilla Migration
    • Bugzilla Migration
    • BGP
    • None
    • Operating System: All
      Platform: All

    • 6470

    Description

      In AbstractBGPSessionNegotiator, handleMessage() was able to be invoked by channel.pipeline().replace(..) recursively. So when handling a BGP message, it could happen that this.state gets out of sync and exception got thrown.

      In handleOpen(..) of AbstractBGPSessionNegotiator, when we new a BGPSessionImpl(), we replace the handler in channel.pipeline() to change the extend message coder. If a message arrived during the replacement, another handleMessage() will be invoked (in the same thread). However, as the BGPSessionImpl hasn't returned and session is not set, handleMessage() will throw out a BGP_FSM error.

      This is causing an intermittent failure in BGPDispatcherImplTest.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            kevinxw Kevin Wang
            kevinxw Kevin Wang
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: