Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-559

Segfault when forward proxy HTTPS to a host not listening on port 443

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • 2.1.5
    • Network
    • None

    Description

      When doing a forward proxy setup, and a request like this is processed:

      GET https://127.0.0.1 HTTP/1.0
      Host: 127.0.0.1

      where 127.0.0.1:443 is not listened on, then two things will happen:

      1) The client connection "hangs".

      2) When client disconnects, we segfault (see trace below).

      It is understood that ATS does not support forwarding proxy of HTTPS like this, instead we support CONNECT which is what (most) clients will use to forward proxy HTTPS. But, obviously it's not acceptable to segfault under these conditions. Note that this problem is only there if the server is setup to handle forward proxy, i.e. remap.required is set to '0'.

      #0 0x0000000000000000 in ?? ()
      #1 0x0000000000519cd7 in HttpServerSession::do_io_close (this=0x7fffe01ccf20, alerrno=<value optimized out>)
      at HttpServerSession.cc:128
      #2 0x000000000052e8b8 in cleanup_entry (this=0x7fffec6c7c30) at HttpSM.cc:261
      #3 cleanup_all (this=0x7fffec6c7c30) at HttpSM.cc:272
      #4 HttpSM::kill_this (this=0x7fffec6c7c30) at HttpSM.cc:6060
      #5 0x000000000052f3f8 in HttpSM::main_handler (this=0x7fffec6c7c30, event=104, data=0x7fffdc013740)
      at HttpSM.cc:2550
      #6 0x000000000068a7c1 in handleEvent (event=<value optimized out>, nh=0x7ffff526d638, vc=0x7fffdc013660)
      at ../../iocore/eventsystem/I_Continuation.h:147
      #7 read_signal_and_update (event=<value optimized out>, nh=0x7ffff526d638, vc=0x7fffdc013660)
      at UnixNetVConnection.cc:146
      #8 read_signal_done (event=<value optimized out>, nh=0x7ffff526d638, vc=0x7fffdc013660)
      at UnixNetVConnection.cc:176
      #9 0x000000000068d20d in read_from_net (nh=0x7ffff526d638, vc=0x7fffdc013660, thread=<value optimized out>)
      at UnixNetVConnection.cc:308
      #10 0x0000000000684460 in NetHandler::mainNetEvent (this=0x7ffff526d638, event=<value optimized out>,
      e=<value optimized out>) at UnixNet.cc:411
      #11 0x00000000006b0494 in handleEvent (this=0x7ffff526c010, e=0xf5dd70, calling_code=5) at I_Continuation.h:147
      #12 EThread::process_event (this=0x7ffff526c010, e=0xf5dd70, calling_code=5) at UnixEThread.cc:149
      #13 0x00000000006b0e23 in EThread::execute (this=0x7ffff526c010) at UnixEThread.cc:271
      #14 0x00000000006af31a in spawn_thread_internal (a=0xf50720) at Thread.cc:85
      #15 0x00007ffff7bca761 in start_thread (arg=0x7ffff4e67710) at pthread_create.c:301
      #16 0x00007ffff63544fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

      Attachments

        Activity

          People

            zwoop Leif Hedstrom
            zwoop Leif Hedstrom
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: