| Summary: | =net-libs/libtirpc-0.2.4 breaks kerberos nfs mounts - rpc.gssd: segfault at ? in libgssapi_krb5.so.2.2 | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Torsten Kaiser <Storklerk> |
| Component: | [OLD] Library | Assignee: | Network Filesystems <net-fs> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | help, johan.ymerson, uzytkownik2, vmatare+gbug |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
Torsten Kaiser
2013-12-11 07:12:32 UTC
Some experiments: * recompiling net-fs/nfsutils after the upgrade did not help * removing -flto from CFLAGS did not help * dropping to CFLAGS="-O2 -pipe" and recompiling libtirpc and nfs-utils did not help * downgrading to =libtirpc-0.2.3 even with -flto works. (Although nfs-utils fails to compile with -flto, but thats my own fault for playing with -flto...) The following commits from the 0.2.4 changelog look like they might be related, because I saw a similar looking segfault because libgssglue problems in nfs-utils (see bug #479982): commit b5209d95d362b4c66184463ec14b2d8a6f3bcd0b Author: Steve Dickson <[spam snip]> Date: Mon Dec 9 14:57:13 2013 -0500 configure.ac: Remove gssglue configuration knobs Its really not a good idea for libtirpc to link with libgssglue so this patch remove the ability to do that. Signed-off-by: Steve Dickson <[spam snip]> commit 9151a39539145e1f62f8b30168d1cdeb19299dac Author: Simo Sorce <[spam snip]> Date: Tue Mar 26 11:13:05 2013 -0400 Switch to use standard GSSAPI by default Make libgssglue configurable still but disabled by default. There is no reason to use libgssglue anymore, and modern gssapi supports all needed features for libtirpc and its dependencies. Signed-off-by: Steve Dickson <[spam snip]> OK, the trouble seems to be that either both or none of nfs-utils and libtirpc needs to be build agains libgssglue. Both with libgssglue: nfs-utils-1.2.8-r2/1.2.9 and libtirpc-0.2.3 -> works Only libtirpc: nfs-utils-1.2.8-r1 broke rpc.gssd: See bug #479982 and bug #480382 (At that point I was using the then current libtirpc-0.2.3) Only nfs-utils: libtirpc-0.2.4 now broke rpc.gssd again: this bug. Neither: Using the new libgssglue-less libtirpc-0.2.4 and the older nfs-utils-1.2.8-r1 that do not include the fix für #479982 works for me. Looking at the upstream commits in my last comment, it seems that upstream libtirpc has completely removed the option for libgssglue. So for me it looks like the best way would be to revert #479982 and adjust the dependency of nfs-utils: <nfs-utils-1.2.8 with libgssglue should DEPEND on <libtirpc-0.2.4 and the later libgssglue-less nfs-utils should DEPEND on >=libtirpc-0.2.4. (And both ebuilds then could drop the DEPEND on libgssglue...) Retesting with nfs-utils-1.2.9-r1:
kernel: [126983.733696] rpc.gssd[4525]: segfault at e1b000 ip 00007f79ed16550c sp 00007ffffdb7cb70 error 4 in libgssapi_krb5.so.2.2[7f79ed14f000+4b000]
Using the following change nfs-utils-1.2.9-r1 work for me:
--- a/net-fs/nfs-utils/nfs-utils-1.2.9-r1.ebuild 2013-12-22 10:50:02.000000000 +0100
+++ b/net-fs/nfs-utils/nfs-utils-1.2.9-r1.ebuild 2014-01-01 20:33:58.174738399 +0100
@@ -32,8 +32,7 @@
>=net-libs/libnfsidmap-0.21-r1
kerberos? (
net-libs/librpcsecgss
- >=net-libs/libgssglue-0.3
- net-libs/libtirpc[kerberos]
+ >=net-libs/libtirpc-0.2.4[kerberos]
app-crypt/mit-krb5
)
nfsidmap? (
@@ -74,7 +73,7 @@
$(use_enable caps) \
$(use_enable uuid) \
$(usex nfsv4 "$(use_enable kerberos gss)" "--disable-gss") \
- $(usex nfsv4 "$(use_with kerberos gssglue)" "--without-gssglue")
+ --without-gssglue
}
src_compile(){
(I have removed libgssglue unconditionally, because libtirpc-upstream removed that option completely in 0.2.4)
Yes, libtirpc and nfs-utils must be built without the obsolete gssglue to work. Even with the currently stable libtirpc-0.2.2-r1 we experience svcgssd and gssd crashes (segfaults) caused by bugs in the old gssglue code. Also, the dependency on net-libs/librpcsecgss should probably be removed from both libtirpc and nfs-utils, as they don't really seem to be using it. *** Bug 499888 has been marked as a duplicate of this bug. *** Commit message: Depend on virtual/krb5 for USE=kerberos rather than gssglue http://sources.gentoo.org/net-libs/libtirpc/libtirpc-0.2.4-r1.ebuild?rev=1.1 should be all set now in the tree; thanks for the report! Commit message: Drop gssglue support as libtirpc itself no longer supports it http://sources.gentoo.org/net-fs/nfs-utils/nfs-utils-1.2.9-r3.ebuild?rev=1.1 nfs-utils still depends on net-libs/librpcsecgss. Is this really needed or just forgotten? We are using the git version of nfs-utils(http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=summary) as current 1.2.9 has some bugs we experince. The dependency for net-libs/librpcsecgss is not needed in this case net-fs/nfs-utils-1.2.9-r3 seem to work for me. Thanks! Wrt. net-libs/librpcsecgss: nfs-utils is the only packages on my system that pulls this in. But when I use revdev-rebuild to search for users of librpcsecgss.so /.so.3 / .so.3.0.0 nothing was found. That looks like its no longer needed... Hmmmh: Feb 2 22:23:02 thoregon kernel: [187000.542878] rpcbind[7929]: segfault at 28 ip 00007fe052a04061 sp 00007fff946fa390 error 4 in libtirpc.so.1.0.10[7fe0529ea000+28000] Now rpcbind segfaults, but everything seems to work. I'm using NFSv4 so the portmapper seems (partly?) optional. If I find out, what happens there, I will file a new bug... Commit message: Drop librpcsecgss dep as it is not used when libtirpc is utilized (which we do) http://sources.gentoo.org/net-fs/nfs-utils/nfs-utils-1.2.9-r3.ebuild?r1=1.1&r2=1.2 rpcbind segfaults disapeared after a reemerge of that package. I don't know what fixed it, but -flto might be to blame. So I will put these segfaults under "user error". ;-) |