Thanks for the reply, Jeffrey.
Ok, I can understand how leaking session handles would cause a read or
write lock, or whatever. However, I thought that untieing the session
hash would release whatever locks the session held -- at the end of the
simple script I untie the hash.
In fact, the script is so simple I don't see where I could be leaking
the handles (but just because _I_ can't see where doesn't mean a whole
lot :)
And finally, to add to my confusion, I can take the test script, change
the form encoding from multipart to x-www-form-urlencoded, and have it
work fine. Change it back to multipart, and it hangs. Any idea there??
Thanks for your attention,
--kip
p.s. I'm including the test script at the end of this message -- there's
probably something obviously wrong that I just can't see...
>
>The problem is that you are leaking session handles. For
>Apache::Session to work, there must be zero references to the session
>hash at the end of the request.
>
>-jwb
>--
>Jeffrey W. Baker * [EMAIL PROTECTED]
>Critical Path, Inc. * we handle the world's email * www.cp.net
>415.808.8807
>
============
Test Script
============
use strict;
use Apache ();
use Apache::Constants qw( :common );
use Apache::Session::DBI;
use CGI();
sub handler {
my $r = shift;
$r->send_http_header("text/html");
my $session_id = CGI::param('session') || undef;
my %session;
my $opts = {
DataSource => 'dbi:mysql:sessions',
UserName => 'nobody',
Password => '',
};
tie %session, 'Apache::Session::DBI', $session_id, $opts;
my $file = CGI::param('upload');
if ($file) {
$session{'file'} = $file;
}
print<<__EOS__;
Apache::Session Test Script<br>
Session ID number is: $session{_session_id}<br>
Storing file: $file<br>
<br>
<form action="http://xxx/secure" enctype="multipart/form-data" method="post">
<!--form action="http://xxx/secure" method="post"-->
Type in your name here:
<input type="file" name="upload"><br>
<input type="submit" value="Go!">
<input type="hidden" name="session" value="$session{_session_id}">
</form>
__EOS__
print "untieing the session...<br>";
untie %session;
}
1;
===============
End Test Script
===============