Package: xviewg
Version: 3.2p1.4-28.1
Followup-For: Bug #784918

I assume this bug is the same as the one I've just encountered.
Specifically, XView assumes that the maximum file descriptor is
smaller than the number of bits in the 'fd_set' structure.

The former limit can be modified using the 'ulimit' shell command.  On
wheezy, this limit was 1024 by default; on jessie, it's 65536.  (Is
this a systemd thing, or was the default changed for sysvinit too?)

The latter limit is fixed by the C library; it's defined by the
constant FD_SETSIZE, which equals 1024 in glibc.

So:

1. The easy workaround is to run 'ulimit -S -n 1024' in your
   .bash_profile or whatever.

2. To actually fix xview, the GETDTABLESIZE macro should be modified
   to clamp the value to FD_SETSIZE.  I *hope* that is all that's
   needed, have not yet tested it.

3. If there's a possibility that a program actually needs more than
   1024 FDs, then you have a problem.  (Of course, this is not just
   true of xview, but of any program that uses the 'select' function.)

4. It might be appropriate for programs, or XView itself, to work
   around this issue by calling setrlimit() early in program
   execution.

Will provide a patch once I've tested it.

Reply via email to