SVDRP ignores EOF (clientside close)

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

 



On Thu, 20 Jul 2006 13:11:23 +0200, Peter Dittmann wrote
> vdr-bounces@xxxxxxxxxxx schrieb am 19.07.2006 18:04:16:
> 
> > On Wed, 19 Jul 2006 15:43:22 +0200, Peter Dittmann wrote
> > > Could this be the cause of the watchdog exit I get more or less 
> > > regularly when my infosat/tvm2vdr.pl scripts are sending  status 
> > > updates via SVDRP ? Afaik could this cause the watchdog to fire when 
> > > another SVDRP command comes in ?
> > > 
> > > The script does a little more status messages than the original 
> > > scripts. SVDRP messages are send around each ~30sec.
> > > 
> > > However I may give your suggestion a try.
> > > I would happily live again with a broken pipe instead of the exit ;-)
> > 
> > Hi Peter,
> > 
> > I doubt it will change anything for you, but you never know... To find 
> out if
> > really SVDRP itself is responsible, I'd suggest to add some syslog calls 
> to
> > cSVDRP::Process. Check how much time it spends in there.
> > 
> The log already shows it's triggered by SVDRP.
> SVDRP command is send but not received correctly.
> VDR did not log here that he received the MESG command but the log 
> tells the SVDRP connection was opened. 30sec later (at a watchdog 
> timout of 30) I get the emergency exit.

...
 
> I't not realy clear what kills VDR.
> But it seems to be triggered by SVDRP.
> 
> P.S. It's a vdr 1.3.24, the scripts are placing a high stress as 
> they never exit SVDRP correctly. Besides I still see a lot of broken 
> pipes for SVDRP too, mainly comming from VDRAdmin. 

Well, it's not very hard to trigger the watchdog with SVDRP ;-) All you need
to do is feed input fast enough so that it never leaves the loop in
cSVDRP::Process.

In your log everything looks fine in respect of connect and disconnect until
the watchdog fires. Would be interesting to see which command triggers the
watchdog. Could it be an EPG upload with PUTE? If there's enough data to keep
SVDRP busy this would explain it.

Try to find out which section of which script (tvm2vdr.pl?) is run when the
watchdog expires. A sleep() every now and then in the loop which sends the
actual data might solve your problem.

BTW: Did you ever try it with the watchdog disabled?

Good luck,
Frank


[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux