...
I should add, that messages in error.log are:
"client stopped connection before rvputs completed"
Regards
Holger
____________________________________________________________________
|
| Holger Zeinert - Development Manager CAE Division
|____________________________________________________________________
| LMS Deutschland GmbH - tel +49 631 4166-180, fax -166
| Luxemburger Str. 7, 67657 Kaiserslautern, GERMANY
| mailto:[EMAIL PROTECTED] http://www.lmsintl.com
> -----Original Message-----
> From: Zeinert, Holger
> Sent: Sunday, December 08, 2002 7:33 PM
> To: Craig Huckabee
> Cc: [EMAIL PROTECTED]
> Subject: RE: Apache / mod_dtcl crashing under W2K
>
>
> Hi,
>
> here is a way how I can repeat the crash. First, a page
> accessing the global variables ENVS, COOKIES, ... is needed:
>
> page.ttml:
>
> <?
> puts "<html><body>"
> puts "<h1>top</H1>"
> puts "<br><br>"
>
> hgetvars
> append message "COOKIES:<br>"
> foreach a [array names COOKIES] {
> append message "COOKIES($a)=$COOKIES($a)<br>"
> }
> foreach a [array names CLIENT_ENVS] {
> append message "CLIENT_ENVS($a)=$CLIENT_ENVS($a)<br>"
> }
> foreach a [array names ENVS] {
> append message "ENVS($a)=$ENVS($a)<br>"
> }
> foreach a {HTTP_COOKIE} {
> if {[info exist ENVS($a)]} {
> append message "ENVS($a)=$ENVS($a)<br>"
> }
> }
> foreach a [array names env] {
> append message "env($a)=$env($a)<br>"
> }
> puts "<b>ENVS:</b>"
> foreach a [array names ENVS] {
> puts "ENVS($a) = $ENVS($a)<br>"
> }
> puts $message
>
>
> puts "</body></html>"
>
> ?>
>
> The configuration of apache is "ThreadsPerChild 50". To
> produce a high load and multiple accesses, I use another tcl
> script to access this page over and over again:
>
> test_server_under_load.tcl:
>
> package require http
>
> set nr 0
> set ref -1
>
> set url "http://localhost/top.ttml"
>
> puts "Using URL: $url \n"
>
> puts "Starting Tests....\n\n"
>
> while {1} {
> incr nr
> set token [http::geturl $url]
> # puts [http::data $token]
>
> set size [string length [http::data $token]]
> if {$ref == -1} {set ref $size}
>
> puts -nonewline " $nr request => $size ($ref) "
>
> if {$size != $ref} {
> puts "##########################"
> set fp [open [clock seconds].html w]
> puts $fp [http::data $token]
> close $fp
> } else {
> puts ""
> }
> http::cleanup $token
> }
>
> exit
>
>
> The idea of the script is to request a page, store the size
> in bytes and request the page again and again. Everytime the
> size of the page differs from the the first call, the page is
> written into the current directory and a bar
> "###################" is written to stdout.
>
> If I run this script using
>
> tclsh test_server_under_load.tcl
>
> in one Windows Command Prompt, everything is fine. As soon as
> I start it in parallel in one or two other Command Prompts,
> all logs show the bars ############ with either size 0 or
> with missing data of ENVS, COOKIES, ...
> After some time, also crashes of apache.exe occur. As soon as
> I switch the apache configuration back to "ThreadsPerChild
> 1", no bars ########## and no crashes occur anymore.
>
> In this test, all is executed locally on my notebook: apache
> server and tcl script accessing the server.
>
> Still, this will be difficult to debug, I guess...
>
> Hope this helps!
> Holger
> ____________________________________________________________________
> |
> | Holger Zeinert - Development Manager CAE Division
> |____________________________________________________________________
> | LMS Deutschland GmbH - tel +49 631 4166-180, fax -166
> | Luxemburger Str. 7, 67657 Kaiserslautern, GERMANY
> | mailto:[EMAIL PROTECTED] http://www.lmsintl.com
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]