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

Re: [nas] nasd outputs only part of a sample, client stalls --exceptunder strace



On Mon, 3 Sep 2007, Erik Auerswald wrote:

Hi,

On Sun, Sep 02, 2007 at 08:24:18PM -0600, Jon Trulson wrote:
On Sun, 2 Sep 2007, Erik Auerswald wrote:
On Mon, Jul 23, 2007 at 08:54:00AM -0400, mmurray wrote:

To the best of my reasoning, the SIGALRM is being lost in a race somewhere.

This seems to be correct -- sending a SIGALRM to nasd whenever the playback hangs results in continued playback.


Ok. Attached is a patch that reworks the signal handling in the voxware server. I do not have a spare machine to test the newer kernels on, so I have no idea if this will affect the problem you guys are seeing.

This patch does not affect the lost SIGALRM, the observable behaviour is the same as with the current svn revision: nasd hangs after a while and resumes after receiving a SIGALRM.


Darn. I was hoping that since DIA can now block properly...


  I do believe it (the patch) to be the correct way of doing it
  though.  In addition, DIA dispatch is now able to properly block the
  appropriate signal when it needs to, which it couldn't before
  (requiring the racy block/unblocks in intervalProc).  Make sure dia/
  gets rebuilt as well after applying this patch. Or just do a 'make
  World' to be sure :)

The patch seems to be correct to me, but I have no experience in signals programming.

  Let me know if this corrects anything (and especially if it breaks
  anything).  I'll wait before committing until I get some kind of
  feedback.

AFAIK it does not break anything and it sure looks cleaner to me.



I've committed it (with some formatting/whitespace changes). You might want to revert auvoxware.[hc] before updating from svn.

  I'll have to see about installing one of these kernels and try to
  track the problem further (unless someone beats me to it :).


--
Jon Trulson
mailto:jon@xxxxxxxxxxx #include <std/disclaimer.h>
"No Kill I" -Horta