Hi Petr,
What you're observing is arguably a bug because s6-tlsc-io should
never busyloop, and I'll fix it asap; but also, you should never be
observing this.
I don't know how you run s6-tlsc-io in your normal usage, but if it
yields the exact trace you provided, it is incorrect: ppoll() returns
POLLERR on fd 1, which means something is wrong with s6-tlsc-io's
stdout.
In the example script you're giving, you're running "s6-tlsc cat":
this is incorrect, because "cat" will copy stdin to stdout and not
address the network at all. What you want is copy stdin to fd 7 *and*
copy fd 6 to stdout, at the same time; a program that does just that
is s6-ioconnect (from the s6 package).
You can use "s6-tlsd cat" to test a server, but use "s6-tlsc
s6-ioconnect"
to test a client.
I don't know if it is the reason why s6-tlsc-io's ppoll() reports an
error on fd 1; what I know is that if your stdout starts throwing
errors, you usually have bigger problems than s6-tlsc-io's behaviour.
There's *something* in your setup that messes with your terminal and you
should probably investigate what that is.
In any case I'll make the busylooping go away. Thanks for the report.
--
Laurent
Received on Tue Sep 09 2025 - 18:18:46 CEST