It seems concurrent access to same cgi script blocks server
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6366
Reported by Eiichiro ITANI, emu@ceres.dti.ne.jp
I'm testing Roxen5.2.200, on Debian GNU/Linux squeeze i686, with external postgres DB. I still have not inspected the problem/cause deeply yet. But when Roxen 5.2 getting concurrent access to (same?) cgi script, server seems to blocked for a few seconds.
Most of time server seems run very smoothly, but sometimes it stucks for less than 10 seconds, unexpectedly and repeatedly. Access log while this stucking occures always have entry accessing one cgi script from two or three hosts.
That cgi is for server health checking, and it finishes in less than 0.1 seconds normally.
Typical access log is like this. From left most column, those are $request-time, $queue-time, $queue-length and $resource.
prcess queued inque resource 0.0025 0.0001 0 /rec/trace.png?page=disp&QUERYCENSORED 0.0035 0.0001 0 /javascript/cdj_rate_func.js 0.0165 0.0001 0 /image.html/TOBF-5685 0.0021 0.0001 0 /icons/apparel.gif 0.0030 0.0000 0 /javascript/minmax.js 0.0129 0.0001 0 /image.html/VTCL-35131 0.0029 0.0001 0 /static/images/shopping_cart/cdj/add.gif 0.0173 0.0001 0 /image.html/DAKSPLP-17 0.0072 0.0002 0 /image.html/STE-2106 0.0048 0.0001 0 /javascript/jquery.simpletip-1.3.1.pack.js 0.0345 0.0001 0 /cgi-bin/healthcheck.cgi 0.0071 0.0002 0 /aff/banners/4_Foreign%20Music/yogakubanner_wl.gif 3.9455 3.9332 1 /icons/0203piggybank.gif 3.6989 3.6889 2 /image.html/DAKPSIM-20027 3.1479 3.1272 5 /icons/Translate_mini-02.png 3.4251 3.3908 4 /aff/banners/4_Foreign%20Music/yogakubanner_bs.gif 2.9750 2.9626 7 /aff/tmpl/whatsnew_tmpl.js 3.5463 3.4657 3 //cgi-bin/healthcheck.cgi 2.8933 2.8789 8 /image.html/BVCL-402 2.6963 2.6790 9 /icons/skaterbannar.jpg 3.0739 3.0008 6 /cgi-bin/healthcheck.cgi 3.1249 2.4047 10 /detailview.html?KEY=UICY-75188 2.9153 2.9115 11 /icons/cooljapannow_banner.jpg 2.7710 2.7685 12 /rec/trace.png?page=disp&QUERYCENSORED 2.6185 2.6167 13 /rec/trace.png?page=disp&QUERYCENSORED 2.5003 2.4781 14 /image.html/NEOIPS-187 2.1679 2.1600 15 /image.html?id=AVCK-79046 3.7611 1.9057 16 /goods/list.html?current=252&c2_id=10203 3.0951 3.0720 18 /image.html/NEOBK-62480 2.8486 2.8435 19 /static/javascript/jquery.neowing.js 2.3551 2.3427 9 /javascript/cdj_rate_mst.html 2.1378 2.1353 10 /s/icons/logo90.png 1.5948 1.5870 6 /image.html?id=AVCK-79047 3.5297 3.3634 17 /rec/frame.cgi/detail?KEY=JACA-5325&cat_id=1-CDA 2.1522 1.3970 7 /detailview.html?KEY=VICP-61946 1.7825 1.7799 8 /facebox/bl.png 0.9752 0.9572 10 /javascript/cdj_rate_mst.html 0.5234 0.4935 3 /image.html/AVCD-48395 0.1575 0.1540 4 /javascript/disable_translate_popup.js 1.5973 1.5181 9 /cgi-bin/affclick.cgi?KEY=VICL-63761&QUERYCENSORED 0.0045 0.0001 0 /aff/tmpl/wide_skyscraper160i.js 0.0024 0.0001 0 /icons/home.gif 0.0027 0.0001 0 /icons/movie-em.gif 0.0028 0.0001 0 /icons/calender.gif 0.0026 0.0001 0 /rss/rss.gif 0.0324 0.0001 0 /cgi-bin/healthcheck.cgi 0.0109 0.0001 0 /goods/top_thum/10108.jpg 0.0104 0.0001 0 /goods/top_thum/10312.jpg 0.0028 0.0001 0 /icons/seemore.gif 0.0030 0.0001 0 /icons/add_to_cart.gif 0.0092 0.0001 0 /goods/top_thum/11004.jpg 0.0145 0.0002 0 /icons/banner_pop_bn.gif 0.0030 0.0001 0 /icons/cart_m.gif 0.0055 0.0001 0 /goods/img/icon_stock.jpg 0.0029 0.0001 0 /icons/title-anime.gif 0.0045 0.0001 0 /icons/blog_banner.jpg 0.0033 0.0001 0 /icons/music.gif 10.0684 10.0659 0 /icons/cooljapan.gif 9.6934 9.6905 1 /icons/basket/btn_xpressCheckout.gif 7.7481 7.7177 3 /favicon.ico 9.0612 9.0138 2 /cgi-bin/healthcheck.cgi 9.1006 9.0650 1 /cgi-bin/healthcheck.cgi 9.1496 9.0984 1 /cgi-bin/healthcheck.cgi 5.6912 5.6025 3 /cgi-bin/healthcheck.cgi 4.0667 4.0150 4 //cgi-bin/healthcheck.cgi
Most html resource require many RXML processing and access to external pgsql DB. Image type rosources are just static ones.
When parallel access to healthcheck.cgi occurs, queue-time suddenly rises, and access to other resource seem blocked.
Roxen4.5 doesn't have this problem. So I suspect current cgi-scripting module have lock problem.
Could it be fixed?