mkdir on file-repo crashes since svn1130, pysvn 1.9.11
pysvn is the pythonic interface to subversion
Brought to you by:
barry-scott
pysvn.Client().mkdir with a file URI makes Python 3.8 crash (interpreter aborts) with the following versions:
py38-pysvn-svn1130-1.9.11-2032-Win64
py38-pysvn-svn1106-1.9.12-2041-Win64
py38-pysvn-svn1140-1.9.12-2041-Win64
The last working version we found is py38-pysvn-svn1912-1.9.11-2032-Win64.
Creating a directory via a network URL works in all above tested versions.
I can repo the problem with your repo from the 7z (please use .zip in future).
I know what the problem is...
python 3.8 improved the security of loading DLLs.
SVN libraries by default delay load some DLLs, the ones that are needed for the FS repo for this problem.
Using the os.add_dll_directory() that is supposed to make DLL loading work does not fix this.
Neither does setting the PATH inside python.
If, as was the case with my testing code, the svn DLLs are on the PATH they will load.
But that is not normally the case which leads to python being terminated.
There is more to this as I can get the test cases to pass and yet in the same environment
your example fails.
As a work around you can add the python site-packages\pysvn folder to your PATH.
What I will have to do is rebuild all the binary kits with delayload turned off and do a new release.
Are there any plans for a new release?
Good analysis, thank you. We are currently working with the last version that did not show this problem (see above). We will wait for a new release for upgrading.
I've started work on a new release.
This is fixed in the 1.19.13 that was released today