Hello!

On Sunday 08 March 2009 02:51:21 Gustaf Neumann wrote:
> Dear Alexey,
>
> below is a fix for the nsproxy problem that you reported.
> The problem comes from a different initialization semantics
> in Tcl 8.5, that hits the nsproxy binary. The added call
> should work with Tcl 8.4 as well; please report back
> such i can commit the fix to CVS.

Patch really did solve the problem. I did test AOL4.5.1+Tcl8.5.6 build on one 
my low-loaded productions server by 4 hour now and this work. Thank you very 
much!

But I did find a few additional problems:

1. Some queries to nsproxy processes may produce zombie:

[08/Mar/2009:04:40:30][16835.3054869392][-nsproxy:close-] Warning: [shell]: 
process 16961 won't die - sending sig 15
[08/Mar/2009:04:40:30][16835.3054869392][-nsproxy:close-] Warning: [shell]: 
process 16961 won't die - sending sig 9
[08/Mar/2009:04:40:30][16835.3054869392][-nsproxy:close-] Warning: zombie: 
16961

$ ps aux|grep 16961
www-data 16961  0.0  0.0      0     0 ?        Z    04:40   0:00 [nsproxy] 
<defunct>

$ ps aux|grep nsproxy
www-data 13956  0.0  0.0  11628  1952 ?        Sl   Mar07   0:00 
/usr/lib/aolserver4/bin/nsproxy shell shell-proxy-1  print_doc 
/tmp/fileCG1rsX/doc.odt} h {exec abiword $filename -t pdf} errmsg??catch {exec 
so ...}
www-data 16961  0.0  0.0      0     0 ?        Z    04:40   0:00 [nsproxy] 
<defunct>
www-data 17076  0.0  0.0  14316  2464 ?        Sl   04:41   0:00 
/usr/lib/aolserver4/bin/nsproxy shell shell-proxy-0  print_pdf 
/tmp/filexUJQil/doc.odt} h {exec abiword $filename -t pdf} errmsg??catch {exec 
so ...}
veter    17535  0.0  0.0   3908   736 pts/0    S+   04:44   0:00 grep nsproxy
www-data 24669  0.0  0.0      0     0 ?        Z    Mar07   0:00 [nsproxy] 
<defunct>
www-data 24834  0.0  0.0  11628  1952 ?        Sl   Mar07   0:00 
/usr/lib/aolserver4/bin/nsproxy shell shell-proxy-0  print_pdf 
/tmp/fileYqgllZ/doc.odt} h {exec abiword $filename -t pdf} errmsg??catch {exec 
so ...}

The problem is exists as for tcl8.5 as tcl8.4 builds of AOL+nsproxy.


2. Proxy processes have infinite live time and "waittimeout" is ignored.

I did start nsproxy some days ago on my production server and one process 
exists now (tcl 8.4).
Now I'm testing nsproxy with tcl 8.5.

I did try
ns_proxy config myproxy -max 1 -getimeout 2000 -evaltimeout 4000

And I'm get result as:

[08/Mar/2009:04:04:21][16518.3060349840][-nssock:driver-] Notice: nssock: 
listening on 10.0.2.15:8000
[08/Mar/2009:04:04:25][16518.3060210576][-default:0-] Notice: random: 
generating 1 seed
[08/Mar/2009:04:04:25][16518.3060210576][-default:0-] Notice: encoding: 
loaded: utf-8
proxy pid: 16528
main pid: 16518
195.122.250.12 - - [08/Mar/2009:04:04:25 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:04:25 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535
proxy pid: 16528
main pid: 16518
195.122.250.12 - - [08/Mar/2009:04:05:19 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:05:19 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535
[08/Mar/2009:04:07:04][16518.3060210576][-default:0-] Notice: exiting: timeout 
waiting for connection
proxy pid: 16528
main pid: 16518
195.122.250.12 - - [08/Mar/2009:04:07:16 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:07:17 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535
proxy pid: 16528
main pid: 16518
195.122.250.12 - - [08/Mar/2009:04:08:08 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:08:08 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535

But default waittimeout must be equal to 100ms as described in 
http://panoptic.com/wiki/aolserver/Nsproxy

And I did try

ns_proxy config myproxy -max 1 -getimeout 2000 -evaltimeout 4000 -waittimeout 
1000

[08/Mar/2009:04:11:31][16545.3060657040][-nssock:driver-] Notice: nssock: 
listening on 10.0.2.15:8000
[08/Mar/2009:04:11:33][16545.3060517776][-default:0-] Notice: random: 
generating 1 seed
[08/Mar/2009:04:11:34][16545.3060517776][-default:0-] Notice: encoding: 
loaded: utf-8
proxy pid: 16555
main pid: 16545
195.122.250.12 - - [08/Mar/2009:04:11:34 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:11:34 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535
proxy pid: 16555
main pid: 16545
195.122.250.12 - - [08/Mar/2009:04:11:51 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:11:52 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535
proxy pid: 16555
main pid: 16545
195.122.250.12 - - [08/Mar/2009:04:12:48 +0300] "GET 
/main.adp?menu=extension_reports_payments HTTP/1.1" 200 12096
195.122.250.12 - - [08/Mar/2009:04:12:49 +0300] "GET /styles/main/main.css 
HTTP/1.1" 404 535

So waittimeout is ignored. Am I right?

APD page code have section

ns_adp_puts [\
with-proxy myproxy {
        puts "proxy pid: [ns_info pid]"
}]
puts "main pid: [ns_info pid]"

I did write wrapper for proxy as

proc with-proxy {proxy code} {
    set handle [ns_proxy get $proxy]
    set result [ns_proxy eval $handle $code]
    ns_proxy release $handle
    return $result
}

Infinite live time for proxy process is not problem but this behaviour is not 
equal to documented.


Best regards.


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to 
<lists...@listserv.aol.com> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to