Debian Bug report logs - #544354
glib2.0: gio breaks on Lenny kernels when calling inotify_init1()

version graph

Package: glib2.0; Maintainer for glib2.0 is Loic Minier <lool@dooz.org>;

Reported by: Michael Stone <michael@laptop.org>

Date: Sun, 30 Aug 2009 21:06:08 UTC

Severity: normal

Merged with 543962

Fixed in version glib2.0/2.21.6-1

Done: Sebastian Dröge <slomo@debian.org>

Bug is archived. No further changes may be made.

Forwarded to http://bugzilla.gnome.org/show_bug.cgi?id=593775

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Loic Minier <lool@dooz.org>:
Bug#544354; Package glib2.0. (Sun, 30 Aug 2009 21:06:15 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michael Stone <michael@laptop.org>:
New Bug report received and forwarded. Copy sent to Loic Minier <lool@dooz.org>. (Sun, 30 Aug 2009 21:06:15 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Michael Stone <michael@laptop.org>
To: submit <submit@bugs.debian.org>
Subject: glib2.0: gio breaks on Lenny kernels when calling inotify_init1()
Date: Sun, 30 Aug 2009 17:05:11 -0400
[Message part 1 (text/plain, inline)]
Package: glib2.0
Severity: normal

Summary
-------

Recent upstream patches contained in glib2.0_2.20.4-1 cause the glib2.0-derived
packages in squeeze to depend on kernel functionality -- inotify_init1() --
that is not available in Lenny kernels. These packages should not depend on
such functionality until squeeze is released.

Remediations
------------

A reasonable compromise might be to adjust the glib2.0 source code to call
inotify_init whenever inotify_init1 fails, as in the following outline:

> inotify_instance_fd = -1;
> 
> #ifdef HAVE_INOTIFY_INIT1
>   inotify_instance_fd = inotify_init1 (IN_CLOEXEC);
> #endif
> 
> if (inotify_instance_fd < 0)
>    inotify_instance_fd = inotify_init ();
> 
> if (inotify_instance_fd < 0)
>    return FALSE;

(Thanks to dilinger@queued.mit.edu for the code.)

Details
-------

I periodically test the Sugar packaging in squeeze and sid by installing
sugar-0.84 into clean Debian chroots on top of my main (lenny) machine. Last
week, Sugar regressed in that it became unable to launch the Journal or to find
installed activities and the Sugar ~/.sugar/default/logs/shell.log file
contained the following suspicious new messages:

> (sugar-session:1844): GLib-GIO-WARNING **: Could not initialize inotify
>
> Traceback (most recent call last):
>   File "/usr/lib/python2.5/site-packages/jarabe/desktop/favoritesview.py", line 122, in __connect_to_bundle_registry_cb
>     registry = bundleregistry.get_registry()
>   File "/usr/lib/python2.5/site-packages/jarabe/model/bundleregistry.py", line 394, in get_registry
>     _instance = BundleRegistry()
>   File "/usr/lib/python2.5/site-packages/jarabe/model/bundleregistry.py", line 58, in __init__
>     monitor = directory.monitor_directory()
> gio.Error: Unable to find default local directory monitor type

Investigating these messages pointed me to 

   gio/inotify/inotify-helper.c:89,
   gio/inotify/inotify-kernel.c:194, and
   gio/glocaldirectorymonitor.c:295

in the glib2.0 source code.

The problem seems to have been introduced into inotify-kernel.c in this recent
commit:

  
http://git.gnome.org/cgit/glib/commit/?id=2192f1003f27eaf523917a046a42d8fc0019a8
7b

which results in the following logic in inotify-kernel.c:

> #ifdef HAVE_INOTIFY_INIT1
>   inotify_instance_fd = inotify_init1 (IN_CLOEXEC);
> #else
>   inotify_instance_fd = inotify_init ();
> #endif
> 
> if (inotify_instance_fd < 0)
>   return FALSE;

Unfortunately, inotify_init1() only became available in kernel-2.6.27. Lenny is
currently using 2.6.26.
[signature.asc (application/pgp-signature, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Loic Minier <lool@dooz.org>:
Bug#544354; Package glib2.0. (Tue, 01 Sep 2009 10:36:14 GMT) Full text and rfc822 format available.

Acknowledgement sent to 544354@bugs.debian.org:
Extra info received and forwarded to list. Copy sent to Loic Minier <lool@dooz.org>. (Tue, 01 Sep 2009 10:36:14 GMT) Full text and rfc822 format available.

Message #10 received at 544354@bugs.debian.org (full text, mbox):

From: Josselin Mouette <joss@debian.org>
To: Michael Stone <michael@laptop.org>, 544354@bugs.debian.org
Subject: Re: Bug#544354: glib2.0: gio breaks on Lenny kernels when calling
 inotify_init1()
Date: Tue, 01 Sep 2009 12:01:54 +0200
[Message part 1 (text/plain, inline)]
forwarded 544354 http://bugzilla.gnome.org/show_bug.cgi?id=593775
tag 544354 + pending
thanks

Le dimanche 30 août 2009 à 17:05 -0400, Michael Stone a écrit : 
> Recent upstream patches contained in glib2.0_2.20.4-1 cause the glib2.0-derived
> packages in squeeze to depend on kernel functionality -- inotify_init1() --
> that is not available in Lenny kernels. These packages should not depend on
> such functionality until squeeze is released.

Thanks for the investigation. It explains a lot of the issues that
appeared post-lenny with lenny kernels.

> Remediations
> ------------
> 
> A reasonable compromise might be to adjust the glib2.0 source code to call
> inotify_init whenever inotify_init1 fails, as in the following outline:
> 
> > inotify_instance_fd = -1;
> > 
> > #ifdef HAVE_INOTIFY_INIT1
> >   inotify_instance_fd = inotify_init1 (IN_CLOEXEC);
> > #endif
> > 
> > if (inotify_instance_fd < 0)
> >    inotify_instance_fd = inotify_init ();
> > 
> > if (inotify_instance_fd < 0)
> >    return FALSE;
> 
> (Thanks to dilinger@queued.mit.edu for the code.)

Looks like a reasonable solution. Applied in our SVN and forwarded
upstream.

Cheers,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'   “I recommend you to learn English in hope that you in
  `-     future understand things”  -- Jörg Schilling
[signature.asc (application/pgp-signature, inline)]

Set Bug forwarded-to-address to 'http://bugzilla.gnome.org/show_bug.cgi?id=593775'. Request was from Josselin Mouette <joss@debian.org> to control@bugs.debian.org. (Tue, 01 Sep 2009 10:36:15 GMT) Full text and rfc822 format available.

Added tag(s) pending. Request was from Josselin Mouette <joss@debian.org> to control@bugs.debian.org. (Tue, 01 Sep 2009 10:36:16 GMT) Full text and rfc822 format available.

Forcibly Merged 543962 544354. Request was from Josselin Mouette <joss@debian.org> to control@bugs.debian.org. (Wed, 02 Sep 2009 20:09:08 GMT) Full text and rfc822 format available.

Reply sent to Sebastian Dröge <slomo@debian.org>:
You have taken responsibility. (Sat, 05 Sep 2009 06:57:13 GMT) Full text and rfc822 format available.

Notification sent to Michael Stone <michael@laptop.org>:
Bug acknowledged by developer. (Sat, 05 Sep 2009 06:57:13 GMT) Full text and rfc822 format available.

Message #21 received at 544354-close@bugs.debian.org (full text, mbox):

From: Sebastian Dröge <slomo@debian.org>
To: 544354-close@bugs.debian.org
Subject: Bug#544354: fixed in glib2.0 2.21.6-1
Date: Sat, 05 Sep 2009 06:47:28 +0000
Source: glib2.0
Source-Version: 2.21.6-1

We believe that the bug you reported is fixed in the latest version of
glib2.0, which is due to be installed in the Debian FTP archive:

glib2.0_2.21.6-1.diff.gz
  to pool/main/g/glib2.0/glib2.0_2.21.6-1.diff.gz
glib2.0_2.21.6-1.dsc
  to pool/main/g/glib2.0/glib2.0_2.21.6-1.dsc
glib2.0_2.21.6.orig.tar.gz
  to pool/main/g/glib2.0/glib2.0_2.21.6.orig.tar.gz
libglib2.0-0-dbg_2.21.6-1_amd64.deb
  to pool/main/g/glib2.0/libglib2.0-0-dbg_2.21.6-1_amd64.deb
libglib2.0-0-refdbg_2.21.6-1_amd64.deb
  to pool/main/g/glib2.0/libglib2.0-0-refdbg_2.21.6-1_amd64.deb
libglib2.0-0_2.21.6-1_amd64.deb
  to pool/main/g/glib2.0/libglib2.0-0_2.21.6-1_amd64.deb
libglib2.0-data_2.21.6-1_all.deb
  to pool/main/g/glib2.0/libglib2.0-data_2.21.6-1_all.deb
libglib2.0-dev_2.21.6-1_amd64.deb
  to pool/main/g/glib2.0/libglib2.0-dev_2.21.6-1_amd64.deb
libglib2.0-doc_2.21.6-1_all.deb
  to pool/main/g/glib2.0/libglib2.0-doc_2.21.6-1_all.deb
libglib2.0-udeb_2.21.6-1_amd64.udeb
  to pool/main/g/glib2.0/libglib2.0-udeb_2.21.6-1_amd64.udeb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 544354@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Sebastian Dröge <slomo@debian.org> (supplier of updated glib2.0 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sat, 05 Sep 2009 07:15:58 +0200
Source: glib2.0
Binary: libglib2.0-0 libglib2.0-udeb libglib2.0-dev libglib2.0-0-dbg libglib2.0-data libglib2.0-doc libgio-fam libglib2.0-0-refdbg
Architecture: source all amd64
Version: 2.21.6-1
Distribution: experimental
Urgency: low
Maintainer: Loic Minier <lool@dooz.org>
Changed-By: Sebastian Dröge <slomo@debian.org>
Description: 
 libgio-fam - GLib Input, Output and Streaming Library (fam module)
 libglib2.0-0 - The GLib library of C routines
 libglib2.0-0-dbg - The GLib libraries and debugging symbols
 libglib2.0-0-refdbg - The GLib library of C routines - refdbg library
 libglib2.0-data - Common files for GLib library
 libglib2.0-dev - Development files for the GLib library
 libglib2.0-doc - Documentation files for the GLib library
 libglib2.0-udeb - The GLib library of C routines - minimal runtime (udeb)
Closes: 544354
Changes: 
 glib2.0 (2.21.6-1) experimental; urgency=low
 .
   [ Josselin Mouette ]
   * 10_inotify_init1.patch: fall back on inotify_init when inotify_init1
     does not work, as happens with kernel versions < 2.6.27.
     Closes: #544354.
 .
   [ Sebastian Dröge ]
   * New upstream development release:
     + debian/libglib2.0-0.symbols:
       - Update for the new version.
     + debian/rules:
       - Update SHVER to 2.21.6.
   * debian/control.in:
     + Updated Standards-Version to 3.8.3, no additional changes needed.
Checksums-Sha1: 
 797aa5ba3202e81b768854d01b04525c30d98abc 1673 glib2.0_2.21.6-1.dsc
 1db6d6d411be58362c7cedc9cc022f1071ec94e5 7779941 glib2.0_2.21.6.orig.tar.gz
 5718d4934c1063aded4ac7203be7635945fcbfaa 37059 glib2.0_2.21.6-1.diff.gz
 5919a2fed75914ce5d687fc7890b7e9b3b2ea388 864348 libglib2.0-data_2.21.6-1_all.deb
 2d3342974960dc0fa137bef7532bc8f9d92dde65 1393138 libglib2.0-doc_2.21.6-1_all.deb
 0c3fef94ff22b806532efc0cafebcbb230252f37 982704 libglib2.0-0_2.21.6-1_amd64.deb
 a92650a323ff0ab3e3fa59da70bd5ccb65fb9e01 1581268 libglib2.0-udeb_2.21.6-1_amd64.udeb
 d8b0b3f314a8d659453385cd386e550791b11900 1192388 libglib2.0-dev_2.21.6-1_amd64.deb
 c691f00e69d21129d579a9ff3ecf92d953091b5a 1446558 libglib2.0-0-dbg_2.21.6-1_amd64.deb
 8e4b8c65f631f861964a9ebd96205262a6ce9d28 414488 libglib2.0-0-refdbg_2.21.6-1_amd64.deb
Checksums-Sha256: 
 52fa53e02161560a6df05cdc991248d6069687d6066870827a0063163109d033 1673 glib2.0_2.21.6-1.dsc
 57c8ca54e756273159b799f613bec1da689e3cb711673ff3e27dde6b145334b8 7779941 glib2.0_2.21.6.orig.tar.gz
 9629f2e9baff36ef14fce13207fbcbadc5c8bfaa1e9f8f9cdaf425be5a56a8c1 37059 glib2.0_2.21.6-1.diff.gz
 943f73b40bf03b6a57585a5613ccab74b483ee09f44d4231613f23dea703dc7b 864348 libglib2.0-data_2.21.6-1_all.deb
 76a80bd7f3177a7d75252c608f27b3d17c9d46c7fad0d89e9b3c6fcff73286ec 1393138 libglib2.0-doc_2.21.6-1_all.deb
 2282c1e0a110249336058a1246c52aa821f971a070cc2a4b3ffddcd3a6da8d17 982704 libglib2.0-0_2.21.6-1_amd64.deb
 1f798c6131a00ff12a74163deb258d2af220894aee52c3e0529d190ca39644e2 1581268 libglib2.0-udeb_2.21.6-1_amd64.udeb
 7a31b14865ebd2592cd67975e4aa820d58f7bbe5a6cfdc8ef4b1390cc6acf82f 1192388 libglib2.0-dev_2.21.6-1_amd64.deb
 bcfc73e660cbac000a57f4d021149a756cf77182d353db49185e6107e40d9158 1446558 libglib2.0-0-dbg_2.21.6-1_amd64.deb
 b5a4281fc9888d7e148f92b5003d1df5a4bfb253a591f666bfeb05a774b2feb0 414488 libglib2.0-0-refdbg_2.21.6-1_amd64.deb
Files: 
 e2373a93368aba3626df1fb94e32128d 1673 libs optional glib2.0_2.21.6-1.dsc
 a13adaa64ceca3e02aed9ccd08ffd7a0 7779941 libs optional glib2.0_2.21.6.orig.tar.gz
 67d26b3c383e7fb87a4d6c6f5f1143b3 37059 libs optional glib2.0_2.21.6-1.diff.gz
 7c27ae4a43b65bcddff0b55ab84b985c 864348 misc optional libglib2.0-data_2.21.6-1_all.deb
 d806bb9b4d861218771d2ebed20a4af5 1393138 doc optional libglib2.0-doc_2.21.6-1_all.deb
 c6f167472dba3b077323918081348f00 982704 libs optional libglib2.0-0_2.21.6-1_amd64.deb
 0017cd2d8642a0dda2535539b954d1e0 1581268 debian-installer optional libglib2.0-udeb_2.21.6-1_amd64.udeb
 115acbeb073f9099ba3a546fb79665b8 1192388 libdevel optional libglib2.0-dev_2.21.6-1_amd64.deb
 74de11bf7b3a0864c50e12e694d31f8d 1446558 debug extra libglib2.0-0-dbg_2.21.6-1_amd64.deb
 9599e057f213ff8c434dc622a5bf39eb 414488 libs optional libglib2.0-0-refdbg_2.21.6-1_amd64.deb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkqiBnEACgkQBsBdh1vkHyHRzACeNQJ5wBoqq11dSKbYgXnHEnSU
GMYAn18W8iPLgQOzp5EnC9jfnNVCiTol
=1taQ
-----END PGP SIGNATURE-----





Reply sent to Sebastian Dröge <slomo@debian.org>:
You have taken responsibility. (Sat, 05 Sep 2009 06:57:14 GMT) Full text and rfc822 format available.

Notification sent to David Sánchez Herrero <david.krusty@gmail.com>:
Bug acknowledged by developer. (Sat, 05 Sep 2009 06:57:14 GMT) Full text and rfc822 format available.

Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Thu, 08 Oct 2009 07:33:30 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Tue Feb 9 19:43:43 2010; Machine Name: busoni.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.