sdkman/sdkman-cli

Bug: native `uninstall` command fails due to `current link broken, stepping over: The file or directory is not a reparse point. (os error 4390)`

Opened this issue · 0 comments

Bug report
uninstall function is not working properly:

  • I have installed a package:
    $ sdk install java 21.0.2-tem
    
    Downloading: java 21.0.2-tem
    
    In progress...
    
    ##################################################################################################################################### 100.0%
    
    Installing: java 21.0.2-tem
    Done installing!
    
    Setting java 21.0.2-tem as default.
    
  • It is installed:
    $ ls -la .sdkman/candidates/java/
    total 8
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:54 .
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:53 ..
    drwxr-xr-x 1 some-user Brak 0 Jan 17 06:15 21.0.2-tem
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:54 current
    
  • Then uninstalling fails:
    $ sdk uninstall java 21.0.2-tem
    current link broken, stepping over: The file or directory is not a reparse point. (os error 4390)
    removed java 21.0.2-tem.
    
    $ ls -la .sdkman/candidates/java/
    total 4
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:54 .
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:53 ..
    drwxr-xr-x 1 some-user Brak 0 Mar  6 22:54 current
    

💡 It seems only native uninstall implementation is affected - when I removed .sdkman/libexec/uninstall.exe then uninstall command works just fine.

Error message seems to be produced by this error handler: https://github.com/sdkman/sdkman-cli-native/blob/master/src/bin/uninstall/main.rs#L43-L69

To reproduce

⬆️

System info

  • OS (e.g. Windows, Linux, Mac, Cygwin, WSL, etc.) and version: Windows 10 / MSYS_NT-10.0-19045 version 3.4.10.x86_64 (runneradmin@fv-az1258-409) (gcc version 13.2.0 (GCC) ) 2024-02-10 08:39 UTC
  • Shell and version (e.g. bash --version/zsh --version): GNU bash, version 5.2.26(1)-release (x86_64-pc-msys)
  • The output of sdk version:
    SDKMAN!
    script: 5.18.2
    native: 0.4.6