packwiz / packwiz-installer

An installer for packwiz modpacks, with automatic auto-updating and optional mods! Works well with MultiMC and on servers.
https://packwiz.infra.link/
MIT License
54 stars 23 forks source link

Client mods are still downloaded despite supplying `-s server` in clean instance #16

Closed TechnoSparks closed 2 years ago

TechnoSparks commented 2 years ago

Description

I am having an issue where in a clean environment, packwiz-installer would download client-side mods despite setting argument -s server or --side server when calling the bootstrapper. I notice this when my server crash on startup due to a client-side mod Better Loading Screen

Steps to replicate

Behaviour analysis

Possible fix

Workaround for other users

comp500 commented 2 years ago

I can't seem to replicate this bug if I remove packwiz.json... though it doesn't seem to recognise when the side passed in the command line is different from the cached data in packwiz.json (but that would be fixed by removing packwiz.json). I'm surprised you're getting issues with no packwiz.json - I seem to get more issues with it present but out of date (i.e. when I modify the side field on a file that is already installed).

TechnoSparks commented 2 years ago

Oh no if you are not able to replicate it, then it could be with my setup. I'll try again in a super-duper clean environment maybe in a Linux VM. If it would be of any help, I am on Windows. Forgot to mention that in the original post.

I did however try to nail down on the exact cause by deleting 200+ of my mods (200MB) repeatedly before ultimately opening this issue. Now just after typing this, I realise that I could've been much more efficient by using a small set of mods. Could it be the size of the modpack matters?

I'll report back later when I have ample free time

EDIT: IF you are interested in attempting to replicate based on the pack.toml i made, the address would be https://raw.githubusercontent.com/TechnoSparks/Better-SMC/main/pack.toml

TechnoSparks commented 2 years ago

Hm 😕 I guess I may have embarrassed myself because it now doesn't happen anymore. 😅 I am unable to replicate my own reported issue. I don't understand why I have this anomaly before I opened the issue, the most probable cause would be due to my negligence because I may have not triple-check if -s server is present in my terminal

TechnoSparks commented 2 years ago

OK after trying to backtrack on what I did I think what I experienced ultimately is just what you described:

I seem to get more issues with it present but out of date (i.e. when I modify the side field on a file that is already installed).

Only after when i decided to delete packwiz.json that I most likely have goofed up by missing -s server. But it is strange that when I check terminal history I fail to find an incident where I missed the -s switch. I don't know but I'd like to not think about this anymore because it hurts my head!

TechnoSparks commented 2 years ago

Sorry about the spam! I finally realised the problem i was facing all along is at fault somewhere with packwiz-installer not acknowledging that pack.toml has changed.

This is because I was trying to replicate your aforementioned issue regarding packwiz.json being out of date. At first, I thought it was GitHub serving stale raw pack.toml, but when I visit the raw file link right after pushing a commit, GitHub served me a correct new file. This raised an eyebrow! When I run the packwiz-installer-bootstrap again, it still does not update to the one's in my repo. After a few inconsistent minutes, I retry again which resulted in packwiz-installer properly sync changes.

Does packwiz-installer (or related dependencies) caches the downloaded pack.toml until a set time?

comp500 commented 2 years ago

Does packwiz-installer (or related dependencies) caches the downloaded pack.toml until a set time?

It doesn't... but you may have hit this bug if the only change you made to the file was the side. I'm working on rewriting the installer code to make it much more reliable and fix these issues.