• Tcl 8.6.7 - Tcl 8.6.13 socket.test hang intermittently on Windows 10

    From Scott Zhong@21:1/5 to All on Fri Oct 13 16:25:49 2023
    I'm running into an issue where socket.test is hanging on my Windows 10 machine using Visual Studio 2013 with Tcl 8.6.7 and Tcl 8.6.13. It looks like it hangs at the end of the test when close() is being called on the socket.

    nmake -f makefile.vc MACHINE=AMD64 release
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    ...
    ++++ socket-15.1.0 PASSED
    ---- socket-15.1.1 start
    ++++ socket-15.1.1 PASSED
    ---- socket-15.1.2 start
    ++++ socket-15.1.2 PASSED
    ---- socket-15.1.3 start
    ++++ socket-15.1.3 PASSED
    ---- socket-15.1.4 start
    ++++ socket-15.1.4 PASSED
    ---- socket-15.1.5 start
    ++++ socket-15.1.5 PASSED
    ---- socket-15.1.6 start
    ++++ socket-15.1.6 PASSED
    ---- socket-15.1.7 start
    ++++ socket-15.1.7 PASSED
    ---- socket-15.1.8 start
    ++++ socket-15.1.8 PASSED
    (hangs)

    Using git bisect, I have found the first bad commit to be

    5d0864fb41175752fd026bc818facf5849387c5a is the first bad commit
    commit 5d0864fb41175752fd026bc818facf5849387c5a
    Merge: 237c46512c 2f5a766c71
    Author: jan.nijtmans <nijtmans@users.sourceforge.net>
    Date: Mon May 1 08:20:54 2017 +0000

    Fix [8bd13f07bde6fb0631f27927e36461fdefe8ca95|8bd13f07bd]: Closing tcl pipes prevents windows threads from starting up. Patch by sebres (Dipl. Ing. Sergey G. Brester)
    (also fix duplicate test-case number in link.test)

    tests/link.test | 2 +-
    win/tclWinConsole.c | 223 +++++++------------
    win/tclWinInit.c | 20 ++
    win/tclWinInt.h | 75 +++++++
    win/tclWinPipe.c | 621 ++++++++++++++++++++++++++++++++++++++--------------
    win/tclWinSerial.c | 93 ++------
    6 files changed, 643 insertions(+), 391 deletions(-)

    I have also used Visual Studio 2019 to compile Tcl 6.8.13 and reproduce the hang, but on a different test within socket.test.

    ++++ socket_inet6-13.1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr2 SKIPPED: thread
    ++++ socket_inet6-13.2.cl1 SKIPPED: thread
    ++++ socket_inet6-13.2.cl2 SKIPPED: thread
    (hangs)

    It hangs in the sendCommand()

    socket.test: 1932
    # cleanup
    if {$remoteProcChan ne ""} {
    catch {sendCommand exit}
    }

    Is anyone else running into this problem?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Harald Oehlmann@21:1/5 to All on Sat Oct 14 14:19:40 2023
    Am 14.10.2023 um 01:25 schrieb Scott Zhong:
    I'm running into an issue where socket.test is hanging on my Windows 10 machine using Visual Studio 2013 with Tcl 8.6.7 and Tcl 8.6.13. It looks like it hangs at the end of the test when close() is being called on the socket.

    nmake -f makefile.vc MACHINE=AMD64 release
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    ...
    ++++ socket-15.1.0 PASSED
    ---- socket-15.1.1 start
    ++++ socket-15.1.1 PASSED
    ---- socket-15.1.2 start
    ++++ socket-15.1.2 PASSED
    ---- socket-15.1.3 start
    ++++ socket-15.1.3 PASSED
    ---- socket-15.1.4 start
    ++++ socket-15.1.4 PASSED
    ---- socket-15.1.5 start
    ++++ socket-15.1.5 PASSED
    ---- socket-15.1.6 start
    ++++ socket-15.1.6 PASSED
    ---- socket-15.1.7 start
    ++++ socket-15.1.7 PASSED
    ---- socket-15.1.8 start
    ++++ socket-15.1.8 PASSED
    (hangs)

    Using git bisect, I have found the first bad commit to be

    5d0864fb41175752fd026bc818facf5849387c5a is the first bad commit
    commit 5d0864fb41175752fd026bc818facf5849387c5a
    Merge: 237c46512c 2f5a766c71
    Author: jan.nijtmans <nijtmans@users.sourceforge.net>
    Date: Mon May 1 08:20:54 2017 +0000

    Fix [8bd13f07bde6fb0631f27927e36461fdefe8ca95|8bd13f07bd]: Closing tcl pipes prevents windows threads from starting up. Patch by sebres (Dipl. Ing. Sergey G. Brester)
    (also fix duplicate test-case number in link.test)

    tests/link.test | 2 +-
    win/tclWinConsole.c | 223 +++++++------------
    win/tclWinInit.c | 20 ++
    win/tclWinInt.h | 75 +++++++
    win/tclWinPipe.c | 621 ++++++++++++++++++++++++++++++++++++++--------------
    win/tclWinSerial.c | 93 ++------
    6 files changed, 643 insertions(+), 391 deletions(-)

    I have also used Visual Studio 2019 to compile Tcl 6.8.13 and reproduce the hang, but on a different test within socket.test.

    ++++ socket_inet6-13.1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr2 SKIPPED: thread
    ++++ socket_inet6-13.2.cl1 SKIPPED: thread
    ++++ socket_inet6-13.2.cl2 SKIPPED: thread
    (hangs)

    It hangs in the sendCommand()

    socket.test: 1932
    # cleanup
    if {$remoteProcChan ne ""} {
    catch {sendCommand exit}
    }

    Is anyone else running into this problem?

    Scott,
    thanks for the report, I appreciate.
    I did not see that hang. But I compiled for 32 bit.
    Please open a ticket at core.tcl-lang.org/tcl . This should be discussed
    there. If I should do it for you, give me a sign.

    Thanks and take care,
    Harald

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Zhong@21:1/5 to Harald Oehlmann on Mon Oct 16 08:04:39 2023
    On Saturday, October 14, 2023 at 5:19:45 AM UTC-7, Harald Oehlmann wrote:
    Am 14.10.2023 um 01:25 schrieb Scott Zhong:
    I'm running into an issue where socket.test is hanging on my Windows 10 machine using Visual Studio 2013 with Tcl 8.6.7 and Tcl 8.6.13. It looks like it hangs at the end of the test when close() is being called on the socket.

    nmake -f makefile.vc MACHINE=AMD64 release
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    nmake -f makefile.vc MACHINE=AMD64 TESTFLAGS="-verbose tpse -file socket.test" test
    ...
    ++++ socket-15.1.0 PASSED
    ---- socket-15.1.1 start
    ++++ socket-15.1.1 PASSED
    ---- socket-15.1.2 start
    ++++ socket-15.1.2 PASSED
    ---- socket-15.1.3 start
    ++++ socket-15.1.3 PASSED
    ---- socket-15.1.4 start
    ++++ socket-15.1.4 PASSED
    ---- socket-15.1.5 start
    ++++ socket-15.1.5 PASSED
    ---- socket-15.1.6 start
    ++++ socket-15.1.6 PASSED
    ---- socket-15.1.7 start
    ++++ socket-15.1.7 PASSED
    ---- socket-15.1.8 start
    ++++ socket-15.1.8 PASSED
    (hangs)

    Using git bisect, I have found the first bad commit to be

    5d0864fb41175752fd026bc818facf5849387c5a is the first bad commit
    commit 5d0864fb41175752fd026bc818facf5849387c5a
    Merge: 237c46512c 2f5a766c71
    Author: jan.nijtmans <nijt...@users.sourceforge.net>
    Date: Mon May 1 08:20:54 2017 +0000

    Fix [8bd13f07bde6fb0631f27927e36461fdefe8ca95|8bd13f07bd]: Closing tcl pipes prevents windows threads from starting up. Patch by sebres (Dipl. Ing. Sergey G. Brester)
    (also fix duplicate test-case number in link.test)

    tests/link.test | 2 +-
    win/tclWinConsole.c | 223 +++++++------------
    win/tclWinInit.c | 20 ++
    win/tclWinInt.h | 75 +++++++
    win/tclWinPipe.c | 621 ++++++++++++++++++++++++++++++++++++++--------------
    win/tclWinSerial.c | 93 ++------
    6 files changed, 643 insertions(+), 391 deletions(-)

    I have also used Visual Studio 2019 to compile Tcl 6.8.13 and reproduce the hang, but on a different test within socket.test.

    ++++ socket_inet6-13.1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr1 SKIPPED: thread
    ++++ socket_inet6-13.2.tr2 SKIPPED: thread
    ++++ socket_inet6-13.2.cl1 SKIPPED: thread
    ++++ socket_inet6-13.2.cl2 SKIPPED: thread
    (hangs)

    It hangs in the sendCommand()

    socket.test: 1932
    # cleanup
    if {$remoteProcChan ne ""} {
    catch {sendCommand exit}
    }

    Is anyone else running into this problem?
    Scott,
    thanks for the report, I appreciate.
    I did not see that hang. But I compiled for 32 bit.
    Please open a ticket at core.tcl-lang.org/tcl . This should be discussed there. If I should do it for you, give me a sign.

    Thanks and take care,
    Harald
    Thank you Herald, I have opened a ticket at core.tcl-lang.org/tcl with the same title name.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)