Ticket Change Details
Overview

Artifact ID: f78047d0162a1008c5c170b0dceacdc785378de3c1005f1abc5c24cbcbc4a839
Ticket: 8b681abb1ef581f72e877392daa449cc24c98a30
Tcl application hangs during connection establishment to server not answering on TLS connection properly.
User & Date: anonymous on 2026-02-04 09:42:33
Changes

  1. foundin changed to:
    2.0 tcltls-20260122101940-ba2ee7744c and previous releases
    
  2. icomment:
    # Description
    
    Tcl application hangs during connection establishment to
    server not answering on TLS connection properly.
    
    tcltls has been compiled using TCl/Tk 8.6.17 and openssl 3.5.5 (linux and macos)
    
    Problem with tcltls-20260122101940-ba2ee7744c (also present in previous releases):
    
    
    # How to reproduce:
    
    start a server with:
    
    ```
    ncat -l -p 8143 -w 2
    ```
    
    In a second shell, start tclsh or width and run the following
    commands:
    
    ```
    package require http; package require tls;
    set tok [http::geturl https://localhost:8143/info -timeout 3000]
    ```
    
    Application hangs indefinitly until one types 5 characters and return
    in the ncat window. When compiled with debug output enabled one can
    see that tcltls hangs in (snippet of output):
    
    ```
    ...
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tlsIO.c:936:Tls_GetParent():Requested to get parent of channel 0xa0c49a290
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:104:BioOutput():[chan=0xa0c49a210] BioOutput(bio=0xa0ba66f00, buf=0xa0ac0e000, len=1542)
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:115:BioOutput():[chan=0xa0c49a210] BioOutput(1542) -> 1542 [tclEof=0; tclErrno=0: Undefined error: 0]
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:118:BioOutput():Successfully wrote 1542 bytes of data
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:146:BioOutput():BioOutput returning 1542
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsIO.c:936:Tls_GetParent():Requested to get parent of channel 0xa0c49a290
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:274:BioCtrl():BioCtrl(0xa0ba66f00, 0xb, 0x0, 0x0)
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:336:BioCtrl():Got BIO_CTRL_FLUSH
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:402:BioCtrl():BioCtrl return value 1
    .../tcltls-20260122101940-ba2ee7744c/generic/tls.c:158:InfoCallback():Called
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsIO.c:936:Tls_GetParent():Requested to get parent of channel 0xa0c49a290
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:176:BioInput():[chan=0xa0c49a210] BioInput(bio=0xa0ba66f00, buf=0xa0b35c003, len=5)
    .../tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:193:BioInput():[chan=0xa0c49a210] BioInput(buf len=5) -> 5 [tclEof=0; blocked=0; tclErrno=0: Undefined error: 0]
    ```
    
    Once the input is type in ncat, the process continues:
    
    ```
    ...
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:196:BioInput():Successfully read 5 bytes of data
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tlsBIO.c:221:BioInput():BioInput returning 5
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tls.c:244:MessageCallback():Called
    /opt/projects/prs/dvx1000/src/tcltls-20260122101940-ba2ee7744c/generic/tls.c:244:MessageCallback():Called
    ...
    ```
    
    # Rational
    
    The process should not hang when the server does not send a
    proper response to the TLS connection request, especially when a
    timeout has been specified for the https request.
    
  3. login: "anonymous"
  4. mimetype: "text/x-markdown"
  5. severity changed to: "Critical"
  6. status changed to: "Open"
  7. title changed to:
    Tcl application hangs during connection establishment to server not answering on TLS connection properly.
    
  8. type changed to: "Code Defect"