This seems to be 100% reproducible:

  1. Run 'evince some.pdf'
  2. Close lid (suspend)
  3. Open lid (resume)
  4. Unlock screen
  5. CPU goes to 100%
  6. 3-4 minutes later evince crashes anyway.

It sometimes happens instantly, with:

#0  xcb_get_extension_data (c=0x21, ext=0x7fb9187dc110) at 
../../src/xcb_ext.c:87
#1  0x00007fb9185cb41a in _xcb_dispatch (be=0x7fb9229af288) at 
geis_xcb_backend.c:891
#2  _fd_callback (fd=<optimized out>, ev=<optimized out>, ctx=0x7fb9229af288) 
at geis_xcb_backend.c:946
#3  0x00007fb9185c1666 in geis_backend_multiplexor_pump (mx=0x7fb9228ea230) at 
geis_backend_multiplexor.c:399
#4  0x00007fb9185c6dcc in geis_event_dispatch (instance=<optimized out>) at 
geis_v1.c:632
#5  0x00007fb91c3aeddd in io_callback (source=<optimized out>, 
condition=<optimized out>, data=<optimized out>) at gripgesturemanager.c:945
#6  0x00007fb91d66458a in g_main_dispatch (context=0x7fb9223c5e70) at 
/build/buildd/glib2.0-2.31.6/./glib/gmain.c:2513
#7  g_main_context_dispatch (context=0x7fb9223c5e70) at 
/build/buildd/glib2.0-2.31.6/./glib/gmain.c:3050
#8  0x00007fb91d664950 in g_main_context_iterate (dispatch=1, block=<optimized 
out>, context=0x7fb9223c5e70, self=<optimized out>)
    at /build/buildd/glib2.0-2.31.6/./glib/gmain.c:3121
#9  g_main_context_iterate (context=0x7fb9223c5e70, block=<optimized out>, 
dispatch=1, self=<optimized out>)
    at /build/buildd/glib2.0-2.31.6/./glib/gmain.c:3058
#10 0x00007fb91d664d4a in g_main_loop_run (loop=0x7fb92250bb90) at 
/build/buildd/glib2.0-2.31.6/./glib/gmain.c:3315
#11 0x00007fb91ebd144d in gtk_main () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007fb920467aef in main (argc=1, argv=0x7fffb2ff9938) at 
/build/buildd/evince-3.2.1/./shell/main.c:331

and sometimes takes several minutes before a SEGV.

Various things seem to be corrupt and pointing at the wrong places

  print *be.geis.devices.device_store
  $27 = (GeisDevice) 0x73
  print be.geis.devices.device_store.ref_count
  Cannot access memory at address 0x73

Presumably it's attempting to hold and retain access to a resource that
has been free()d or otherwise disappeared during suspend.

  (gdb) print be.sub_table.count 
  $30 = 140433126966208
  (gdb) print be.sub_table.size 
  $31 = 140433129328592

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/912497

Title:
  Evince suddenly goes mental (100% CPU) stuck in epoll_wait() from
  libutouch

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/utouch/+bug/912497/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to