If you create the ssl-listener with reuse?=true instead, like this

  (define listener (ssl-listen port 5 #f #t ctx))

does the problem go away? If so, the error might happen because the OS
reserves the port number for a while after the listener is closed; see the
paragraph about TIME_WAIT in the tcp-listener docs. If that's the issue,
I'm a little confused why the TCP version would succeed, though.

I believe SSL_shutdown is completely unrelated to the state of the TCP
ports. Think of it like a "Connection: close" HTTP header; it announces
your intention to close the TCP connection soon, but it has no actual
effect on the transport layer.

Ryan


On Fri, Jul 24, 2020 at 6:19 PM Sage Gerard <[email protected]> wrote:

> I'm trying to understand how I am failing to shut down an ssl-listener on
> v7.7.0.5.
>
> https://gist.github.com/zyrolasting/bc5477bfa60d7185d0f53a5142545f88
> shows my use of ssl-* procedures to transmit data using test.pem. The
> problem is that I cannot run the test submodule twice in a row because the
> listening port is still occupied on subsequent runs. I added ssl-close on
> top of a custodian shutdown and that problem reproduces.
>
> For comparison,
> https://gist.github.com/zyrolasting/3feb0ff4ecdf0b49bcf3e0ed8b630a06
> avoids the ssl-* procedures and just uses vanilla TCP. I can run the tests
> fine then.
>
> But in looking at mzssl.rkt in the source, it looks like shutdown requires
> calling a foreign function via SSL_shutdown.
> https://github.com/racket/racket/blob/master/racket/collects/openssl/mzssl.rkt#L1417
>
> Do I have to call ports->ssl-ports out of band just so closing them sends
> a shut down as a side-effect? Or is keeping the port occupied between test
> runs a bug?
>
> *~slg*
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/EclLZhgUYlzvOx_uS0Ec154iNVVwXxNeZWcTIDzd72lwkA3M2OhVf8AW_cVMVUudM50kLuLVvnnnmiRGvZDvz5tPSUVOqFkC2LVI-2LY18Q%3D%40sagegerard.com
> <https://groups.google.com/d/msgid/racket-users/EclLZhgUYlzvOx_uS0Ec154iNVVwXxNeZWcTIDzd72lwkA3M2OhVf8AW_cVMVUudM50kLuLVvnnnmiRGvZDvz5tPSUVOqFkC2LVI-2LY18Q%3D%40sagegerard.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CANy33qmLM6wfYhedVzR-PjmETNf-TXioTtww94u1%2Bot4SsFHZQ%40mail.gmail.com.

Reply via email to