* Mark Hunting <mark@xxxxxxxxxx> [070508 09:50]:
Aidan Van Dyk wrote:
Hm.. if sendfax and faxstat are the *only* clients you use, then the
trigger bug doesn't sound likely. Are there any faxq messages in syslog
about "Bad fifo message" or something like that?
Bingo. There is indeed some very usefull information in syslog (I
think). Two sendfax processes I had to kill today were process ID's
26875 (the example from my previous mail), and 8693. In syslog there are
lots of FIFO errors, but what surprises me are these lines:
The numbers here are the killed sendfax ID's + 1. The times are indeed
the times on which the hanging sendfax processes were started. Do you
know what this all means?
Here is the contect of the two lines:
This is an artifact of faxq being "too busy". The new scheduler in
current CVS should really help you here. "Too busy" means that it
spends so much time working the sendq jobs that the FIFO buffer fills up
before it can get back to it. When the FIFO buffer fills up, it starts
to read partial messages (like you posted). When those "partial messages" it
reads are the sendfax/hfaxd job submission ones, the hfaxd will wait
forever for the response, because faxq didn't get the actuall message
hfaxd wrote to the FIFO.
There are a few ways you can compensate for this:
1) submit jobs more slowly
2) Submit all the jobs "in the future". This will allow all the jobs
to be submitted before faxq "get's too busy"
3) "expand the fifo buffer" in faxd/faxApp.c++ - look for the code in:
and set the buf to somethig like buf or buf. This
won't "fix" the problem but may mean that there are longer periods
faxq can go before teh buffer is "full", and hopefully it will get a
chance to catch up before it's full.
I had to do a grep -v 'not found' because my syslog file contains a huge
amount of lines like
May 8 09:23:15 caracas FaxQueuer: FIFO: JOB 27891 not found for
This is again an artifact of faxq being "too busy". Basically, the job
has finished and faxq has already handled the child faxsend exit (so the
job has been removed) before it get's around to handling the status
message from the FIFO.
I don't know what that means, but apparently it's not important. I never
experience problems form them.
Well, you're in luck. You can build debian packages right from CVS:
One note - if you're building a debian package from cvs/git:
In debian/patches/00list, comment out patch 670 (doesn't apply anymore to
current CVS), and build you packages like so:
fakeroot make -f debian/rules binary