NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/54017: jemalloc deadlock?



On Mar 11, 10:35pm, wiz%NetBSD.org@localhost (Thomas Klausner) wrote:
-- Subject: Re: lib/54017: jemalloc deadlock?

| The following reply was made to PR lib/54017; it has been noted by GNATS.
| 
| From: Thomas Klausner <wiz%NetBSD.org@localhost>
| To: gnats-bugs%NetBSD.org@localhost
| Cc: 
| Subject: Re: lib/54017: jemalloc deadlock?
| Date: Mon, 11 Mar 2019 23:33:42 +0100
| 
|  I can confirm that thunderbird and firefox built fine for me.
|  
|  I see a new problem with a libc from today, a repeatable pbulk-scan
|  core dump that did not happen before the userland update. pbulk-scan
|  binary was from 2017, though I've just rebuilt it to get symbols.
|  
|  # /usr/pkg_bulk/bin/bulkbuild
|  Warning: All log files of the previous pbulk run will be
|  removed in 5 seconds. If you want to abort, press Ctrl-C.
|  Removing old scan results
|  Scanning...
|  .................................................. 50/211
|  .................................................. 100/211
|  .................................................. 150/211
|  .................................................. 200/211
|  ...........[1]   Segmentation fault (core dumped) ${pscan} -v -l -I ${pscan_start_script} -m ${m...
|  # gdb /usr/pkg_bulk/bin/pbulk-scan pbulk-scan.core  
|  GNU gdb (GDB) 8.0.1
|  Copyright (C) 2017 Free Software Foundation, Inc.
|  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|  This is free software: you are free to change and redistribute it.
|  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
|  and "show warranty" for details.
|  This GDB was configured as "x86_64--netbsd".
|  Type "show configuration" for configuration details.
|  For bug reporting instructions, please see:
|  <http://www.gnu.org/software/gdb/bugs/>.
|  Find the GDB manual and other documentation resources online at:
|  <http://www.gnu.org/software/gdb/documentation/>.
|  For help, type "help".
|  Type "apropos word" to search for commands related to "word"...
|  Reading symbols from /usr/pkg_bulk/bin/pbulk-scan...done.
|  [New process 1]
|  Core was generated by `pbulk-scan'.
|  Program terminated with signal SIGSEGV, Segmentation fault.
|  #0  0x000000004d804c5b in event_dispatch () at event.c:348
|  
|  warning: Source file is more recent than executable.
|  348                         iter < last_iter && ev && (next = LIST_NEXT(ev, ev_link), 1);
|  (gdb) bt
|  #0  0x000000004d804c5b in event_dispatch () at event.c:348
|  #1  0x000000004d80354b in master_mode (master_port=0x7f7fff20542f "192.168.0.33:2001", 
|      start_script=0x7f7fff2053fe "/usr/pkg_bulk/libexec/pbulk/scan-client-start") at master.c:284
|  #2  0x000000004d805468 in main (argc=2, argv=0x7f7fff204d88) at pscan.c:155
|  (gdb) l
|  343             if (ret == 0 && timeout == 0)
|  344                     return;
|  345             if (ret > 0) {
|  346                     iter = poll_list;
|  347                     for (ev = LIST_FIRST(&all_events);
|  348                         iter < last_iter && ev && (next = LIST_NEXT(ev, ev_link), 1);
|  349                         ev = next, ++iter) {
|  350                             if (iter->revents) {
|  351                                     if (!ev->ev_persistent) {
|  352                                             --active_events;
|  (gdb) p poll_list
|  $16 = (struct pollfd *) 0x788c70bc3000
|  (gdb) p iter
|  $10 = (struct pollfd *) 0x788c70bc3010
|  (gdb) p last_iter
|  $9 = (struct pollfd *) 0x788c70bc3018
|  (gdb) p ev
|  $11 = (struct event *) 0x5a5a5a5a5a5a5a5a
|  (gdb) p all_events
|  $14 = {lh_first = 0x788c70ba70d8}
|  (gdb) p &all_events
|  $15 = (struct {...} *) 0x4db871b0 <all_events>
|  (gdb) p *all_events.lh_first
|  $18 = {ev_link = {le_next = 0x788c70ba7198, le_prev = 0x4db871b0 <all_events>}, ev_fd = 8, ev_write = 1, ev_persistent = 0,
|    ev_handler = 0x4d8047c2 <deferred_write_handler>, ev_arg = 0x788c70ba70c0}
|  (gdb) p *all_events.lh_first.ev_link.le_next
|  $19 = {ev_link = {le_next = 0x788c70ba7018, le_prev = 0x788c70ba70d8}, ev_fd = 7, ev_write = 1, ev_persistent = 0,
|    ev_handler = 0x4d8047c2 <deferred_write_handler>, ev_arg = 0x788c70ba7180}
|  (gdb) p *all_events.lh_first.ev_link.le_next.ev_link.le_next
|  $20 = {ev_link = {le_next = 0x788c70ba7078, le_prev = 0x788c70ba7198}, ev_fd = 9, ev_write = 1, ev_persistent = 0,
|    ev_handler = 0x4d8047c2 <deferred_write_handler>, ev_arg = 0x788c70ba7000}
|  (gdb) p *all_events.lh_first.ev_link.le_next.ev_link.le_next.ev_link.le_next
|  $21 = {ev_link = {le_next = 0x4db87160 <signal_event>, le_prev = 0x788c70ba7018}, ev_fd = 10, ev_write = 1, ev_persistent = 0,
|    ev_handler = 0x4d8047c2 <deferred_write_handler>, ev_arg = 0x788c70ba7060}
|  (gdb) p *all_events.lh_first.ev_link.le_next.ev_link.le_next.ev_link.le_next.ev_link.le_next
|  $22 = {ev_link = {le_next = 0x0, le_prev = 0x788c70ba7078}, ev_fd = 4, ev_write = 0, ev_persistent = 1, ev_handler = 0x4d804430 <signal_read_handler>,
|    ev_arg = 0x0}
|  
|  ev looks strange. Is that some poisoning?

Yes, it was probably freed already.

christos


Home | Main Index | Thread Index | Old Index