<div dir="ltr"><div><div><div>Yeah,mistaken - squid 3.5.22<br><br></div>nfds=284, so loop ends on 283 and pfds[283] is buggy<br><br></div>I/o module is  src/comm/ModPoll.cc, method Comm::<wbr>DoSelect(int msec)<br><br></div><div>On stack we see that pfds[SQUID_MAXFD=256], so is less than nfds in loop.<br><br></div><div>May be malloc nfds? <br></div><br><div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2016-10-18 8:29 GMT+03:00 Amos Jeffries <span dir="ltr"><<a target="_blank" href="mailto:squid3@treenet.co.nz">squid3@treenet.co.nz</a>></span>:<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">FYI: Squid-3.5.23 does not exist yet. What is the output of "squid -v" ?<br>
<span class="gmail-"><br>
On 18/10/2016 5:01 a.m., oleg gv wrote:<br>
> I have big traffic (at least 100 computers) , and squid often crashed in<br>
> Comm::DoSelect(int msec) function.<br>
> I have interception mode and NAT redirect.<br>
><br>
> In coredump I saw then bug is in next fragment of code:<br>
><br>
> 446│         for (size_t loopIndex = 0; loopIndex < nfds; ++loopIndex) {<br>
> 447│             fde *F;<br>
> 448│             int revents = pfds[loopIndex].revents;<br>
> 449│             fd = pfds[loopIndex].fd;<br>
> 450│<br>
> 451│             if (fd == -1)<br>
> 452│                 continue;<br>
> 453│<br>
> 454├>            if (fd_table[fd].flags.read_<wbr>pending)<br>
> 455│                 revents |= POLLIN;<br>
><br>
> SIGSEGV occured often (about 1 time in a minute) in line 454 : fd=-66012128<br>
> , loopindex=283<br>
><br>
> (gdb) p pfds[282]<br>
> $17 = {fd = 291, events = 64, revents = 0}   -- looks ok<br>
><br>
> (gdb) p pfds[283]<br>
> $18 = {fd = -66012128, events = 32595, revents = 0}  -- looks strange and<br>
> spoiled<br>
><br>
> (gdb) p Biggest_FD<br>
> $19 = 292<br>
><br>
<br>
</span>What is the nfds value ?<br>
<br>
It looks to me like only 282 FD have operations to perform on this I/O<br>
cycle.<br>
<br>
What I/O module is being used?<br>
<br>
 src/comm/ModDevPoll.cc:Comm::<wbr>DoSelect(int msec)<br>
 src/comm/ModPoll.cc:Comm::<wbr>DoSelect(int msec)<br>
<br>
<br>
Amos<br>
<br>
______________________________<wbr>_________________<br>
squid-dev mailing list<br>
<a href="mailto:squid-dev@lists.squid-cache.org">squid-dev@lists.squid-cache.<wbr>org</a><br>
<a target="_blank" rel="noreferrer" href="http://lists.squid-cache.org/listinfo/squid-dev">http://lists.squid-cache.org/<wbr>listinfo/squid-dev</a><br>
</blockquote></div><br></div></div></div></div></div></div></div>