On 2026/05/19 12:37, Jun Omae wrote:
> Also, win-tests.py with httpd raises 9 failures. I'm currently
> investigating the cause of the failures, but it is unknown yet.
> 
> [[[
> FAIL:  fs-fs-pack-test 5: get/set revprop while packing FSFS filesystem
> FAIL:  fs-fs-pack-test 7: get/set huge packed revprops in FSFS
> FAIL:  fs-fs-pack-test 6: get/set large packed revprops in FSFS
> FAIL:  fs-fs-pack-test 12: set multiple huge revprops in packed FSFS
> FAIL:  fs-fs-pack-test 22: pack with limited memory for metadata
> FAIL:  svnadmin_tests.py 28: 'svnadmin hotcopy --incremental' with packing
> FAIL:  svnadmin_tests.py 40: verify packed with small shards
> FAIL:  svnadmin_tests.py 44: hotcopy progress reporting
> FAIL:  svnfsfs_tests.py 2: load-index in a packed repo
> ]]]
> 

The issue is that "revprops/0/0" file and "revprops/0" directory are
deleted by svnadmin pack in the MSVC build on Windows.

[[[
PS C:\usr\tmp> 
C:\usr\src\subversion\subversion-1.15.0-rc2\out\dist\Release\bin\svnadmin pack 
.\svnrepos
Packing revisions in shard 0...done.
Packing revisions in shard 1...done.
Packing revisions in shard 2...done.

PS C:\usr\tmp> 
C:\usr\src\subversion\subversion-1.15.0-rc2\out\dist\Release\bin\svnadmin 
verify .\svnrepos
* Verifying metadata at revision 0 ...
* Error verifying repository metadata.
svnadmin: E160006: No such packed revision 0

PS C:\usr\tmp> Get-ChildItem -Path .\svnrepos\db\revprops\ -Recurse | FT 
-Property Mode,FullName

Mode  FullName
----  --------
d---- C:\usr\tmp\svnrepos\db\revprops\0.pack
d---- C:\usr\tmp\svnrepos\db\revprops\1.pack
d---- C:\usr\tmp\svnrepos\db\revprops\2.pack
d---- C:\usr\tmp\svnrepos\db\revprops\3
-a--- C:\usr\tmp\svnrepos\db\revprops\0.pack\1.0
-a--- C:\usr\tmp\svnrepos\db\revprops\0.pack\manifest
-a--- C:\usr\tmp\svnrepos\db\revprops\1.pack\10.0
-a--- C:\usr\tmp\svnrepos\db\revprops\1.pack\manifest
-a--- C:\usr\tmp\svnrepos\db\revprops\2.pack\20.0
-a--- C:\usr\tmp\svnrepos\db\revprops\2.pack\manifest
-a--- C:\usr\tmp\svnrepos\db\revprops\3\30
-a--- C:\usr\tmp\svnrepos\db\revprops\3\31
]]]

It occurs only with MSVC toolset v143 (--vsnet-version=2022) and Whole
Program Optimization enabled. It doesn't with v142 (--vsnet-version=2019).

svn_fs_fs__delete_revprops_shard() is built by the optimization to
delete the "revprops/0" directory even if `shard` argument is 0.

Workaround is to disable the optimization.

[[[
--- subversion-1.15.0-rc2.orig/build/generator/templates/vcnet_vcxproj.ezt      
2026-04-26 13:00:12.000000000 +0900
+++ subversion-1.15.0-rc2/build/generator/templates/vcnet_vcxproj.ezt   
2026-05-21 15:14:46.696767100 +0900
@@ -33,7 +33,7 @@
     <ConfigurationType>[config_type]</ConfigurationType>
     <UseDebugLibraries>[is configs.name 
"Debug"]true[else]false[end]</UseDebugLibraries>
     <PlatformToolset>[toolset_version]</PlatformToolset>
-[is configs.name "Release"]    
<WholeProgramOptimization>true</WholeProgramOptimization>
+[is configs.name "Release"]    
<WholeProgramOptimization>false</WholeProgramOptimization>
 [end]  </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
]]]

-- 
Jun Omae <[email protected]> (大前 潤)

Reply via email to