needs a tester with an SMP 7.0 box
Maxim Sobolev
sobomax at FreeBSD.org
Thu Jan 31 18:31:03 PST 2008
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"
>
More information about the freebsd-current
mailing list