frontend crashed with signal 5 in free_pending_nulls()

Bug #1060249 reported by Jean-Baptiste Lallement
874
This bug affects 147 people
Affects Status Importance Assigned to Milestone
Debconf
Fix Released
Unknown
debconf (Ubuntu)
Fix Released
High
James Hunt
Precise
Invalid
Undecided
Unassigned
Quantal
Won't Fix
High
James Hunt
gsettings-desktop-schemas (Ubuntu)
Fix Released
High
Didier Roche-Tolomelli
Quantal
Fix Released
High
Didier Roche-Tolomelli

Bug Description

Crashed during upgrade from Precise to Quantal without any visible effect

TEST CASE 1:
1. Install Precise 12.04.1
2. Upgrade to Quantal

TEST CASE 2:
This test case is used to reproduce the debconf crash:
1. Install Precise 12.04.1 and apply updates
2. Enable apt repository for Quantal
3. Install gsettings-desktop-schemas from Quantal:
    $ sudo apt-get install gsettings-desktop-schemas/quantal
4. Run man-db trigger manually with:
  $ sudo DEBIAN_FRONTEND=gnome \
        /usr/bin/perl -w /usr/share/debconf/frontend \
        /var/lib/dpkg/info/man-db.postinst triggered \
        /usr/share/man

=> Verify that debconf crashes
Actually any gtk based application will crash.

ACTUAL RESULT
This crash is reported on first login after upgrade.

ProblemType: Crash
DistroRelease: Ubuntu 12.10
Package: debconf 1.5.46ubuntu1
ProcVersionSignature: Ubuntu 3.5.0-16.25-generic 3.5.4
Uname: Linux 3.5.0-16-generic x86_64
ApportVersion: 2.6.1-0ubuntu1
Architecture: amd64
Date: Tue Oct 2 14:59:09 2012
ExecutablePath: /usr/share/debconf/frontend
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
InterpreterPath: /usr/bin/perl
PackageArchitecture: all
ProcCmdline: /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/man-db.postinst triggered /usr/share/man
ProcEnviron:
 TERM=xterm
 PATH=(custom, user)
 LANG=fr_FR.UTF-8
 SHELL=/bin/bash
Signal: 5
SourcePackage: debconf
StacktraceTop:
 ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
 g_node_copy_deep () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
 ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
 ?? ()
 g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Title: frontend crashed with signal 5 in g_node_copy_deep()
UpgradeStatus: Upgraded to quantal on 2012-10-02 (0 days ago)
UserGroups:

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceSource:
 #0 0x00007f5b4c964fdb in ?? ()
 #1 0x0000000002ff5101 in ?? ()
 #2 0x0000000400000000 in ?? ()
 #3 0x0000000000000001 in ?? ()
 #4 0x0000000000000000 in ?? ()
StacktraceTop:
 ?? ()
 ?? ()
 ?? ()
 ?? ()
 ?? ()

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in debconf (Ubuntu):
status: New → Invalid
Revision history for this message
Apport retracing service (apport) wrote : Crash report cannot be processed

Thank you for your report!

However, processing it in order to get sufficient information for the
developers failed (it does not generate a useful symbolic stack trace). This
might be caused by some outdated packages which were installed on your system
at the time of the report:

outdated debug symbol package for libstdc++6: package version 4.7.2-2ubuntu1 dbgsym version 4.6.3-1ubuntu5
package liboverlay-scrollbar-0.2-0 does not exist, ignoring

Please upgrade your system to the latest package versions. If you still
encounter the crash, please file a new report.

Thank you for your understanding, and sorry for the inconvenience!

tags: removed: need-amd64-retrace
visibility: private → public
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote : Re: frontend crashed with signal 5 in g_node_copy_deep()

Setting to 'new' given the number of duplicates.

tags: added: rls-q-incoming
Changed in debconf (Ubuntu):
status: Invalid → New
importance: Undecided → High
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in debconf (Ubuntu):
status: New → Confirmed
Steve Langasek (vorlon)
Changed in debconf (Ubuntu Precise):
status: New → Invalid
tags: removed: rls-q-incoming
James Hunt (jamesodhunt)
Changed in debconf (Ubuntu Quantal):
assignee: nobody → James Hunt (jamesodhunt)
Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/1060249

tags: added: iso-testing
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I reproduce the crash with debug symbols installed, Stack trace attached:

StacktraceTop:
 free_pending_nulls (perform_nulls=4, context=<optimized out>) at /build/buildd/glib2.0-2.34.0/./glib/goption.c:1618
 g_node_copy_deep (node=0x400000000, copy_func=0x1, data=0x7f4f8082f530) at /build/buildd/glib2.0-2.34.0/./glib/gnode.c:198
 g_io_unix_read (channel=0x7f4f88e23740 <main_arena>, buf=0x5 <Address 0x5 out of bounds>, count=1, bytes_read=0x7f4f88e23770 <main_arena+48>, err=0x0) at /build/buildd/glib2.0-2.34.0/./glib/giounix.c:191
 ?? ()
 g_signal_emit_valist (instance=0x1, signal_id=<optimized out>, detail=0, var_args=0x1c8c7f0) at /build/buildd/glib2.0-2.34.0/./gobject/gsignal.c:3211

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
summary: - frontend crashed with signal 5 in g_node_copy_deep()
+ frontend crashed with signal 5 in free_pending_nulls()
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

From the upgrade log attached

Processing triggers for man-db ...

(frontend:8100): GLib-GIO-ERROR **: Settings schema 'org.gnome.desktop.interface' does not contain a key named 'ubuntu-overlay-scrollbars'
debconf: Impossible d'initialiser l'interface : Gnome
debconf: (DISPLAY problem?)
debconf: Utilisation de l'interface Dialog en remplacement
debconf: Impossible d'initialiser l'interface : Dialog
debconf: (L'interface dialog a besoin d'un écran d'au moins 13 lignes sur 31 colonnes.)
debconf: Utilisation de l'interface Readline en remplacement

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I think the problem is that the perl gtk binding uses the old version of gtk library but the schema is migrated to the version in Quantal and the location of the key changed and is now in com.canonical.desktop.interface.scollbar-mode

no longer affects: gsettings-desktop-schemas (Ubuntu Precise)
Changed in gsettings-desktop-schemas (Ubuntu Quantal):
assignee: nobody → Didier Roche (didrocks)
importance: Undecided → Critical
status: New → Triaged
importance: Critical → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gsettings-desktop-schemas - 3.6.0-0ubuntu3

---------------
gsettings-desktop-schemas (3.6.0-0ubuntu3) quantal; urgency=low

  * Readd ubuntu_overlay-scrollbars.patch:
    - we need the deprecated schema for upgrade from precise until next LTS
      in case this package is updated before the overlay-scrollbar one
      (so still referencing the old key) and that a debconf prompt is loaded:
      perl-gtk will try to fetch this old schema and crash (LP: #1060249)
 -- Didier Roche <email address hidden> Fri, 12 Oct 2012 12:40:22 +0200

Changed in gsettings-desktop-schemas (Ubuntu Quantal):
status: Triaged → Fix Released
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote :

The underlying segfault has been fixed, so no further changes to debconf needed in quantal.

Changed in debconf (Ubuntu Quantal):
status: Confirmed → Won't Fix
Revision history for this message
James Hunt (jamesodhunt) wrote :

The problem with debconf needs a little explanation. As show, the command that caused the failure was:

/usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/man-db.postinst triggered /usr/share/man

The 'frontend' perl script determines which type of debconf frontend to display. In this case, the gnome frontend was selected. debconf then goes to some pains to ensure that the gtk bindings work. However, because of the gsettings schema problem, as soon as any perl script called 'use Gtk2;', the schema was queried, which resulted in the crash.

Since the master debconf process calls 'use Gtk2;' unconditionally, the schema problem caused debconf (technically the perl interpreter) to crash. And since debconf re-execs the original caller (in this case '/var/lib/dpkg/info/man-db.postinst') as itself, this stopped debconf from falling back to other frontends as it should as it was now effectively dead.

The fix is for debconf to only 'use Gtk2;' when it has proven that this operation can be performed without impacting the perl interpreter. This allows it to fall back gracefully to alternative frontends.

Revision history for this message
James Hunt (jamesodhunt) wrote :
James Hunt (jamesodhunt)
Changed in debconf (Ubuntu):
status: Confirmed → Fix Committed
Changed in debconf:
status: Unknown → Fix Committed
Changed in debconf:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package debconf - 1.5.48ubuntu1

---------------
debconf (1.5.48ubuntu1) raring; urgency=low

  * Resynchronise with Debian (LP: #1060249). Remaining changes:
    - Gnome.pm: Do not show "Cancel" or "Close" buttons, to avoid breaking
      maintainer scripts.

debconf (1.5.48) unstable; urgency=low

  * dpkg-reconfigure: Fix incorrect scoping of control_path that broke
    handling of multiple packages (closes: #690755, LP: #1076322).

debconf (1.5.47) unstable; urgency=low

  [ Manpages translations ]
  * German updated.

  [ Joey Hess ]
  * GTK frontend: Do additional probing in child process to catch cases
    where trying to use GTK will cause an otherwise uncatchable crash.
    Closes: #690776 Thanks, James Hunt
  * debconf-devel.7: Mention that CAPB capabilities are separated with spaces.
    Closes: #694626

  [ Colin Watson ]
  * dpkg-reconfigure: Fix trigger processing to cope properly if some of the
    triggered packages use debconf (closes: #686071).
 -- Colin Watson <email address hidden> Tue, 11 Dec 2012 09:59:45 +0000

Changed in debconf (Ubuntu):
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.