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] FaxQueuer crashing/exiting after two jobs submitted at once
Dan Brummer wrote:
FaxQueuer crashing on same time job submits but in 4.3.0 it gave me a
'Assertion failed "QLink::remove: item not on a list", file
"QLink.c++" line 53' error.
I wasn't getting this error after two jobs being submitted at once (I
don't think). Rather, I was hitting this issue when the traffic in the
queue was heavy and a job failed. It was nearly impossible to
reproduce. The timings had to be just right, and I could never
reproduce it in the lab.
The solution in my case was to change a few faxq calls of
job.remove();
to become
if (job.isOnList()) job.remove();
Which basically is to say that if a job fails and we go to delete it and
find that it isn't on a list to not worry about it and just proceed on
as if the job list removal had been handled normally and proceed on with
the job deletion. I have made those adjustments to HylaFAX+ and they're
in the latest releases there. I've not had a repetition of that issue
after making those changes.
The particular one that I believe I was hitting on badly was the one in
faxQueueApp::setDead. FaxQueuer is asynchronous - meaning that we'll
have sleeping jobs or sending jobs or preparing jobs or any other number
of activities that involve signals or the dispatcher and that just about
any function can be interrupted at just about any time in order to
handle some asynchronous event... so job lists can actually change in
the middle of a loop through that list. I had previously blocked
signals during most of the job list iterations - the main exception
being that in runScheduler which I didn't block because I (needlessly,
as it turns out) feared that a long-running runScheduler process would
slow other responsiveness down too much. And I kept hitting into the
QLink::remove issue. So my assumption was that the runScheduler was
running and that, for some reason the job was at least temporarily
removed from the list when some timer expired and fired off
faxQueueApp::setDead.
So, as I said, the change I mention solved my instances of this error,
however they were not triggered by the same catalysts as your error
seems to be. Hopefully this information can help you resolve yours.
I'd also be delighted to take a more active part in resolving this for you.
Thanks,
Lee.
____________________ 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*