Date: Mon, 29 Jul 2002 17:31:54 +0200 (CEST) From: Henri Hennebert <hlh@ciger.be> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/41125: squid-2.4.STABLE7 loop on poll() - SMP kernel Message-ID: <200207291531.g6TFVsbl012596@morzine.ciger.be>
next in thread | raw e-mail | index | archive | help
>Number: 41125 >Category: kern >Synopsis: squid-2.4.STABLE7 loop on poll() - SMP kernel >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jul 29 08:40:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Henri Hennebert <hlh@ciger.be> >Release: FreeBSD 4.6-STABLE i386 >Organization: CIGER sa >Environment: System: FreeBSD morzine.ciger.be 4.6-STABLE FreeBSD 4.6-STABLE #0: Fri Jul 12 17:38:36 CEST 2002 root@morzine.ciger.be:/usr/obj/usr/src/sys/MORZINE i386 >Description: I'm running squid 2.4.STABLE7 (configured and compiled 'by hand' - not from ports) on a SMP configuration. All seems normal until squid start to loop and use 100% of a CPU. After a while, all return to normal and top shows squid in poll state. Then 100% again... I truss squid several times for 4-5 secs when in 100% CPU and get the following result: --- snip --- poll(0xbfbfc13c,0x4b,0x0) = 2 (0x2) read(0x43,0x961f000,0xfff) = 0 (0x0) read(0x71,0x96e1000,0xfff) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) poll(0xbfbfc13c,0x4b,0x0) = 2 (0x2) read(0x43,0x961f000,0xfff) = 0 (0x0) read(0x71,0x96e1000,0xfff) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) poll(0xbfbfc13c,0x4b,0x0) = 2 (0x2) read(0x43,0x961f000,0xfff) = 0 (0x0) read(0x71,0x96e1000,0xfff) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) poll(0xbfbfc13c,0x4b,0x0) = 2 (0x2) read(0x43,0x961f000,0xfff) = 0 (0x0) read(0x71,0x96e1000,0xfff) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) gettimeofday(0x8164efc,0x0) = 0 (0x0) SIGNAL 27 SIGNAL 27 gettimeofday(0x8164efc,0x0) = 0 (0x0) gettimeofday(0x281c282c,0x0) = 0 (0x0) sigprocmask(0x3,0x281c28b8,0x0) = 0 (0x0) sigaltstack(0x281de9e0,0x0) = 0 (0x0) sigreturn(0x81f6064) = 0 (0x0) poll(0xbfbfbf14,0x1,0x0) = 0 (0x0) poll(0xbfbfc13c,0x4b,0x0) = 2 (0x2) read(0x43,0x961f000,0xfff) = 0 (0x0) read(0x71,0x96e1000,0xfff) = 0 (0x0) --- snip --- During the same 100% period, the other truss sampling show poll call return 3, 4, 3, 2, ... Squid is using 3 cache dirs with async io (aufs). I try sync io (ufs) and disk daemon (diskd) to no avail. It seems that it's not related to the squid load (average 120 req/min). The 100% period is at least 4-5 minutes long. I never encounter this situation when running squid on a mono- processor config (at least since FreeBSD 3.2 and squid-2.2). Is it a problem with SMP / poll() ? >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207291531.g6TFVsbl012596>
