Livewallpaper segfaults on Ubuntu 13.10

Bug #1274220 reported by MrFlibble
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
LiveWallpaper
Fix Released
Low
Maximilian Schnarr

Bug Description

I have installed the following packages:

livewallpaper, livewallpaper-config, livewallpaper-indicator, and livewallpaper-nautilus, all are version 0.4.1-0~295~ubuntu13.10.1.

I am running this on an HP Compaq nc6320 with 3gb ram, and i've been getting segfaults.
livewallpaper preferences allows me to configure the wallpaper, but when I turn it "on", it goes back to "off", and I can see this in syslog:

Jan 29 13:30:34 Huygens kernel: [ 1112.350160] livewallpaper[15885]: segfault at 0 ip (null) sp bf83c31c error 14 in livewallpaper[8048000+a000]
Jan 29 13:30:59 Huygens kernel: [ 1137.977081] livewallpaper[15942]: segfault at 0 ip (null) sp bfe7ccbc error 14 in livewallpaper[8048000+a000]
Jan 29 13:32:12 Huygens kernel: [ 1210.652551] livewallpaper[16637]: segfault at 0 ip (null) sp bf8cbd2c error 14 in livewallpaper[8048000+a000]
Jan 29 13:38:12 Huygens kernel: [ 1570.925645] livewallpaper[17757]: segfault at 0 ip (null) sp bfe6edbc error 14 in livewallpaper[8048000+a000]
Jan 29 13:44:44 Huygens kernel: [ 20.387919] livewallpaper[2107]: segfault at 0 ip (null) sp bfce1b8c error 14 in livewallpaper[8048000+a000]
Jan 29 13:44:59 Huygens kernel: [ 36.032432] livewallpaper[2404]: segfault at 0 ip (null) sp bff651ac error 14 in livewallpaper[8048000+a000]
Jan 29 13:46:01 Huygens kernel: [ 97.805546] livewallpaper[2516]: segfault at 0 ip (null) sp bfd86c8c error 14 in livewallpaper[8048000+a000]
Jan 29 13:46:11 Huygens kernel: [ 108.175738] livewallpaper[2525]: segfault at 0 ip (null) sp bfeac54c error 14 in livewallpaper[8048000+a000]

Please let me know if I can supply any more details.

Thanks!

Revision history for this message
Maximilian Schnarr (fyrmir) wrote :

I tried to reproduce this bug, but I don't get any segfaults. Maybe if you provide me some more information. Do you use an 32-bit or 64-bit operating system? I guess it does not depend on the plugin you choose, it always fails to start. Can you start LiveWallpaper from the command line? Just type livewallpaper into the command line. Did you make any specific configurations to LiveWallpaper itself (not to the plugins, they doesn't matter)? What about your graphics card? Are you able to run other OpenGL applications? Maybe you can append the output of glewinfo to this bug report.

Revision history for this message
MrFlibble (mrflibble) wrote :
Download full text (188.8 KiB)

Thank you for the quick reply.
Apologies, it is 32bit.
I didn't make any config changes, only to try the different plugins via the livewallpaper-config tool.

Running from the command line, it just shows the following:
mrflibble@Huygens:~$ livewallpaper
Segmentation fault (core dumped)

I have tried the following games:
foobilliards
Emilia pinball
trackball

According to the Ubuntu package manager and descriptions, they use OpenGL, and seem to give good frame rates on my machine. Is this a good test?

Below is the output of glewinfo:

---------------------------
    GLEW Extension Info
---------------------------

GLEW version 1.8.0
Reporting capabilities of display :0, visual 0x75
Running on a Mesa DRI Intel(R) 945GM x86/MMX/SSE2 from Intel Open Source Technology Center
OpenGL version 1.4 Mesa 9.2.1 is supported

GL_VERSION_1_1: OK
---------------

GL_VERSION_1_2: OK
---------------
  glCopyTexSubImage3D: OK
  glDrawRangeElements: OK
  glTexImage3D: OK
  glTexSubImage3D: OK

GL_VERSION_1_2_1: OK
-----------------

GL_VERSION_1_3: OK
---------------
  glActiveTexture: OK
  glClientActiveTexture: OK
  glCompressedTexImage1D: OK
  glCompressedTexImage2D: OK
  glCompressedTexImage3D: OK
  glCompressedTexSubImage1D: OK
  glCompressedTexSubImage2D: OK
  glCompressedTexSubImage3D: OK
  glGetCompressedTexImage: OK
  glLoadTransposeMatrixd: OK
  glLoadTransposeMatrixf: OK
  glMultTransposeMatrixd: OK
  glMultTransposeMatrixf: OK
  glMultiTexCoord1d: OK
  glMultiTexCoord1dv: OK
  glMultiTexCoord1f: OK
  glMultiTexCoord1fv: OK
  glMultiTexCoord1i: OK
  glMultiTexCoord1iv: OK
  glMultiTexCoord1s: OK
  glMultiTexCoord1sv: OK
  glMultiTexCoord2d: OK
  glMultiTexCoord2dv: OK
  glMultiTexCoord2f: OK
  glMultiTexCoord2fv: OK
  glMultiTexCoord2i: OK
  glMultiTexCoord2iv: ...

Revision history for this message
Maximilian Schnarr (fyrmir) wrote :

Ok, thank you. At the moment, I couldn't see, why it crashs. But I forgot to ask you one thing. Are you able to install the livewallpaper-dbg message and run livewallpaper with gdb? Just install gdb, run "gdb livewallpaper" inside a terminal and type "run" to start LiveWallpaper. I am sure, that it will also crash and we see the function name, where it crashed. After the crash, you get back to the gdb prompt. Type "bt", so that we also get the backtrace, maybe it could be helpfull. Now you can leave gdb by typing "quit". Please attach the output of the gdb command to this bug report. I hope I am able to solve the problem after I got these information.

Revision history for this message
MrFlibble (mrflibble) wrote :
Download full text (4.2 KiB)

Hello again,
Thank you for the reply and the GDB instructions - I've never used it before!

bt gives the following output:

mrflibble@Huygens:~$ gdb livewallpaper
GNU gdb (GDB) 7.6.1-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/livewallpaper...Reading symbols from /usr/lib/debug/usr/bin/livewallpaper...done.
done.
(gdb) run
Starting program: /usr/bin/livewallpaper
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb6f34b40 (LWP 22669)]
[New Thread 0xb65ffb40 (LWP 22670)]

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0xb7fb1b93 in lw_program_init (self=0x8071908)
    at /build/buildd/livewallpaper-0.4.1/livewallpaper-core/program.c:459
#2 0xb7b51866 in g_type_create_instance ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#3 0xb7b346be in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#4 0xb7b366b1 in g_object_newv ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#5 0xb7b36dd0 in g_object_new ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#6 0xb45572d5 in galaxy_light_program_new ()
    at /build/buildd/livewallpaper-0.4.1/plugins/galaxy/src/light.c:57
#7 0xb45565a4 in galaxy_plugin_init_plugin (plugin=0x806e1d0)
    at /build/buildd/livewallpaper-0.4.1/plugins/galaxy/src/galaxy.c:332
#8 0xb7fafc9f in lw_wallpaper_init_plugin (self=0x806e1d0)
    at /build/buildd/livewallpaper-0.4.1/livewallpaper-core/wallpaper.c:70
#9 0x0804bfd2 in lw_application_load_wallpaper_plugin (engine=0x8071738,
    info=0x8279cf0, self=0x807b878)
    at /build/buildd/livewallpaper-0.4.1/src/application.c:147
#10 0xb7b3233e in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#11 0xb7b2f8ae in g_closure_invoke ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#12 0xb7b41c6b in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#13 0xb7b49753 in g_signal_emit_valist ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#14 0xb7b499e3 in g_signal_emit ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#15 0xb7d9b315 in peas_engine_load_plugin () from /usr/lib/libpeas-1.0.so.0
#16 0x0804e39d in lw_plugins_engine_set_property (object=0x8071738,
    property_id=1, value=0xbfffec6c, pspec=0x807c9a8)
    at /build/buildd/livewallpaper-0.4.1/src/plugins-engine.c:93
#17 0xb7b37bea in g_object_set_property ()
   from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
#18 0xb7cd3fa3 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#19 0xb7cd6d2c in g_settings_bind_with_mapping ()
   from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#20 0xb7cd7146 in g_settings_bind ()
   from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#21 0x0804c4c5 in l...

Read more...

Revision history for this message
Maximilian Schnarr (fyrmir) wrote :

I guess the problem is, that your graphics card just supports OpenGL 1.4. LiveWallpaper is tested on OpenGL 2.0 and also uses the function pointers from 2.0, but they are not available on your system. That should be the reason for the segfault.

So, I uploaded a new version which also uses the function pointers for OpenGL 1.4. I haven't tested it, but I hope it fixes this problem. You can install this new version from the PPA in the next few hours. Please check if every plugin works and also if you can use a custom color for the galaxy plugin, maybe I forgot something.

Changed in livewallpaper:
assignee: nobody → Maximilian Schnarr (fyrmir)
importance: Undecided → Low
milestone: none → 0.5.0
status: New → In Progress
Revision history for this message
MrFlibble (mrflibble) wrote :

Yay!!!
I just tried it, and it works :))
All the plugins seem to work, and I seem to be able to change the settings and they take effect immediately.
A couple of the things dont work - when I select a custom color, like you mention, it quits, and I have to disable the custom color before I can enable livewallpaper again.
Also, the "show desktop icons (nautilus only)" option doesn't seem to work.

Anyway, it works nicely and I am able to get a max of ~38fps using 16-20% CPU on my "Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz"-based laptop.

Thank you very much for your fixes!

Changed in livewallpaper:
status: In Progress → Fix Committed
Changed in livewallpaper:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.