Menu

#6 mkdir on file-repo crashes since svn1130, pysvn 1.9.11

1.0
closed
None
2021-05-16
2020-08-25
No

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.

1 Attachments

Discussion

  • Barry Alan Scott

    • status: open --> accepted
     
  • Barry Alan Scott

    I can repo the problem with your repo from the 7z (please use .zip in future).

     
  • Barry Alan Scott

    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.

     
    • Co-Processor

      Co-Processor - 2021-04-07

      Are there any plans for a new release?

       
  • Co-Processor

    Co-Processor - 2020-09-01

    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.

     
  • Barry Alan Scott

    I've started work on a new release.

     
  • Barry Alan Scott

    • status: accepted --> closed
    • assigned_to: Barry Alan Scott
     
  • Barry Alan Scott

    This is fixed in the 1.19.13 that was released today

     

Log in to post a comment.