I have big traffic (at least 100 computers) , and squid often crashed in
Comm::DoSelect(int msec) function.
I have interception mode and NAT redirect.

In coredump I saw then bug is in next fragment of code:

446│         for (size_t loopIndex = 0; loopIndex < nfds; ++loopIndex) {
447│             fde *F;
448│             int revents = pfds[loopIndex].revents;
449│             fd = pfds[loopIndex].fd;
450│
451│             if (fd == -1)
452│                 continue;
453│
454├>            if (fd_table[fd].flags.read_pending)
455│                 revents |= POLLIN;

SIGSEGV occured often (about 1 time in a minute) in line 454 : fd=-66012128
, loopindex=283

(gdb) p pfds[282]
$17 = {fd = 291, events = 64, revents = 0}   -- looks ok

(gdb) p pfds[283]
$18 = {fd = -66012128, events = 32595, revents = 0}  -- looks strange and
spoiled

(gdb) p Biggest_FD
$19 = 292


Please, could you fix it.
Thanks.
_______________________________________________
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev

Reply via email to