Skip to content

Ncat 7.94 "breaks udptunnel autopkgtest" on Debian. #2685

@fyodor

Description

@fyodor

Debian Bug #1039613 reports that:

With a recent upload of nmap the autopkgtest of udptunnel fails in testing when that autopkgtest is run with the binary packages of nmap from unstable. It passes when run with only packages from testing....Currently this regression is blocking the migration of nmap to testing.

The Nmap version in testing is "7.94+dfsg1-1". A further comment on the Debian bug notes:

I think this is likely to be a bug in nmap ncat, when I remove
udptunnel from the script by connecting ncat directly to ncat,
then the failure still happens with the autopkgtest.

I was able to reproduce this issue outside a chroot. I have attached a
pair of scripts; bad fails and good succeeds. In the good case, I use
sleep to hold stdin of ncat -l open for 2s, in the bad case I let
it use the stdin provided by the shell (a GNOME terminal pty here).

Looking at the diff between the verbose logs is interesting.
In the good case one select fd is ready and one becomes ready later,
the latter one gets used, but in the bad case both fds appear to be
ready immediately but neither of them get used.

-NCAT DEBUG: select returned 1 fds ready
-NCAT DEBUG: fd 3 is ready
-NCAT DEBUG: selecting, fdmax 3
-NCAT DEBUG: select returned 1 fds ready
+NCAT DEBUG: select returned 2 fds ready

So the issue can be worked around in the udptunnel script by piping
sleep to the ncat listener instead of launching ncat and then sleeping,
or the ncat change that caused this can get bisected and fixed.

They say that version of Ncat in testing (which seems to be 7.93+dfsg1-1) still works. And given that we did make several Ncat changes in 7.94, we should probably investigate and fix whatever might have caused this apparent regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions