[255] in Pthreads mailing list archive

home help back first fref pref prev next nref lref last post

accept on FreeBSD 2.1

daemon@ATHENA.MIT.EDU ("John H. Aughey")
Tue Feb 6 21:57:10 1996

To: pthreads@MIT.EDU
Date: Tue, 06 Feb 1996 21:34:05 -0500
From: jha@cs.purdue.edu ("John H. Aughey")

accept() causes pthreads under FreeBSD to PANIC.  Here's a simple
program which causes the PANIC.

#include <stdio.h>
#ifdef PTHREAD
#include <pthread.h>
#endif
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>

#define PORT 4096

int main()
{
        int sockfd, fd,len;
        struct sockaddr_in addr;
        sockfd=socket(AF_INET,SOCK_STREAM,0);
        bzero((char *) &addr, sizeof(addr));
        addr.sin_family = AF_INET;
        addr.sin_addr.s_addr = htonl(INADDR_ANY);
        addr.sin_port = htons(PORT);

        bind(sockfd,(struct sockaddr *) &addr, sizeof(addr));
        listen(sockfd,5);

        len=sizeof(addr);
        fd=accept(sockfd,(struct sockaddr *)&addr,&len);
        printf("connect from %s\n",inet_ntoa(addr.sin_addr));
        close(fd);
        close(sockfd);
}

The backtrace shows the following:
Starting program: /home/jha/src/ipfunnel/a.out 

Program received signal SIGABRT, Aborted.
0x808aee5 in kill ()
(gdb) bt
#0  0x808aee5 in kill ()
#1  0x808a87c in abort ()
#2  0x7a8e in fd_kern_poll ()
    at /scsi0/pthreads/src/pthreads-1_60_beta4_1/pthreads/fd_kern.c:135
#3  0x6b1f in context_switch ()
    at /scsi0/pthreads/src/pthreads-1_60_beta4_1/pthreads/signal.c:111
#4  0x6ebc in sig_handler (sig=26)
    at /scsi0/pthreads/src/pthreads-1_60_beta4_1/pthreads/signal.c:292
#5  0x7240 in pthread_resched_resume (state=PS_FDR_WAIT)
    at /scsi0/pthreads/src/pthreads-1_60_beta4_1/pthreads/signal.c:519
#6  0x939f in accept (fd=3, name=0x36bb8, namelen=0x36bc8)
    at /scsi0/pthreads/src/pthreads-1_60_beta4_1/pthreads/fd_kern.c:1162
#7  0x16b5 in func ()
#8  0xe7da in machdep_pthread_start ()
    at /p/pthreads/src/pthreads-1_60_beta4_1/machdep.c:131

This code works correctly on a sun4-sos4 machine.

-John

home help back first fref pref prev next nref lref last post