Package: ircd-ircu Version: 2.10.12.10.dfsg1-1 ircd-ircu in the apt repository appears to have been compiled with a value for MAXCONNECTIONS that's larger than what the default Debian configuration will allow:
Processing triggers for man-db ... Setting up ircd-ircu (2.10.12.10.dfsg1-1) ... Starting irc server daemon: ircd-ircuircd fd table too big Hard Limit: 1024 IRC max: 1048572 set MAXCONNECTIONS to a smaller value. It looks like MAXCONNECTIONS can only be set during compile-time. >From irc/s_bsd.c: int init_connection_limits(void) { int limit = os_set_fdlimit(MAXCONNECTIONS); if (0 == limit) return 1; if (limit < 0) { fprintf(stderr, "error setting max fd's to %d\n", limit); } else if (limit > 0) { fprintf(stderr, "ircd fd table too big\nHard Limit: %d IRC max: %d\n", limit, MAXCONNECTIONS); fprintf(stderr, "set MAXCONNECTIONS to a smaller value"); } return 0; } Then from ircd/os_generic.c: int os_set_fdlimit(unsigned int max_descriptors) { #if defined(HAVE_SETRLIMIT) && defined(RLIMIT_FD_MAX) struct rlimit limit; if (!getrlimit(RLIMIT_FD_MAX, &limit)) { if (limit.rlim_max < max_descriptors) return limit.rlim_max; limit.rlim_cur = limit.rlim_max; /* make soft limit the max */ return setrlimit(RLIMIT_FD_MAX, &limit); } #endif /* defined(HAVE_SETRLIMIT) && defined(RLIMIT_FD_MAX) */ return 0; } When rebuilding from source via debuild, the value for MAXCONNECTIONS gets set to 1020 on all systems I have access to. Also tried setting the ulimit to 1048572 in the init script via: ulimit -H -n 1048572 However that causes the system to lag horribly while ircd starts up, apparetly eating a ton of memory, then it exits. The tail end of the 74MiB output from strace -f /etc/init.d/ircd-ircu start is: bind(6, {sa_family=AF_INET, sin_port=htons(6667), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 listen(6, 128) = 0 <snipped for berevity> bind(8, {sa_family=AF_INET6, sin6_port=htons(7007), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 epoll_ctl(0, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8199648, u64=8199648}}) = 0 write(2, "MAXCLIENTS (or MAXCONNECTIONS) is"..., 92) = 92 exit_group(-1) = ? Process 12438 detached So it appears to start up, starts listening to the network, then exits. The system is Debian/lenny on amd64. -- DN Daniel -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org