This was posted a few days ago to the freevo users list ... attached patch fixes the problem.



I am running freevo rel-1 trunk, revision 10153, from svn and I am getting a sporadic crash in the recordserver whenever it starts making a scheduled recording. The show is not recorded and the recordserver is down until I restart it.

Here is what I see in the recordserver log:

Thanks for any help...

2007-11-22 23:34:00,803 INFO recordserver.py (922): going to record: Thu 2007-11-22 23:35->00:37 (23:35) I10600.labs.zap2it.com The Tonight Show With Jay Leno 2007-11-22 23:34:00,886 INFO recordserver.py (940): start recording: Thu 2007-11-22 23:35->00:37 (23:35) I10600.labs.zap2it.com The Tonight Show With Jay Leno 2007-11-22 23:34:00,887 INFO ivtv_record.py (86): Recorder::Record: Thu 2007-11-22 23:35->00:37 (23:35) I10600.labs.zap2it.com The Tonight Show With Jay Leno 2007-11-22 23:34:01,388 INFO ivtv_record.py (115): Record_Thread::run: started recording 2007-11-22 23:34:01,404 INFO recordserver.py (1649): RECORD_START Thu 2007-11-22 23:35->00:37 (23:35) I10600.labs.zap2it.com The Tonight Show With Jay Leno
2007-11-22 23:34:03,007 ERROR    error in select
Traceback (most recent call last):
File "/home/doug/freevo/dist/lib/python2.5/site-packages/kaa/notifier/pynotifier/nf_generic.py", line 209, in step
   __sockets[ IO_EXCEPT ].keys(), timeout / 1000.0 )
error: (4, 'Interrupted system call')
2007-11-22 23:34:03,010 WARNING  thread loop stopped
2007-11-22 23:34:03,012 INFO     stop mainloop
changing channel to [ 3 ] using command [ /home/doug/freevo/dist/bin/6200ch -p 0 -n 0 3 ]
Driver: ivtv
Card: Hauppauge WinTV PVR-250
Version: 10.01
Capabilities: 0x01030051
Enumerating supported Standards.
 0: 0xf PAL-BGH
 1: 0xe0 PAL-DK
 2: 0x10 PAL-I
 3: 0x100 PAL-M
 4: 0x200 PAL-N
 5: 0x400 PAL-Nc
 6: 0xd0000 SECAM-BGH
 7: 0x320000 SECAM-DK
 8: 0x400000 SECAM-L
 9: 0x800000 SECAM-L'
 10: 0x1000 NTSC-M
 11: 0x2000 NTSC-J
 12: 0x8000 NTSC-K
Current Standard is: 0xb000
Enumerating supported Inputs.
 0: Tuner 1
 1: S-Video 1
 2: Composite 1
 3: S-Video 2
 4: Composite 2
 5: Composite 3
Input: 1
Width: 720, Height: 480
Read Frequency: 980
CODEC::aspect: 2
CODEC::audio_bitmask: 0x69
CODEC::bframes: 3
CODEC::bitrate_mode: 1
CODEC::bitrate: 4000000
CODEC::bitrate_peak: 4800000
CODEC::dnr_mode: 0
CODEC::dnr_spatial: 0
CODEC::dnr_temporal: 0
CODEC::dnr_type: 0
CODEC::framerate: 0
CODEC::framespergop: 15
CODEC::gop_closure: 1
CODEC::pulldown: 0
CODEC::stream_type: 10


Index: kaa/base/src/notifier/pynotifier/nf_generic.py
===================================================================
--- kaa/base/src/notifier/pynotifier/nf_generic.py	(revision 2907)
+++ kaa/base/src/notifier/pynotifier/nf_generic.py	(working copy)
@@ -204,9 +204,18 @@
 
 		r = w = e = ()
 		try:
-			r, w, e = select( __sockets[ IO_READ ].keys(),
+			# According to this thread: http://mail.python.org/pipermail/medusa-dev/2000/000586.html
+			# the select call can raise EINTR which is safe to ignore and retry.  Should really
+			# shore this up with a retry counter that raises the EINTR after some number of loops
+			# so we can avoid an infinite loop
+			while 1:
+				try:
+					r, w, e = select( __sockets[ IO_READ ].keys(),
 							  __sockets[ IO_WRITE ].keys(),
 							  __sockets[ IO_EXCEPT ].keys(), timeout / 1000.0 )
+				except select.error, v:
+					if v[0] != EINTR: raise
+					else: break
 		except ( ValueError, select_error ):
 			log.exception( 'error in select' )
 			sys.exit( 1 )
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to