Closed noc0lour closed 3 years ago
I'll provide some additional logs once I reproduce on a separate test system.
No need to, I was able to reproduce your issue in a small test, but so far it doesn't look like an indexing error:
When adding -vvvvv
to the ip2unix
call, we get:
ip2unix:systemd.cc:223:init Matched systemd unix file descriptor name 'socket1' (fd 3) with rule #0.
ip2unix:systemd.cc:223:init Matched systemd unix file descriptor name 'socket2' (fd 4) with rule #1.
Rule #0
maps to port 8090, which in turn has a FileDescriptorName
of socket1
, so this part looks correct.
However, where things go bonkers is a bit later:
ip2unix:preload.cc:252:operator() Systemd file descriptor queue empty, blackholing socket with fd 3.
ip2unix:socket.cc:97:blackhole Socket with fd 3 blackholed.
Okay, turns out this actually is a regression and I've bisected the issue to commit 1a8a9b6ca73865a10452eb10c93dd751d0ba6af7.
@noc0lour: Commit 5ead045bffe781e1133d3881d70a4b5bdc66021d should fix the issue. Can you please test the commit in question and check whether it's working for you?
Closing this since the proposed fix is part of version 2.1.4. If the problem persist, please reopen or create a new issue. Thanks :-)
I'm currently observing with a commandline like:
That the systemd named filedescriptor "service1" is attached to the socket matching on the second rule and the second named filedescriptor is then not matched anymore. It seems to me there might be an off-by-one indexing error in the logic handling systemd named filedescriptors. I'll provide some additional logs once I reproduce on a separate test system.
With only one named systemd filedescriptor things work out fine.