[Bug 849414] Re: plymouthd crashed with SIGSEGV in ply_event_loop_process_pending_events()

James Hunt 849414 at bugs.launchpad.net
Tue Sep 27 16:43:00 UTC 2011


Looking at ply_event_loop_process_pending_events(), what stands out is
the call to alloca(3) which is used to allocated a fixed size chunk of
storage (and have it automatically freed on function exit). Use of
alloca() is not recommended for a number of reasons. Note too that the
result of the call to alloca() is not checked.

The man page for alloca(3) claims that this function allocates storage
on the stack. However, I think the plymouth build is using gcc's
internal implementation of alloca() which *doesn't* use the stack - it
uses malloc(3) (some levels down). Presumably the reason for using
alloca() was performance, but since the gcc implementation uses
malloc(), that isn't really a gain now. Note that gccs internal
implementation could be inlined (hence wouldn't appear on the stack
trace), and also calls abort() on error (which will generate a SIGSEGV
as is being seen by users).

 I've spun up a modified version of plymouth using a static array (since
there doesn't appear to be any advantage in using dynamic memory
allocation in this case AFAIKS). The updated packages are in my ikb ppa
if anyone is feeling brave:

  https://launchpad.net/~jamesodhunt/+archive/ikb/

If this does fix the problem we still need to understand what is
consuming all the memory. Maybe a bug with the alloca() implementation
in the gcc-4.6?

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

Title:
  plymouthd crashed with SIGSEGV in
  ply_event_loop_process_pending_events()

Status in “plymouth” package in Ubuntu:
  Incomplete

Bug description:
  System did not crash. Bug reporter popped up, so I am reporting. Other
  reports were for 10.04, not 11.10 beta. hope this helps.

  ProblemType: Crash
  DistroRelease: Ubuntu 11.10
  Package: plymouth 0.8.2-2ubuntu25
  ProcVersionSignature: Ubuntu 3.0.0-11.17-generic 3.0.4
  Uname: Linux 3.0.0-11-generic i686
  ApportVersion: 1.22.1-0ubuntu2
  Architecture: i386
  Date: Tue Sep 13 16:35:33 2011
  DefaultPlymouth: /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
  ExecutablePath: /sbin/plymouthd
  InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Release i386 (20110427.1)
  Lsusb:
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
   Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  MachineType: Dell Inc. Latitude D610
  PccardctlIdent:
   Socket 0:
     no product info available
  PccardctlStatus:
   Socket 0:
     no card
  ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-11-generic root=UUID=53aeeb3c-456d-40c6-888f-68577cebacd4 ro quiet splash vt.handoff=7
  ProcCmdline: /sbin/plymouthd --mode=boot --attach-to-session
  ProcEnviron: PATH=(custom, no user)
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-11-generic root=UUID=53aeeb3c-456d-40c6-888f-68577cebacd4 ro quiet splash vt.handoff=7
  SegvAnalysis:
   Segfault happened at: 0x5ce5b7 <ply_event_loop_process_pending_events+455>:	test   %ecx,0x4(%esi)
   PC (0x005ce5b7) ok
   source "%ecx" ok
   destination "0x4(%esi)" (0x00000004) not located in a known VMA region (needed writable region)!
  SegvReason: writing NULL VMA
  Signal: 11
  SourcePackage: plymouth
  StacktraceTop:
   ply_event_loop_process_pending_events () from /lib/libply.so.2
   ply_event_loop_run () from /lib/libply.so.2
   ?? ()
   __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
   ?? ()
  TextPlymouth: /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
  Title: plymouthd crashed with SIGSEGV in ply_event_loop_process_pending_events()
  UpgradeStatus: Upgraded to oneiric on 2011-09-05 (7 days ago)
  UserGroups:
   
  dmi.bios.date: 10/02/2005
  dmi.bios.vendor: Dell Inc.
  dmi.bios.version: A06
  dmi.board.name: 0U8082
  dmi.board.vendor: Dell Inc.
  dmi.chassis.type: 8
  dmi.chassis.vendor: Dell Inc.
  dmi.modalias: dmi:bvnDellInc.:bvrA06:bd10/02/2005:svnDellInc.:pnLatitudeD610:pvr:rvnDellInc.:rn0U8082:rvr:cvnDellInc.:ct8:cvr:
  dmi.product.name: Latitude D610
  dmi.sys.vendor: Dell Inc.

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




More information about the foundations-bugs mailing list