HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] sendfax sometimes hangs, can't identify protocol?

* 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:
	faxApp::FIFOInput(int fd)
    and set the buf[2048] to somethig like buf[4096] or buf[8192].  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[3699]: FIFO: JOB 27891 not found for 
> msg "D22,1,212029,000034734,"docq/doc27933.pdf;01""

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:
> >	http://cvs.hylafax.org/HylaFAX/?p=HylaFAX;a=commit;h=909cfff8fd757586cfdcf5f47092e7afab7712ae

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

Aidan Van Dyk                                             aidan@xxxxxxxx
Senior Software Developer                          +1 215 825-8700 x8103
iFAX Solutions, Inc.                                http://www.ifax.com/

____________________ HylaFAX(tm) Users Mailing List _______________________
  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
 On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
  *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*

Project hosted by iFAX Solutions