HttpRafa / modflared

Automatically connects you to a Cloudflare tunnel without having to install cloudflared separately.
MIT License
41 stars 6 forks source link

Linux binary download/setup problem #43

Closed LukeMech closed 2 months ago

LukeMech commented 3 months ago

Describe the bug Modflared not working on linux, it fails to download package and set required permissions.

Which version of the mod/game are you using? 1.20.1, 1.2.0+release.61, from modrinth, sklauncher on jre 18 and 22

To Reproduce Steps to reproduce the behavior:

  1. Start game on linux
  2. Try joining any cloudflare tunneled server
  3. See joining error

Expected behavior Should work ;p

Additional context Log says

java.util.concurrent.CompletionException: java.lang.IllegalStateException: Failed to download cloudflared binary
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.IllegalStateException: Failed to download cloudflared binary
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:133) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more
Caused by: java.io.IOException: Cannot run program "chmod" (in directory "/home/lukemech/.minecraft/yayy/modflared/bin"): error=13, Brak dostępu
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?]
        at de.rafael.modflared.download.CloudflaredVersion.syncDownloadFile(CloudflaredVersion.java:158) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:120) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more
Caused by: java.io.IOException: error=13, Brak dostępu
        at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?]
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:314) ~[?:?]
        at java.lang.ProcessImpl.start(ProcessImpl.java:244) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?]
        at de.rafael.modflared.download.CloudflaredVersion.syncDownloadFile(CloudflaredVersion.java:158) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:120) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more

After that there is existing ~37MiB file in modflare/bin/, without chmod permissions set. Tried to run on steam deck (jre 18 downloaded) and on other pc in arch linux (with jre package 22 installed)

On windows it's working as should ;p Hope it gets fixed soon

LukeMech commented 3 months ago

Well, the fun fact is, in the Crystal launcher everything works properly - so it looks like there must be problem with accessing some files on sklauncher, probably not really this mod bug, but if you can take a look I'll be grateful

HttpRafa commented 3 months ago

It seems that it really isn't Modflared's fault. I tried to reproduce it on my NixOS computer with PrismLauncher and JDK 21 and it works fine for me. There are some launchers and JREs that don't work with Modflared. Linux examples: https://github.com/HttpRafa/modflared/issues/31 probably also a problem with the launcher. Windows: https://github.com/HttpRafa/modflared/issues/33 Curseforge Vanilla Launcher doesn't work

HttpRafa commented 3 months ago

Describe the bug Modflared not working on linux, it fails to download package and set required permissions.

Which version of the mod/game are you using? 1.20.1, 1.2.0+release.61, from modrinth, sklauncher on jre 18 and 22

To Reproduce Steps to reproduce the behavior:

  1. Start game on linux
  2. Try joining any cloudflare tunneled server
  3. See joining error

Expected behavior Should work ;p

Additional context Log says

java.util.concurrent.CompletionException: java.lang.IllegalStateException: Failed to download cloudflared binary
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.IllegalStateException: Failed to download cloudflared binary
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:133) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more
Caused by: java.io.IOException: Cannot run program "chmod" (in directory "/home/lukemech/.minecraft/yayy/modflared/bin"): error=13, Brak dostępu
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?]
        at de.rafael.modflared.download.CloudflaredVersion.syncDownloadFile(CloudflaredVersion.java:158) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:120) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more
Caused by: java.io.IOException: error=13, Brak dostępu
        at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?]
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:314) ~[?:?]
        at java.lang.ProcessImpl.start(ProcessImpl.java:244) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?]
        at de.rafael.modflared.download.CloudflaredVersion.syncDownloadFile(CloudflaredVersion.java:158) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at de.rafael.modflared.download.CloudflaredVersion.lambda$downloadFile$5(CloudflaredVersion.java:120) ~[modflared-1.2.0+release.61.jar%23242!/:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
        ... 4 more

After that there is existing ~37MiB file in modflare/bin/, without chmod permissions set. Tried to run on steam deck (jre 18 downloaded) and on other pc in arch linux (with jre package 22 installed)

On windows it's working as should ;p Hope it gets fixed soon

It seems that your Minecraft does not have enough rights to execute chmod. "Brak dostępu"(Lack of access)

LukeMech commented 3 months ago

Yea, that's why I changed permissions for java and .minecraft dirs, by settng in the kde file manager that everyone has full read&write access, also exec permissions for every executable, it didn't help and that's why I wrote bug report here - but looks like it's not the mod fault

HttpRafa commented 2 months ago

Setting it up won't fix it because it's probably launcher dependent.

HttpRafa commented 2 months ago

Closing it as not planned if something changes jsut reopen it :)