From owner-freebsd-current Mon Jul 1 19:20:27 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 509AB37B400 for ; Mon, 1 Jul 2002 19:20:11 -0700 (PDT) Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by mx1.FreeBSD.org (Postfix) with ESMTP id D69ED43E09 for ; Mon, 1 Jul 2002 19:20:10 -0700 (PDT) (envelope-from julian@elischer.org) Received: from InterJet.elischer.org ([12.232.206.8]) by rwcrmhc52.attbi.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20020702022010.OZFJ8262.rwcrmhc52.attbi.com@InterJet.elischer.org>; Tue, 2 Jul 2002 02:20:10 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id TAA94114; Mon, 1 Jul 2002 19:15:03 -0700 (PDT) Date: Mon, 1 Jul 2002 19:15:02 -0700 (PDT) From: Julian Elischer To: Daniel Eischen Cc: "Andrey A. Chernov" , NAKAJI Hiroyuki , freebsd-current@FreeBSD.ORG Subject: Re: Post-KSE disaster with libc_r In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG I think that gets us a LOT closer! Total tests 212, passed 212, failed 0 ref4# Jul 2 01:52:52 ref4 kernel: pid 330 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:52 ref4 kernel: pid 334 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:52 ref4 kernel: pid 338 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:52 ref4 kernel: pid 342 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:52 ref4 kernel: pid 346 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:52 ref4 kernel: pid 350 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 354 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 358 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 362 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 366 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 370 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 374 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 378 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:53 ref4 kernel: pid 382 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:54 ref4 kernel: pid 386 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:54 ref4 kernel: pid 390 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:54 ref4 kernel: pid 394 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:54 ref4 kernel: pid 398 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:54 ref4 kernel: pid 402 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 406 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 410 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 414 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 418 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 422 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 426 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 430 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:55 ref4 kernel: pid 434 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:56 ref4 kernel: pid 438 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:56 ref4 kernel: pid 442 (guard_b), uid 0: exited on signal 11 (core dumped) Jul 2 01:52:56 ref4 kernel: pid 446 (guard_b), uid 0: exited on signal 11 (core dumped) -------------------------------------------------------------------------- sigsuspend_d 0.00 0.01 0.01 passed -------------------------------------------------------------------------- sigwait_d 0.00 0.01 0.01 *** FAILED *** -------------------------------------------------------------------------- guard_s.pl 0.06 0.88 0.95 *** FAILED *** (30/30 failed) -------------------------------------------------------------------------- propagate_s.pl 0.14 0.07 0.21 *** FAILED *** (1/1 failed) -------------------------------------------------------------------------- Totals 3.34 151.65 154.99 0.00 6 / 9 passed (66.67%) 0.00 0.00 0.00 0.00% -------------------------------------------------------------------------- *** Error code 1 Stop in /usr/src/lib/libc_r/test. in gdb: Breakpoint 1, main (argc=3, argv=0xbfbffc10) at guard_b.c:103 103 assert(pthread_attr_init(&attr) == 0); (gdb) s 98 fprintf(stderr, "Test begin\n"); (gdb) Test begin 100 stacksize = strtoul(argv[1], NULL, 10); (gdb) 101 guardsize = strtoul(argv[2], NULL, 10); (gdb) 103 assert(pthread_attr_init(&attr) == 0); (gdb) 108 assert(pthread_attr_getstacksize(&attr, &def_stacksize) == 0); (gdb) 109 assert(pthread_attr_getguardsize(&attr, &def_guardsize) == 0); (gdb) 110 if (def_stacksize != stacksize) { (gdb) 111 assert(pthread_attr_setstacksize(&attr, stacksize) == 0); (gdb) 112 assert(pthread_attr_getstacksize(&attr, &def_stacksize) == 0); (gdb) 113 assert(def_stacksize == stacksize); (gdb) 115 if (def_guardsize != guardsize) { (gdb) 116 assert(pthread_attr_setguardsize(&attr, guardsize) == 0); (gdb) 117 assert(pthread_attr_getguardsize(&attr, &def_guardsize) == 0); (gdb) 118 assert(def_guardsize >= guardsize); (gdb) 127 args.top = NULL; (gdb) 128 args.cur = 0; (gdb) 129 args.max = (stacksize / FRAME_SIZE) - 1; (gdb) 130 fprintf(stderr, "No overflow:\n"); (gdb) No overflow: 131 assert(pthread_create(&thread, &attr, recurse, &args) == 0); (gdb) warning: Cannot insert breakpoint 0: Error accessing memory address 0xd0d0d0d0: Bad address. (gdb) bt #0 0x0804b820 in _thread_kern_scheduler () #1 0x0804f9eb in _write () #2 0x08059cd1 in __swrite () #3 0x08059ddc in _swrite () #4 0x0805964b in __sflush () #5 0x080595e1 in __fflush () #6 0x08053394 in snprintf () #7 0x08053767 in __vfprintf () #8 0x08075080 in ?? () (gdb) hmmm recompile with -g and statically link with -g'd libc_r.... try again.. get to: at /usr/src/lib/libc_r/uthread/uthread_mutex.c:498 498 if (((*mutex)->m_flags & MUTEX_FLAGS_INITED) == 0) { (gdb) 505 switch ((*mutex)->m_protocol) { (gdb) 508 if ((*mutex)->m_owner == NULL) { (gdb) 510 (*mutex)->m_owner = curthread; (gdb) 513 _MUTEX_ASSERT_NOT_OWNED(*mutex); (gdb) 632 (*mutex), m_qe); (gdb) 682 if (curthread->interrupted != 0) (gdb) 686 _SPINUNLOCK(&(*mutex)->lock); (gdb) 692 _thread_kern_sig_undefer(); (gdb) _thread_kern_sig_undefer () at /usr/src/lib/libc_r/uthread/uthread_kern.c:1042 1042 struct pthread *curthread = _get_curthread(); (gdb) _get_curthread () at /usr/src/lib/libc_r/uthread/uthread_kern.c:1129 1129 if (_thread_initial == NULL) (gdb) 1132 return (_thread_run); (gdb) 1133 } (gdb) _thread_kern_sig_undefer () at /usr/src/lib/libc_r/uthread/uthread_kern.c:1048 1048 if (curthread->sig_defer_count > 1) { (gdb) 1052 else if (curthread->sig_defer_count == 1) { (gdb) 1054 curthread->sig_defer_count = 0; (gdb) 1059 if (_sigq_check_reqd != 0) (gdb) 1066 if (((curthread->cancelflags & PTHREAD_AT_CANCEL_POINT) == 0) && (gdb) 1076 if ((curthread->yield_on_sig_undefer != 0) || (gdb) 168 { (gdb) 171 for (i = 0; i < _SIG_WORDS; i++) { (gdb) 172 if (set->__bits[i]) (gdb) 171 for (i = 0; i < _SIG_WORDS; i++) { (gdb) 172 if (set->__bits[i]) (gdb) 171 for (i = 0; i < _SIG_WORDS; i++) { (gdb) 172 if (set->__bits[i]) (gdb) 171 for (i = 0; i < _SIG_WORDS; i++) { (gdb) 172 if (set->__bits[i]) (gdb) 171 for (i = 0; i < _SIG_WORDS; i++) { (gdb) 174 } (gdb) 168 { (gdb) 1082 } (gdb) mutex_lock_common (mutex=0x8060c74) at /usr/src/lib/libc_r/uthread/uthread_mutex.c:693 693 } while (((*mutex)->m_owner != curthread) && (ret == 0) && (gdb) 696 if (curthread->interrupted != 0 && (gdb) 702 } (gdb) __pthread_mutex_lock (mutex=0x8060c74) at /usr/src/lib/libc_r/uthread/uthread_mutex.c:723 723 } (gdb) hangs.. on console: lock order reversal 1st 0xc03585e0 sched lock (sched lock) @ ../../../kern/subr_trap.c:82 2nd 0xc03c2d80 sio (sio) @ ../../../dev/sio/sio.c:3198 failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() failed to set signal flags proprly for ast() probably due to debugging.. will try again with a breakpoint.. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message