Accept is freezing on me

Posted by Zeno on Fri 27 Jun 2008 12:43 PM — 1 posts, 10,485 views.

USA #0
So I moved to a new server and accept() seems to freeze on me.

Here is the MUD when it is frozen:
#0  0xb7fe57f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0xb7ddfec1 in accept () from /lib/libc.so.6
#2  0x081f847e in handle_web () at web-server.c:172
#3  0x080e12d0 in game_loop () at comm.c:1183
#4  0x080e04fe in main (argc=2, argv=0xbfca4f64) at comm.c:626



#2  0x081f847e in handle_web () at web-server.c:172
172                 if((current->fd = accept(sockfd, (struct sockaddr *)&(current->their_addr), &(current->sin_size))) == -1) {
(gdb) list
167                    of code .. no. --GW */
168                 CREATE( current, WEB_DESCRIPTOR, 1 );
169                 current->sin_size  = sizeof(struct sockaddr_in);
170                 current->request[0] = '\0';
171
172                 if((current->fd = accept(sockfd, (struct sockaddr *)&(current->their_addr), &(current->sin_size))) == -1) {
173                     perror("web-accept");
174                     exit(1);
175                 }
176


I can return out of that using gdb... but other than that I have no idea how to fix it.