Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-855

Router crash when disconnecting from console

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.8.0
    • 1.0.0
    • Container
    • None

    Description

      The router will crash if it receives a connection from a console and then the console disconnects.

      To reproduce:

      • dnf install qpid-dispatch-router
      • dnf install qpid-dispatch-tools
      • create a config file with an http listener named A.conf that contains:
        router { mode: standalone id: A }

        listener

        { port: 5673 host: 0.0.0.0 http: true saslMechanisms: ANONYMOUS name: Console Listener }
      • start the router
        $ qdrouterd --config <path/to/>A.conf
      • connect a console: browse to localhost:5673
      • close the browser window
      • the router crashes

      Here is the output from the router:
      qdrouterd --config /usr/local/etc/qpid-dispatch/A.conf
      2017-10-10 13:37:20.279849 -0400 SERVER (info) Container Name: A
      2017-10-10 13:37:20.279926 -0400 ROUTER (info) Router started in Standalone mode
      2017-10-10 13:37:20.280273 -0400 ROUTER_CORE (info) Router Core thread running. 0/A
      2017-10-10 13:37:20.280290 -0400 ROUTER_CORE (info) In-process subscription M/$management
      2017-10-10 13:37:20.333194 -0400 AGENT (info) Activating management agent on $_management_internal
      2017-10-10 13:37:20.333276 -0400 ROUTER_CORE (info) In-process subscription L/$management
      2017-10-10 13:37:20.333310 -0400 ROUTER_CORE (info) In-process subscription L/$_management_internal
      2017-10-10 13:37:20.333608 -0400 CONN_MGR (info) Configured Listener: localhost:5673 proto=any, role=normal, http
      2017-10-10 13:37:20.333725 -0400 SERVER (info) HTTP server thread running
      2017-10-10 13:37:20.333825 -0400 SERVER (notice) Listening for HTTP on localhost:5673
      2017-10-10 13:37:20.336628 -0400 POLICY (info) Policy configured maxConnections: 65535, policyDir: '', access rules enabled: 'false'
      2017-10-10 13:37:20.341923 -0400 POLICY (info) Policy fallback defaultVhost is defined: '$default'
      2017-10-10 13:37:20.342088 -0400 SERVER (info) Operational, 4 Threads Running
      2017-10-10 13:37:57.114258 -0400 CONTAINER (notice) Aborting link '68c3979a-9bdf-7e4e-b578-ecfcd8925acb' due to parent connection end
      2017-10-10 13:37:57.114304 -0400 CONTAINER (notice) Aborting link '5ec6b95c-3885-984e-995d-297f2841ca02' due to parent connection end
      Segmentation fault (core dumped)

      Here is a backtrace:
      (gdb) bt
      #0 0x0000000000000010 in ?? ()
      #1 0x00007ffff79379fe in pn_class_decref (clazz=0x7fffe4019b60,
      clazz@entry=0x7ffff7b6ec00 <PN_OBJECT>, object=0x7fffe4019b40)
      at /usr/src/debug/qpid-proton-0.17.0/proton-c/src/core/object/object.c:91
      #2 0x00007ffff7937c2f in pn_decref (object=<optimized out>)
      at /usr/src/debug/qpid-proton-0.17.0/proton-c/src/core/object/object.c:253
      #3 0x00007ffff7944732 in pn_collector_free (collector=<optimized out>)
      at /usr/src/debug/qpid-proton-0.17.0/proton-c/src/core/event.c:108
      #4 0x00007ffff7bb6bcc in qd_connection_free (ctx=0x7fffe400c290)
      at /usr/src/debug/qpid-dispatch-0.8.0/src/server.c:169
      #5 0x00007ffff7bbaa21 in callback_amqpws (wsi=0x7fffe400a640,
      reason=<optimized out>, user=0x7fffe400a850, in=0x0, len=0)
      at /usr/src/debug/qpid-dispatch-0.8.0/src/http-libwebsockets.c:496
      #6 0x00007ffff6cffe6c in lws_close_free_wsi (wsi=wsi@entry=0x7fffe400a640,
      reason=reason@entry=LWS_CLOSE_STATUS_NOSTATUS)
      at /usr/src/debug/libwebsockets-2.1.1/lib/libwebsockets.c:518
      #7 0x00007ffff6d0179e in lws_service_fd_tsi (
      context=context@entry=0x5555559e08d0, pollfd=<optimized out>,
      tsi=tsi@entry=0) at /usr/src/debug/libwebsockets-2.1.1/lib/service.c:1117
      #8 0x00007ffff6d0bc73 in lws_plat_service_tsi (context=0x5555559e08d0,
      timeout_ms=<optimized out>, tsi=tsi@entry=0)
      at /usr/src/debug/libwebsockets-2.1.1/lib/lws-plat-unix.c:184
      #9 0x00007ffff6d0be47 in lws_plat_service (context=<optimized out>,
      timeout_ms=<optimized out>)
      at /usr/src/debug/libwebsockets-2.1.1/lib/lws-plat-unix.c:204
      #10 0x00007ffff6d01d55 in lws_service (context=<optimized out>,
      timeout_ms=<optimized out>)
      at /usr/src/debug/libwebsockets-2.1.1/lib/service.c:1139
      #11 0x00007ffff7bbb76c in http_thread_run (v=0x5555559f45f0)
      at /usr/src/debug/qpid-dispatch-0.8.0/src/http-libwebsockets.c:536
      #12 0x00007ffff770e6ca in start_thread () from /lib64/libpthread.so.0
      #13 0x00007ffff6a39f7f in clone () from /lib64/libc.so.6

      Notes:
      $ rpm -qa | grep dispatch
      qpid-dispatch-debuginfo-0.8.0-2.fc25.x86_64
      qpid-dispatch-tools-0.8.0-2.fc25.x86_64
      qpid-dispatch-router-0.8.0-2.fc25.x86_64

      $ rpm -qa | grep proton
      python-qpid-proton-0.17.0-5.fc25.x86_64
      qpid-proton-c-0.17.0-5.fc25.x86_64
      qpid-proton-debuginfo-0.17.0-5.fc25.x86_64

      router was started from root account
      I can't reproduce from a source build, only from 0.8.0 packages

      Attachments

        Activity

          People

            gmurthy Ganesh Murthy
            eallen Ernest Allen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: