Randy Kobes wrote:
On Wed, 14 Mar 2007, Steve Hay wrote:
I tried your patch with the current svn version (revision 518242), but
I'm still seeing intermittent failures (usually in tests 15, 16 and/or
20) either when I run "nmake test" from the top-level, or when I run:
perl -Iblib/arch -Iblib/lib t/TEST -verbose=1 t/apreq/upload.t from
the glue/perl sub-directory :-( I'm running perl-5.8.8, apache-2.2.2
and mod_perl-2.0.3 (RC3, I think). Do I need to update anything there?
I don't think so - I ran the tests against essentially the
same setup, and didn't see any failures when run a number
of times.
Perhaps just to narrow things down, could you try the
attached C file (a VC++ Makefile is also attached)?
This uses the relevant parts of libapreq2 to create
and cleanup a temp file; the Makefile produces 4 .exes:
apr_temp: don't enable APR_FILE_NOCLEANUP nor
APR_SHARELOCK
apr_temp_nc: enable only APR_FILE_NOCLEANUP
apr_temp_sh: enable only APR_SHARELOCK
apr_temp_nc_sh: enable both APR_FILE_NOCLEANUP and
APR_SHARELOCK
These are run, for example
apr_temp 20
which will go in a loop and create, and then remove, 20
temp files (with no arguments, the default is 10.
Are there any problems with the cleanup in any of these?
If not, then it looks like the problem is somewhere
within the Perl glue.
Apologies for the slow response.
I ran each program with an argument of 500 for good measure. All four
programs successfully create and then delete a large number (presumably
500, I didn't count 'em!) of apreq* temp files.
apr_temp and apr_temp_sh both deleted all those files about as quickly
as they were made (i.e. very quickly), while apr_temp_nc and
apr_temp_nc_sh both output loads of CLEANUP messages in the console
quickly but then seemed to hang for nearly a minute, during which time
loads of apreq* files were visible in the temp directory, and then
eventually exited and all the files disappeared.
--