ship apport ignore hook for usplash BIOS code crashes (SIGTRAP within vesa_setmode->LRMI_int->run_vm86)

Bug #94911 reported by Jonathan Jesse
26
Affects Status Importance Assigned to Milestone
apport (Ubuntu)
Invalid
Undecided
Unassigned
usplash (Ubuntu)
Fix Released
Medium
Martin Pitt

Bug Description

Binary package hint: usplash

Don't know exactly what the crash was from, but reporting the bug

ProblemType: Crash
Architecture: i386
Date: Thu Mar 22 17:03:34 2007
DistroRelease: Ubuntu 7.04
ExecutablePath: /sbin/usplash
Package: usplash 0.4-43
PackageArchitecture: i386
ProcCmdline: /sbin/usplash -c -x 1024 -y 768
ProcCwd: /dev/.initramfs
ProcEnviron: PATH=/bin:/usr/bin:/sbin:/usr/sbin
Signal: 5
SourcePackage: usplash
Stacktrace:
 #0 0xb7d5af6a in ?? () from /lib/libx86.so.1
 #1 0xb7d5c800 in ?? () from /lib/libx86.so.1
 #2 0x00000000 in ?? ()
StacktraceTop:
 ?? () from /lib/libx86.so.1
 ?? () from /lib/libx86.so.1
 ?? ()
ThreadStacktrace:
 .
 Thread 1 (process 9242):
 #0 0xb7d5af6a in ?? () from /lib/libx86.so.1
 #1 0xb7d5c800 in ?? () from /lib/libx86.so.1
 #2 0x00000000 in ?? ()
Uname: Linux jjesse-laptop02 2.6.20-12-generic #2 SMP Wed Mar 21 20:55:46 UTC 2007 i686 GNU/Linux
UserGroups:

Revision history for this message
Jonathan Jesse (jjesse) wrote :
Changed in usplash:
importance: Undecided → Medium
Revision history for this message
Apport retracing service (apport) wrote : Symbolic stack trace

StacktraceTop:run_vm86 () at lrmi.c:526
LRMI_int (i=16, r=0xb7f11cc0) at lrmi.c:844
vesa_setmode (mode=3, prv_mode=0) at /build/buildd/usplash-0.4/svgalib/src/vesa.c:213
initialize () at /build/buildd/usplash-0.4/svgalib/src/vga.c:2016
vga_setmode (mode=12) at /build/buildd/usplash-0.4/svgalib/src/vga.c:2245

Revision history for this message
Apport retracing service (apport) wrote : Symbolic threaded stack trace
Revision history for this message
Paul Sladen (sladen) wrote : Re: [apport] usplash crashed with SIGTRAP at vesa_setmode->LRMI_int->run_vm86

<mjg59> Crashing in BIOS code? Turns out to be hard to fix.
<sladen> mjg59: can it be hooked, caught and just "failed" rather than leading to a crash?
<mjg59> No
<mjg59> Eh.
<mjg59> You could have a sigsegv handler.
<mjg59> But that is clearly not the right answer
<sladen> vesa_setmode() could catch SIGTRAP before lrmi is called and cleanly exit on failure/trap
<mjg59> I'm not sure how this is preferable
<mjg59> The code either crashes or it doesn't
<sladen> it's the equivalent of try { setmode() } except { printf("failed"); }
<mjg59> sladen: The code tried to write to memory it didn't own. It really should crash.
<sladen> rather than just dying.---in which case apport catches the crash and will want to report it
<mjg59> The right fix is to tell apport to ignore it, not to pretend we're not crashing when we are
<sladen> which is pointless if there's nothing to be done about it
<pitti> mjg59: you can actually do so now in 0.7
<mjg59> pitti: Score

Changed in apport:
status: Unconfirmed → Confirmed
status: Confirmed → Rejected
Revision history for this message
Paul Sladen (sladen) wrote :

<pitti> sladen: well, usplash can ship a package hook which sets a particular field
<pitti> sladen: that package hook can examine the current crash report and decide wehther or not to ignore it

Changed in usplash:
status: Unconfirmed → Confirmed
Revision history for this message
Paul Sladen (sladen) wrote :

Target to Feisty release so we don't get tonnes of bug reports from broken machines.

Tollef Fog Heen (tfheen)
Changed in usplash:
assignee: nobody → pitti
Revision history for this message
Martin Pitt (pitti) wrote :

Matthew, Paul, I'm fine with writing the actual apport hook. Can you please describe exactly when it should be supressed? It should both match the nonsymbolic trace below and the attached apport retrace (which does not mention libx86.so.1 any more for some reason).

Changed in usplash:
status: Confirmed → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

Perhaps 'First item in StacktraceTop contains libx86.so or run_vm86'?

Revision history for this message
Paul Sladen (sladen) wrote :

Yup, anything inside 'run_vm86()' is probably proprietary BIOS code, otherwise we'd have better ways of running it.

If that's the way to match it (see Stacktraces attached) then go for it.

Revision history for this message
Martin Pitt (pitti) wrote :

 usplash (0.4-44) feisty; urgency=low
 .
   [ Colin Watson ]
   * Add XS-Vcs-Bzr field to debian/control.
 .
   [ Martin Pitt ]
   * add debian/usplash.py: Apport package hook to check whether a crash
     happened in run_vm86(), which means a crash in the BIOS. We do not want
     crash reports about those, because they are useless. (LP: #94911)
   * debian/usplash.install: Install that hook into
     /usr/share/apport/package-hooks/.

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

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