Does shutting down apache free up your locks? (As an aside, I'm not sure I'll ever get over undef being proper closing of a database connection; it seems so synonomous to free([23]). I expect something like $db->db_close() or something.)
Ed On Thu, 21 Mar 2002, Dan Wilga wrote: > At 2:03 PM -0500 3/21/02, Aaron Ross wrote: >> >>> I'm testing with the Perl script below, with the filename ending >>> ".mperl" (which, in my configuration, causes it to run as a mod_perl >>> registry script). >> >> I would re-write it as a handler and see if Apache::Registry is partly >>to blame. > > I tried doing it as a handler, using the configuration below (and the > appropriate changes in the source) and the problem persists. So it > doesn't seem to be Registry's fault. > > <Location /dan> > SetHandler perl-script > PerlHandler DanTest > </Location> > > ---- source code ---- > > #!/usr/bin/perl > > package DanTest; > > use strict; > use BerkeleyDB qw( DB_CREATE DB_INIT_MPOOL DB_INIT_CDB ); > > my $dir='/home/httpd/some/path'; > > sub handler { > system( "rm $dir/__db* $dir/TESTdb" ); > > foreach( 1..5 ) { > my $env = open_env($dir); > my %hash; > my $db = open_db( "TESTdb", \%hash, $env ); > untie %hash; > undef $db; > undef $env; > } > print "HTTP/1.1 200\nContent-type: text/plain\n\n"; > print `db_stat -c -h $dir`; > print "\n"; > } > > sub open_env { > my $env = new BerkeleyDB::Env( > -Flags=>DB_INIT_MPOOL|DB_INIT_CDB|DB_CREATE, > -Home=> $_[0], > ); > die "Could not create env: $! ".$BerkeleyDB::Error. "\n" if !$env; > return $env; > } > > sub open_db { > my( $file, $Rhash, $env ) = @_; > my $db_key = tie( %{$Rhash}, 'BerkeleyDB::Btree', > -Flags=>DB_CREATE, > -Filename=>$file, > -Env=>$env ); > die "Can't open $file: $! ".$BerkeleyDB::Error."\n" if !$db_key; > return $db_key; > } > > 1; > > > Dan Wilga [EMAIL PROTECTED] > Web Technology Specialist http://www.mtholyoke.edu > Mount Holyoke College Tel: 413-538-3027 > South Hadley, MA 01075 "Seduced by the chocolate side of the Force" >