[Lcdproc] lcdproc-0.5.0 segfaults

Andrew Foss a.foss@f5.com
Thu May 4 14:49:02 2006


Laurent,

am I reading this write, you removed or commented the menu_set_main in 
your client and the LCDd does not crash upon disconnect of the client, 
but if the "menu_set_main" command is done on the client LCDd does crash 
upon exit, right?

I believe the code to cleanup after a client exists is not cleaning 
restoring the main menu. I'll try and take a look at it today.

andrew

Laurent B. wrote:
> Yes of course. The client does NOT send menu_set_main "" , to set its 
> own menu as the default one (it simpy makes NO use of the 
> menu_set_main function at all). After it disconnected from LCDd 
> (0.5.0) I can press the menu key to get to the server menu and it 
> actually gets you there and , most important, LCDd does not terminate 
> with signal 11 segmantation fault.
> So without touching menu_set_main LCDd works as expected here.
>
> Laurent Baum.
>
> Andrew Foss wrote:
>> Bug to be fixed, I expect. Could you you confirm that you don't 
>> crash, if you don't do the menu_set_main?
>>
>> Laurent B. wrote:
>>> Yes the client actually does a menu_set_main "" to set its menu as 
>>> the default one. This worked without complications prior to 0.5.0 
>>> with lcdproc from CVS so I never thought that it would fail now 
>>> because of menu_set_main. Thanks for the hint Andrew.
>>>
>>> So should clients then simply avoid setting their menu as the 
>>> default because menu_set_item is evil or is there really a bug in 
>>> the server code that needs to be resolved ??
>>>
>>> Andrew Foss wrote:
>>>> sounds like something different than what I saw.
>>>>
>>>> Does your client do a "menu_set_main" command?
>>>>
>>>> It looks like it may be possible that after your client stops, the 
>>>> main menu item is still set so when the main menu is attempted to 
>>>> be brought up, it still thinks the main menu is the menu your 
>>>> client set as main w/ the menu_set_main command?
>>>>
>>>> andrew
>>>>
>>>> Laurent B. wrote:
>>>>> Hi Andrew,
>>>>> LCDd crashes here (in the scenario described in my first mail)  
>>>>> every time in foreground "-f true" or as daemon "-f false".
>>>>> Andrew Foss wrote:
>>>>>> I've seen it as well, I find if I don't run it through the 
>>>>>> /etc/rc.d/init.d/ script using the "daemon" function it doesn't 
>>>>>> fault, I added a trap to try and caatch it, but couldn't and 
>>>>>> haven't had time to gdb myself, sorry.
>>>>>>
>>>>>> andrew
>>>>>>
>>>>>> lorijho@yes.lu wrote:
>>>>>>> Hi to all.
>>>>>>> I'm observing a crash of lcdproc-0.5.0. It can be reproduced 
>>>>>>> like this:
>>>>>>> A client (with menu) disconnects from LCDd. After that the "LCDproc
>>>>>>> Server" screen appears again like it should. Showing "Client: 0  \n
>>>>>>> Screens: 0" like always. But then when I press the menu button 
>>>>>>> to enter
>>>>>>> the server menu LCDd terminates with signal 11 segmantation 
>>>>>>> fault. Can
>>>>>>> be reproduced everytime.
>>>>>>>
>>>>>>> The backtrace:
>>>>>>> Reading symbols from /lib/libdl.so.2...done.
>>>>>>> Loaded symbols for /lib/libdl.so.2
>>>>>>> Reading symbols from /lib/libc.so.6...done.
>>>>>>> Loaded symbols for /lib/libc.so.6
>>>>>>> Reading symbols from /lib/ld-linux.so.2...done.
>>>>>>> Loaded symbols for /lib/ld-linux.so.2
>>>>>>> Reading symbols from /usr/local/lib/lcdproc/lirc.so...done.
>>>>>>> Loaded symbols for /usr/local/lib/lcdproc/lirc.so
>>>>>>> Reading symbols from /usr/lib/liblirc_client.so.0...done.
>>>>>>> Loaded symbols for /usr/lib/liblirc_client.so.0
>>>>>>> Reading symbols from /usr/local/lib/lcdproc/CFontz.so...done.
>>>>>>> Loaded symbols for /usr/local/lib/lcdproc/CFontz.so
>>>>>>> #0  0x0804fbfb in menuitem_reset (item=0x9df2cb0) at menuitem.c:527
>>>>>>> 527                     func = reset_table[item->type];
>>>>>>> (gdb) bt
>>>>>>> #0  0x0804fbfb in menuitem_reset (item=0x9df2cb0) at menuitem.c:527
>>>>>>> #1  0x08054325 in menuscreen_switch_item 
>>>>>>> (new_menuitem=0x9df2cb0) at
>>>>>>> menuscreens.c:219
>>>>>>> #2  0x0805450c in menuscreen_key_handler (key=0x9debe50 "/") at
>>>>>>> menuscreens.c:390
>>>>>>> #3  0x0804d57e in input_internal_key (key=0x9debe50 "/") at 
>>>>>>> input.c:151
>>>>>>> #4  0x0804d7c4 in handle_input () at input.c:117
>>>>>>> #5  0x0804f4c7 in main (argc=539521829, argv=0x6d657469) at 
>>>>>>> main.c:838
>>>>>>>
>>>>>>> On this system:
>>>>>>> uname -a :
>>>>>>> Linux 2.6.16-1.2096_FC5 #1 Wed Apr 19 05:14:36 EDT 2006 i686 
>>>>>>> athlon i386
>>>>>>> GNU/Linux
>>>>>>>
>>>>>>> gcc -v:
>>>>>>> Using built-in specs.
>>>>>>> Target: i386-redhat-linux
>>>>>>> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
>>>>>>> --infodir=/u sr/share/info --enable-shared --enable-threads=posix
>>>>>>> --enable-checking=release - -with-system-zlib --enable-__cxa_atexit
>>>>>>> --disable-libunwind-exceptions --enable- libgcj-multifile
>>>>>>> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable
>>>>>>> -java-awt=gtk --disable-dssi
>>>>>>> --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2. 0/jre
>>>>>>> --with-cpu=generic --host=i386-redhat-linux
>>>>>>> Thread model: posix
>>>>>>> gcc version 4.1.0 20060304 (Red Hat 4.1.0-3)
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> LCDproc mailing list
>>>>>>> LCDproc@lists.omnipotent.net
>>>>>>> http://lists.omnipotent.net/mailman/listinfo/lcdproc
>>>>>>>   
>>>>>> _______________________________________________
>>>>>> LCDproc mailing list
>>>>>> LCDproc@lists.omnipotent.net
>>>>>> http://lists.omnipotent.net/mailman/listinfo/lcdproc
>>>>>>
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> LCDproc mailing list
>>>> LCDproc@lists.omnipotent.net
>>>> http://lists.omnipotent.net/mailman/listinfo/lcdproc
>>>>
>>>>
>>>
>>
>>
>