Hello Gustavo, hello other developers

I ran freevo 1.3.4 and lcd.py 1.7 + marquee patches without problems.
Started to use 1.4-rc4 but unpredictable it stopped playing music. Most
time i use "play random recursive". It stopped, the crt and lcd got no
updates. Next key skipped to next title after some seconds. Until it
happend again. Coulndt find a hint in the logs.
Got the cvs-snapshot, run it from a terminal, so could see all messages
and got the problem.
Sometimes, i dont know when and why (just unpredictable) the following
happens:  [workaround below all this tracebacks]

Exception in thread Thread-11:
Traceback (most recent call last):
  File "/usr/lib/python2.2/threading.py", line 414, in __bootstrap
    self.run()
  File "/usr/lib/python2.2/site-packages/freevo/childapp.py", line 358,
in run
    self._handle_input()
  File "/usr/lib/python2.2/site-packages/freevo/childapp.py", line 400,
in _handle_input
    self.callback(line)
  File
"/usr/lib/python2.2/site-packages/freevo/audio/plugins/mplayer.py", line
274, in stdout_cb
    self.refresh()
  File
"/usr/lib/python2.2/site-packages/freevo/audio/plugins/mplayer.py", line
187, in refresh
    self.playerGUI.refresh()
  File "/usr/lib/python2.2/site-packages/freevo/audio/player.py", line
179, in refresh
    skin.draw(('player', self.item))
  File "/usr/lib/python2.2/site-packages/freevo/skins/main/main.py",
line 734, in draw
    a.draw(settings, object, style, type, self.force_redraw)
  File "/usr/lib/python2.2/site-packages/freevo/skins/main/area.py",
line 375, in draw
    self.update_content()
  File "/usr/lib/python2.2/site-packages/freevo/skins/main/main.py",
line 228, in update_content
    p.draw((self.widget_type, object), self)
  File "/usr/lib/python2.2/site-packages/freevo/plugins/lcd.py", line
865, in draw
    self.lcd.widget_set( sname, w, param.encode( 'latin1' ) )
  File "/usr/lib/python2.2/site-packages/freevo/plugins/pylcd.py", line
182, in widget_set
    return self.readl()
  File "/usr/lib/python2.2/site-packages/freevo/plugins/pylcd.py", line
101, in readl
    return self.conn.read_until("\n")
  File "/usr/lib/python2.2/telnetlib.py", line 297, in read_until
    self.process_rawq()
  File "/usr/lib/python2.2/telnetlib.py", line 397, in process_rawq
    c = self.rawq_getchar()
  File "/usr/lib/python2.2/telnetlib.py", line 440, in rawq_getchar
    c = self.rawq[self.irawq]
IndexError: string index out of range



This stopped freevo.

key_right had no effect.
key_down skips to next title, with following console log:
  
force killing with signal 9
Oops, command refuses to die, try bad hack....
Try harder to kill the app....
PANIC

Now we are playing again...


The next one really killed freevo:


Crash!
Traceback (most recent call last):
  File "/usr/local/freevo/src/main.py", line 457, in ?
    main_func()
  File "/usr/local/freevo/src/main.py", line 333, in main_func
    p.poll()
  File "/usr/local/freevo-1.4/src/plugins/lcd.py", line 898, in poll
    self.lcd.widget_set( s, w, param.encode( 'latin1' ) )
  File
"/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/site-packages/pylcd.py", line 182, in 
widget_set
    return self.readl()
  File
"/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/site-packages/pylcd.py", line 101, in 
readl
    return self.conn.read_until("\n")
  File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 303, in read_until
    self.process_rawq()
  File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 429, in process_rawq
    c = self.rawq_getchar()
  File "/usr/local/freevo-1.4-rc4/runtime/lib/python2.3/telnetlib.py",
line 502, in rawq_getchar
    c = self.rawq[self.irawq]
IndexError: string index out of range
Stopping webserver plugin.
1 child(s) still running, terminate them
...


The error is thrown in the telnetlib, called by pylcd, used by lcd
plugin. This error was not triggered in the 1.3.4, however. 

The patch below does not solve the cause of the problem, but prevents
the stop effect (but seems to skip to next file. needs further tests).
Maybe someone has a idea whats going on deep inside and can help find a
solution.


--- lcd.py_1.14 2003-10-14 23:05:52.000000000 +0200
+++ lcd.py_1.14_+except 2003-12-02 21:52:54.000000000 +0100
@@ -865,6 +865,9 @@
                     self.lcd.widget_set( sname, w, param.encode(
'latin1' ) )
                 except UnicodeError:
                     self.lcd.widget_set( sname, w, param )
+                # catch error (in telnetlib via pylcd)
+                except:
+                    print "Error (probably pylcd telnetlib)"
                  
                                       
         if self.last_screen != sname:
@@ -895,6 +898,9 @@
                     self.lcd.widget_set( s, w, param.encode( 'latin1' )
)
                 except UnicodeError:
                     self.lcd.widget_set( s, w, param )
+                # catch error (in telnetlib via pylcd)
+                except:
+                    print "Error (probably pylcd telnetlib)"
          
  
     def generate_screens( self ):



Thank you


Immo 




-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to