Skip to content

SSL handshake has been broken on QUIC #6749

@scw00

Description

@scw00
2020-05-08 21:01:42.392238+0800 traffic_server[85502:5904997] Fatal: SSLUtils.cc:1683: failed assertion `dynamic_cast<SSLNetVConnection *>(static_cast<NetVConnection *>(SSL_get_ex_data(ssl, ssl_vc_index)))`
Process 85502 stopped
* thread #2, name = '[ET_NET 0]', stop reason = signal SIGABRT
    frame #0: 0x00007fff668c37fa libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x7fff668c37fa <+10>: jae    0x7fff668c3804            ; <+20>
    0x7fff668c37fc <+12>: movq   %rax, %rdi
    0x7fff668c37ff <+15>: jmp    0x7fff668bda89            ; cerror_nocancel
    0x7fff668c3804 <+20>: retq
Target 0: (traffic_server) stopped.
(lldb) bt
* thread #2, name = '[ET_NET 0]', stop reason = signal SIGABRT
  * frame #0: 0x00007fff668c37fa libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff66980bc1 libsystem_pthread.dylib`pthread_kill + 432
    frame #2: 0x00007fff6684aa1c libsystem_c.dylib`abort + 120
    frame #3: 0x0000000101df305e libtscore.10.dylib`ink_abort(message_format="%s:%d: failed assertion `%s`") at ink_error.cc:99:3
    frame #4: 0x0000000101df00bc libtscore.10.dylib`::_ink_assert(expression="dynamic_cast<SSLNetVConnection *>(static_cast<NetVConnection *>(SSL_get_ex_data(ssl, ssl_vc_index)))", file="SSLUtils.cc", line=1683) at ink_assert.cc:37:3
    frame #5: 0x00000001004bda67 traffic_server`SSLNetVCAccess(ssl=0x00000001051a2568) at SSLUtils.cc:1683:3
    frame #6: 0x00000001004b45f1 traffic_server`ssl_callback_session_ticket(ssl=0x00000001051a2568, keyname="", iv="@\x84`\x05\x01", cipher_ctx=0x0000000105608430, hctx=0x0000000105608380, enc=1) at SSLSessionTicket.cc:61:31
    frame #7: 0x00000001005a04d1 traffic_server`bssl::ssl_encrypt_ticket_with_cipher_ctx(hs=0x000000010519fbb8, out=0x00000001056085c8, session_buf="0\x81\x98\x02\x01\x01\x02\x02\x03\x04\x04\x02\x13\x02\x04", session_len=155) at ssl_session.cc:483:9
    frame #8: 0x00000001005a020e traffic_server`bssl::ssl_encrypt_ticket(hs=0x000000010519fbb8, out=0x00000001056085c8, session=0x0000000102720d68) at ssl_session.cc:584:11
    frame #9: 0x00000001005ce8b9 traffic_server`bssl::add_new_session_tickets(hs=0x000000010519fbb8, out_sent_tickets=0x000000010560869f) at tls13_server.cc:150:10
    frame #10: 0x00000001005cd8b9 traffic_server`bssl::do_send_new_session_ticket(hs=0x000000010519fbb8) at tls13_server.cc:958:8
    frame #11: 0x00000001005caf6b traffic_server`bssl::tls13_server_handshake(hs=0x000000010519fbb8) at tls13_server.cc:1020:15
    frame #12: 0x000000010056a945 traffic_server`bssl::do_tls13(hs=0x000000010519fbb8) at handshake_server.cc:714:29
    frame #13: 0x0000000100569f31 traffic_server`bssl::ssl_server_handshake(hs=0x000000010519fbb8) at handshake_server.cc:1681:15
    frame #14: 0x00000001005618e4 traffic_server`bssl::ssl_run_handshake(hs=0x000000010519fbb8, out_early_return=0x00000001056087f7) at handshake.cc:676:16
    frame #15: 0x0000000100590a37 traffic_server`::SSL_do_handshake(ssl=0x00000001051a2568) at ssl_lib.cc:891:13
    frame #16: 0x0000000100590c5d traffic_server`::SSL_accept(ssl=0x00000001051a2568) at ssl_lib.cc:922:10
    frame #17: 0x0000000100773245 traffic_server`QUICTLS::_handshake(this=0x00000001057db000, out=0x0000000105608ab8, in=0x0000000105608b00) at QUICTLS.cc:457:11
    frame #18: 0x0000000100773065 traffic_server`QUICTLS::handshake(this=0x00000001057db000, out=0x0000000105608ab8, in=0x0000000105608b00) at QUICTLS.cc:136:16
    frame #19: 0x000000010076a788 traffic_server`QUICHandshake::do_handshake(this=0x0000000106000c00) at QUICHandshake.cc:507:48
    frame #20: 0x000000010076a229 traffic_server`QUICHandshake::handle_frame(this=0x0000000106000c00, level=HANDSHAKE, frame=0x00000001057ece08) at QUICHandshake.cc:322:21
    frame #21: 0x000000010074890a traffic_server`QUICFrameDispatcher::receive_frames(this=0x00000001057ec000, level=HANDSHAKE, payload="\x02\x01\x05", size=68, ack_only=0x0000000105619413, is_flow_controlled=0x0000000105619412, has_non_probing_frame=0x0000000000000000, packet=0x00000001056197c0) at QUICFrameDispatcher.cc:82:18
    frame #22: 0x0000000100510e1f traffic_server`QUICNetVConnection::_recv_and_ack(this=0x000000010b97ef20, packet=0x00000001056197c0, has_non_probing_frame=0x0000000000000000) at QUICNetVConnection.cc:1698:36
    frame #23: 0x00000001005109d1 traffic_server`QUICNetVConnection::_state_handshake_process_handshake_packet(this=0x000000010b97ef20, packet=0x00000001056197c0) at QUICNetVConnection.cc:1250:16
    frame #24: 0x000000010050c7a2 traffic_server`QUICNetVConnection::_state_handshake_process_packet(this=0x000000010b97ef20, packet=0x00000001056197c0) at QUICNetVConnection.cc:1090:19
    frame #25: 0x000000010050adc4 traffic_server`QUICNetVConnection::state_handshake(this=0x000000010b97ef20, event=2500, data=0x0000000000000000) at QUICNetVConnection.cc:802:23
    frame #26: 0x0000000100004e3f traffic_server`Continuation::handleEvent(this=0x000000010b97ef20, event=2500, data=0x0000000000000000) at I_Continuation.h:190:12
    frame #27: 0x000000010050f0a2 traffic_server`QUICNetVConnection::net_read_io(this=0x000000010b97ef20, nh=0x0000000105410d10, lthread=0x000000010540d000) at QUICNetVConnection.cc:989:9
    frame #28: 0x00000001004d4ef3 traffic_server`NetHandler::process_ready_list(this=0x0000000105410d10) at UnixNet.cc:400:11
    frame #29: 0x00000001004d5942 traffic_server`NetHandler::waitForActivity(this=0x0000000105410d10, timeout=2484000) at UnixNet.cc:535:3
    frame #30: 0x00000001005545c1 traffic_server`EThread::execute_regular(this=0x000000010540d000) at UnixEThread.cc:266:14
    frame #31: 0x0000000100554a6d traffic_server`EThread::execute(this=0x000000010540d000) at UnixEThread.cc:327:11
    frame #32: 0x0000000100552c27 traffic_server`spawn_thread_internal(a=0x000000010270cd70) at Thread.cc:92:12
    frame #33: 0x00007fff66980e65 libsystem_pthread.dylib`_pthread_start + 148
    frame #34: 0x00007fff6697c83b libsystem_pthread.dylib`thread_start + 15

Platform: Mac OS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions