I'm in the process of preparing a new mod_perl release and have run into a few test failures on Windows 10 which are caused by apr_stat() sometimes returning APR_INCOMPLETE (70008).
The call stack from mod_perl into libapr-1.dll is here: > libapr-1.dll!more_finfo(apr_finfo_t * finfo, const void * ufile, int wanted, > int whatfile) Line 403 C libapr-1.dll!apr_file_info_get(apr_finfo_t * finfo, int wanted, apr_file_t * thefile) Line 561 C libapr-1.dll!resolve_ident(apr_finfo_t * finfo, const char * fname, int wanted, apr_pool_t * pool) Line 161 C libapr-1.dll!apr_stat(apr_finfo_t * finfo, const char * fname, int wanted, apr_pool_t * pool) Line 618 C Finfo.dll!mpxs_APR__Finfo_stat(interpreter * my_perl, const char * fname, int wanted, sv * p_sv) Line 25 C Finfo.dll!XS_APR__Finfo_stat(interpreter * my_perl, cv * cv) Line 43 C The return at the end of more_finfo() is return ((wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS); in which I have wanted = 7536640 and finfo->valid = 1306992, so (wanted & ~finfo->valid) = 6291456, so it returns APR_INCOMPLETE (70008). The file in question is just a regular plain text file. In fact, it's httpd's own httpd.conf file, which is generated by the mod_perl test suite. I can reproduce the problem using a short perl program: use strict; use warnings FATAL => 'all'; use APR::Finfo (); use APR::Pool (); use APR::Const -compile => qw(FINFO_NORM); my $file = "D:\\Dev\\Temp\\mp2\\mod_perl-2.0.11-rc1\\t\\conf\\httpd.conf"; my $pool = APR::Pool->new(); my $finfo = APR::Finfo::stat($file, APR::Const::FINFO_NORM, $pool); Weirdly, if I simply make a copy of the httpd.conf file and point the above program at that copy instead of the original then it works fine. I'm only getting this on Windows 10. If I run the same build of everything on Windows 7 then everything is fine. I've built everything from scratch with VS2019. I get the same behaviour with VS2015. I'm using apr-1.7.0 / apr-util-1.6.1. Is it worth trying the latest dev versions? Does anyone have any ideas what could be going wrong here? I tried doing a build of APR with -DAPR_BUILD_TESTAPR=on but the build fails: [ 54%] Linking C executable testall.exe LINK Pass 1: command "C:\PROGRA~2\MICROS~1\201916~1.1\PROFES~1\VC\Tools\MSVC\1421~1.277\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\testall.dir\objects1.rsp /out:testall.exe /implib:testall.lib /pdb:D:\Dev\Temp\test\apr-1.7.0\testall.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console libapr-1.lib ws2_32.lib mswsock.lib rpcrt4.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\testall.dir/intermediate.manifest CMakeFiles\testall.dir/manifest.res" failed (exit code 1120) with the following output: abts.c.obj : error LNK2001: unresolved external symbol testencode testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_read64 referenced in function busyloop_read64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_set64 referenced in function busyloop_set64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_add64 referenced in function busyloop_add64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_sub64 referenced in function busyloop_sub64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_inc64 referenced in function busyloop_inc64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_dec64 referenced in function busyloop_dec64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_cas64 referenced in function busyloop_cas64 testatomic.c.obj : error LNK2019: unresolved external symbol __imp_apr_atomic_xchg64 referenced in function busyloop_xchg64 testall.exe : fatal error LNK1120: 9 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019 16.1\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"' : return code '0xffffffff' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019 16.1\Professional\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019 16.1\Professional\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop.