Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 414317 - dev-libs/libnl-3.2.8 breaks NetworkManager
Summary: dev-libs/libnl-3.2.8 breaks NetworkManager
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Netmon project
URL:
Whiteboard:
Keywords: PMASKED
Depends on:
Blocks:
 
Reported: 2012-05-02 01:17 UTC by Albert W. Hopkins
Modified: 2012-05-12 15:25 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Albert W. Hopkins 2012-05-02 01:17:19 UTC
After upgrading libnl, NetworkManager crashes on startup:

--

May  1 19:47:48 stretch NetworkManager[4971]: <info> monitoring kernel firmware directory '/lib/firmware'.
May  1 19:47:48 stretch NetworkManager[4971]: <info> found WiFi radio killswitch rfkill2 (at /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/ieee80211/phy0/rfkill2) (driver (unknown))
May  1 19:47:48 stretch NetworkManager[4971]: <info> WiFi enabled by radio killswitch; enabled by state file
May  1 19:47:48 stretch NetworkManager[4971]: <info> WWAN enabled by radio killswitch; enabled by state file
May  1 19:47:48 stretch NetworkManager[4971]: <info> WiMAX enabled by radio killswitch; enabled by state file
May  1 19:47:48 stretch NetworkManager[4971]: <info> Networking is enabled by state file
May  1 19:47:48 stretch NetworkManager[4971]: <warn> failed to allocate link cache: (-10) Operation not supported
May  1 19:47:48 stretch NetworkManager[4971]: <warn> caught signal 11. Generating backtrace...
May  1 19:47:48 stretch NetworkManager[4971]: ******************* START **********************************
May  1 19:47:48 stretch NetworkManager[4971]: Frame 0: /usr/sbin/NetworkManager (nm_logging_backtrace+0x3b) [0x4684db]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 1: /usr/sbin/NetworkManager (0x400000+0x44df51) [0x44df51]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 2: /lib64/libpthread.so.0 (0x7fe99654f000+0x7fe99655fbf0) [0x7fe99655fbf0]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 3: /usr/lib64/libnl-route-3.so.200 (rtnl_link_get_type+0x0) [0x7fe996114cf0]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 4: /usr/sbin/NetworkManager (nm_system_get_iface_type+0x87) [0x455d07]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 5: /usr/sbin/NetworkManager (0x400000+0x45d6a0) [0x45d6a0]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 6: /usr/sbin/NetworkManager (_nm_marshal_VOID__POINTER_POINTER_POINTER_POINTER_INT+0x97) [0x467677]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 7: /usr/lib64/libgobject-2.0.so.0 (g_closure_invoke+0x12f) [0x7fe994ec336f]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 8: /usr/lib64/libgobject-2.0.so.0 (0x7fe994eb2000+0x7fe994ed3d91) [0x7fe994ed3d91]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 9: /usr/lib64/libgobject-2.0.so.0 (g_signal_emit_valist+0xd52) [0x7fe994edbd82]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 10: /usr/lib64/libgobject-2.0.so.0 (g_signal_emit+0x8a) [0x7fe994edbf2a]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 11: /usr/sbin/NetworkManager (0x400000+0x447869) [0x447869]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 12: /usr/sbin/NetworkManager (nm_udev_manager_query_devices+0xa6) [0x448906]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 13: /usr/sbin/NetworkManager (nm_manager_start+0x164) [0x45eea4]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 14: /usr/sbin/NetworkManager (main+0x11e2) [0x425f12]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 15: /lib64/libc.so.6 (__libc_start_main+0xed) [0x7fe99481260d]
May  1 19:47:48 stretch NetworkManager[4971]: Frame 16: /usr/sbin/NetworkManager (0x400000+0x426189) [0x426189]
May  1 19:47:48 stretch NetworkManager[4971]: ******************* END **********************************
---

After downgrading libnl back to libnl-3.2.7 NetworkManager was able to start successfully.

---

# emerge --info =dev-libs/libnl-3.2.8
Portage 2.2.0_alpha101 (default/linux/amd64/10.0, gcc-4.6.3, glibc-2.15-r1, 3.4.0-rc5 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.4.0-rc5-x86_64-Intel-R-_Core-TM-_i7-2620M_CPU_@_2.70GHz-with-gentoo-2.1
Timestamp of tree: Tue, 01 May 2012 23:00:01 +0000
app-shells/bash:          4.2_p24-r1
dev-lang/python:          2.7.3-r1, 3.2.3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          0.9.9.3
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.69
sys-devel/automake:       1.11.5
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.7
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.3 (virtual/os-headers)
sys-libs/glibc:           2.15-r1
Repositories: gentoo marduk gnome gfxboot_overlay
Installed sets: @system
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA IBM-J1.6 AdobeFlash-10.3 skype-eula"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/var/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --usepkg --binpkg-respect-use=y     --quiet-build --jobs --quiet-unmerge-warn --oneshot     --autounmask=n --buildpkg-exclude virtual/*     --buildpkg-exclude sys-kernel/*-sources"
FEATURES="assume-digests binpkg-logs buildpkg distlocks ebuild-locks fixlafiles news noinfo notitles parallel-fetch protect-owned sandbox sfperms skiprocheck strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ja"
MAKEOPTS="-j10 -l5.0"
PKGDIR="/var/portage/packages"
PORTAGE_COMPRESS=""
PORTAGE_COMPRESS_FLAGS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/portage"
PORTDIR_OVERLAY="/var/lib/layman/marduk /var/lib/layman/gnome /usr/local/portage/gfxboot_overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 cjk introspection multilib nls pam unicode utf8" ALSA_PCM_PLUGINS="*" APACHE2_MODULES="auth_digest authn_file group_file dav dav_fs authz_groupfile" CAMERAS="*" CURL_SSL="openssl" DRACUT_MODULES="plymouth" ELIBC="glibc" FFTOOLS="*" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LINGUAS="ja" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="intel i915 i965"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

dev-libs/libnl-3.2.8 was built with the following:
USE="(multilib) -doc -static-libs -utils"
---
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2012-05-02 02:40:53 UTC
libnl-3.2.8 has significant API changes from 3.2.7. Just take a look at this gem, for instance: http://git.infradead.org/users/tgr/libnl.git/commitdiff/e0482794a8b70ae23361bfbe3701d4c2c96c66a6?hp=adbc5687358ef62c5edb349332b3d031c01fcbb2
In other words, with 3.2.8, all libnl users that checked for a non-zero return value from nl_recvmsgs() (which e.g. networkmanager does in its _nl80211_send_and_recv() function) will now start failing.

I strongly recommend masking libnl-3.2.8 until the packages in the tree have caught up with the new API.
Comment 2 Diego Elio Pettenò (RETIRED) gentoo-dev 2012-05-02 03:54:14 UTC
QA-masked until this is sorted out. This is API _and_ ABI breakage even though it slips under the radar of binary interfaces.
Comment 3 Sylvain Alain (RETIRED) gentoo-dev 2012-05-02 04:37:55 UTC
Thank you Albert, I had this problem tonight and I was in the dark.

Now I masked manually the package.
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2012-05-02 21:21:41 UTC
(In reply to comment #2)
> QA-masked

You've just made that up, didn't you?
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2012-05-12 15:22:55 UTC
Version 3.2.9 has been released on May 8, 2012. 

Note: The 3.2.9 release fixes a regression in nl_recvmsgs(). The change in semantics regarding the return value has broken nl_wait_for_ack() among other things. Behaviour has been restored. Please do not distribute 3.2.8.
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2012-05-12 15:25:25 UTC
Changelog for 3.2.8 -> 3.2.9
Jeroen Roovers (1):
      Fix two bugs in 3.2.8/doc/

Thomas Graf (2):
      nl: Fix return value of nl_recvmsgs()
      3.2.9 release