On June 30th 2023, Jesse Rehmer reported in news.software.nntp the following errors:
Jun 29 19:13:43 gatekeeper innd[90655]: free:-1 39 free but was in SMASK
Jun 29 19:13:43 gatekeeper innd[90655]: SERVER cant select: Bad file
descriptor
Jun 29 22:51:18 gatekeeper innd[16269]: CNFS: lseek failed for 'TEXT' offset
0x7c4d40000: Illegal seek
Jun 29 22:51:18 gatekeeper innd[16269]: SERVER cant store article: lseek
failed
Jun 29 22:51:18 gatekeeper innd[16269]: SERVER throttled Illegal seek writing
SMstore file -- throttling
It appears that file descriptors larger than 1024 are used by innd, which corrupts data in memory (fd_set stores information for a maximum of 1024 file descriptors, and calling FD_SET on the fd_set for reading sockets modifies the adjacent fd_set in memory for sleeping sockets).
Several changes should be done:
do not select(2) on more than FD_SETSIZE file descriptors;
provide a way to increase FD_SETSIZE at build time (waiting for switching INN to libevent...);
improve documentation for file descriptors (in INSTALL and rlimitnofile in inn.conf).
On June 30th 2023, Jesse Rehmer reported in news.software.nntp the following errors:
It appears that file descriptors larger than 1024 are used by innd, which corrupts data in memory (
fd_set
stores information for a maximum of 1024 file descriptors, and callingFD_SET
on thefd_set
for reading sockets modifies the adjacentfd_set
in memory for sleeping sockets).Several changes should be done:
select(2)
on more thanFD_SETSIZE
file descriptors;FD_SETSIZE
at build time (waiting for switching INN to libevent...);rlimitnofile
in inn.conf).