Re: needs a tester with an SMP 7.0 box

From: Maxim Sobolev <sobomax_at_FreeBSD.org>
Date: Thu, 31 Jan 2008 17:59:04 -0800
On my 2-way SMP 7.0 system (old 2.6 GHz Xeon), the programs segfaults 
constantly:

pid 57965 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58080 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58126 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58123 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58158 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58188 (a.out), uid 1001: exited on signal 11 (core dumped)
pid 58226 (a.out), uid 1001: exited on signal 11 (core dumped)
[etc]

(gdb) bt
#0  0x48086af3 in pthread_sigmask () from /usr/lib/libkse.so.3
#1  0x00000001 in ?? ()
#2  0x48210734 in ?? ()
#3  0x48210700 in ?? ()
#4  0xbf7fcf48 in ?? ()
#5  0x4809cc41 in __error () from /usr/lib/libkse.so.3

Also, I've got the following after having the program run for a while 
(about 30 minutes):

[sobomax_at_noisy /tmp]$ ./a.out
Fatal error 'thread in syncq when it shouldn't be.' at line 1817 in file 
/usr/src/lib/libkse/thread/thr_mutex.c (errno = 0)
Fatal error 'thread in syncq when it shouldn't be.' at line 1817 in file 
/usr/src/lib/libkse/thread/thr_mutex.c (errno = 0)
Fatal error 'Recurse on a private mutex.' at line 1002 in file 
/usr/src/lib/libkse/thread/thr_mutex.c (errno = 22)
Fatal error 'thread in syncq when it shouldn't be.' at line 1817 in file 
/usr/src/lib/libkse/thread/thr_mutex.c (errno = 0)
Fatal error 'Recurse on a private mutex.' at line 1002 in file 
/usr/src/lib/libkse/thread/thr_mutex.c (errno = 22)

I don't see any hanged process or any other anomalities yet, though. The 
program continues running, so that I let you know if I see something else.

-Maxim
P.S. I've compiled the program as follows:

$ cc -pthread testkse.c -o a.out -lkse

Julian Elischer wrote:
> 
> if you have a 7.0 SMP (8 way if possible) box and can stand
> a little  down time, I'm looking for someone to test the following:
> 
> This snippet may freeze the process after a while:
> 
> #include <sys/types.h>
> #include <unistd.h>
> #include <pthread.h>
> 
> void *forker (void *arg) {
>         while (1) {
>                 pid_t pid = fork();
>                 if (pid == 0) {
>                         exit(0);
>                 } else if (pid > 0) {
>                         int status;
>                         waitpid(pid, &status, 0);
>                 } else {
>                         printf("Fork failed\n");
>                         abort();
>                 }
>         }
> }
> 
> int main(void) {
>         int i = 0;
>         for (i = 0; i < 4; i++) {
>                 pthread_t thr;
>                 pthread_create(&thr, NULL, forker, NULL);
>                 pthread_detach(thr);
>         }
> 
>         while(1)
>                 sleep(1000);
> }
> 
> 
> with the following patch applied:
>  http://www.freebsd.org/~julian/kse-7.diff
> it should not.
> 
> can someone with a 7.0 machine please confirm this?
> (requires a recompile of libkse and linking with libkse.)
> (you could call it something else for the test).
> 
> 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
Received on Fri Feb 01 2008 - 01:31:03 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:26 UTC