This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/13594] Crash if nscd is not running in __nscd_get_mapping
- From: "pcpa at mandriva dot com.br" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Sat, 11 Feb 2012 22:52:36 +0000
- Subject: [Bug libc/13594] Crash if nscd is not running in __nscd_get_mapping
- Auto-submitted: auto-generated
- References: <bug-13594-131@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=13594
Paulo CÃsar Pereira de Andrade <pcpa at mandriva dot com.br> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pcpa at mandriva dot com.br
--- Comment #2 from Paulo CÃsar Pereira de Andrade <pcpa at mandriva dot com.br> 2012-02-11 22:52:36 UTC ---
I am just starting testing an update from "2.14.90" to "2.15" for
mandriva, and I get this randomly, varying from 1 to 4 times every
restart of chromium-browser.
$ rpm -qf /usr/bin/chromium-browser
chromium-browser-unstable-17.0.963.26-1-mdv2012.0.x86_64
$ LD_LIBRARY_PATH=/usr/lib64/chromium-browser gdb
/usr/lib64/chromium-browser/chrome
...
0x00007ffff18f5e7e in __nscd_get_mapping (type=<optimized out>, key=
0x7ffff19436b4 "hosts", mappedp=0x7ffff1b82548) at nscd_helper.c:417
417 if (oldval != NULL && atomic_decrement_val (&oldval->counter) == 0)
(gdb) p oldval
$1 = (struct mapped_database *) 0xffffffffffffffff
(gdb) bt
#0 0x00007ffff18f5e7e in __nscd_get_mapping (type=<optimized out>, key=
0x7ffff19436b4 "hosts", mappedp=0x7ffff1b82548) at nscd_helper.c:417
#1 0x00007ffff18f4098 in __nscd_get_nl_timestamp () at nscd_gethst_r.c:113
#2 0x00007ffff18e2be8 in __check_pf (seen_ipv4=0x7ffff7ed071e, seen_ipv6=
0x7ffff7ed071f, in6ai=0x7ffff7ed06e0, in6ailen=0x7ffff7ed06f0)
at ../sysdeps/unix/sysv/linux/check_pf.c:324
#3 0x00007ffff18aa015 in __GI_getaddrinfo (name=
0x555559ba3a68 "www.statcounter.com", service=<optimized out>, hints=
0x7ffff7ed0a60, pai=0x7ffff7ed0a98) at ../sysdeps/posix/getaddrinfo.c:2305
#4 0x00005555566a0c9c in ?? ()
#5 0x000055555669b3e8 in ?? ()
#6 0x0000555557d85b95 in ?? ()
#7 0x0000555556437fb2 in ?? ()
#8 0x00007ffff4239bd0 in start_thread (arg=0x7ffff7ed1700)
at pthread_create.c:309
#9 0x00007ffff18bd93d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
I believe this should correct it, but not the proper solution:
--- glibc-2.15-a316c1f/nscd/nscd_helper.c.orig 2012-02-11 20:25:37.804514879
-0200
+++ glibc-2.15-a316c1f/nscd/nscd_helper.c 2012-02-11 20:26:07.428588082
-0200
@@ -414,7 +414,8 @@ __nscd_get_mapping (request_type type, c
struct mapped_database *oldval = *mappedp;
*mappedp = result;
- if (oldval != NULL && atomic_decrement_val (&oldval->counter) == 0)
+ if (oldval != NULL && oldval != NO_MAPPING
+ && atomic_decrement_val (&oldval->counter) == 0)
__nscd_unmap (oldval);
return result;
hopefully also useful:
(gdb) frame 0#0 0x00007ffff18f5e7e in __nscd_get_mapping (type=<optimized
out>, key=
0x7ffff19436b4 "hosts", mappedp=0x7ffff1b82548) at nscd_helper.c:417
417 if (oldval != NULL && atomic_decrement_val (&oldval->counter) == 0)
(gdb) p keylen
$12 = 6
(gdb) p mapsize
$13 = 0
(gdb) p iov
$14 = {{iov_base = 0x7ffff7ed0330, iov_len = 6}, {iov_base = 0x7ffff7ed04a0,
iov_len = 8}}
(gdb) p cmsg
$15 = <optimized out>
(gdb) p (cmsg)->__cmsg_data
value has been optimized out
(gdb) p ip
$16 = <optimized out>
(gdb) p mapfd
$17 = <optimized out>
(gdb) p st
No symbol "st" in current context.
(gdb) p mapping
$18 = <optimized out>
(gdb) p size
No symbol "size" in current context.
(gdb) p oldval
$19 = (struct mapped_database *) 0xffffffffffffffff
(gdb) p result
$20 = (struct mapped_database *) 0xffffffffffffffff
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.