inexorgame-obsolete / deprecated-cube-engine-inexor

UNMAINTAINED: Please have a look at the vulkan-renderer
https://inexor.org
zlib License
11 stars 1 forks source link

GitRepositoryManager need multiply tries to clone #483

Closed a-teammate closed 6 years ago

a-teammate commented 6 years ago

If there is no repo media/essential it will create one on first start. afterwards it won't do anything but complain

flex.media.repository.GitRepositoryManager[3069] ERROR: [essential] Failed to get current branch: reference 'refs/heads/master' not found. The repository essential seems to be corrupt

somehow this problem fixed itself after a restart, I dont know why. retrying it with renaming the media/essential folder to media/essentialold resulted in the media/essential repo being created, but same error (and it was still linking the media/essentialold, which i guess is supposed behavior but i note it anyways in here)

But another thing which comes to my recognition is that we do not wait for the media cloning to be fulfilled before we start the instances. We should definitely wait for the essential repos to come up!

a-teammate commented 6 years ago

the problem is (highly probably) that the cloning of git repos is async. If i wait very long after removing the essential repo and before starting the client, it does work. imo it should be sync if the repo is required.

aschaeffer commented 6 years ago

If there is no repo media/essential it will create one on first start. afterwards it won't do anything but complain

Pro tip: Enable debug/verbose logging and see what's happening in detail.

somehow this problem fixed itself after a restart, I dont know why.

I've already implemented fallbacks for interrupted clone processes. It should automatically detect it and also should start cloning again.

retrying it with renaming the media/essential folder to media/essentialold resulted in the media/essential repo being created, but same error (and it was still linking the media/essentialold, which i guess is supposed behavior but i note it anyways in here)

If the media/essential doesn't exist, it creates the folder and starts cloning automatically.

But another thing which comes to my recognition is that we do not wait for the media cloning to be fulfilled before we start the instances. We should definitely wait for the essential repos to come up!

This is an open task somewhere in another issue. Also that Flex should warn the user if you want to exit Flex while cloning is still in progress.

a-teammate commented 6 years ago

hm okay, I think we can agree that this is a critical bug (no error message, just does not work, core functionality)? Hence we should fix that before the release.

I dont know how but the situation that someone just downloaded and compiled inexor, started flex and afterwards it starts core and crashes should never occur (and imo neither the situation "start flex -> nothing happens for a long time, without info -> core starts" since thats error prone, too) Solution suggestions?

Mine would be to make the downloader sync.

a-teammate commented 6 years ago

This has been fixed:

We are not starting up until the media repos are downloaded. It downloads the media repos if not already there and block.

aschaeffer commented 6 years ago

Further enhancement would be to start Inexor Core, initialize RPC, SDL Window and CEF. Then block the initialization until the media repository essential is finally functional. Meanwhile you'll see an progress bar which shows you the download progress and the estimated remaining time.

TODO: create an issue for this

ghost commented 6 years ago

Experiencing two following errors after completions of installation and running of inexor (inexor-flex): Nov 29 19:35:27 flex.media.repository.GitRepositoryManager[1392] ERROR: [additional] Failed to get current branch: reference 'refs/heads/master' not found. The repository additional seems to be corrupt Nov 29 19:35:27 flex.media.repository.GitRepositoryManager[1392] ERROR: [essential] Failed to get current branch: reference 'refs/heads/master' not found. The repository essential seems to be corrupt

a-teammate commented 6 years ago

hm I've just noticed that we didn't correclty publish the newest flex .. :/ see https://git.io/vbkG8 Well, im currently repacking the installer with the newest flex. We'll need to do it in the CI later :/

Anyways @rv4Flyver you can quickfix this with deleting the media, releases and interfaces folders, starting inexor via the shortcut and just wait wait wait until it appears..

ghost commented 6 years ago

@a-teammate, thanks for quick responce, it helps. But on the laptop I currently tested it I've got graphics issues (looks like smth with geometry culling). Have you already changed smth related to visual part of Cube2? Laptop can be considered old it utilize GMA4500M, so it is ok, though pitiful for me. Also I've noticed that configuration is not saved properly .

a-teammate commented 6 years ago

The graphics stack is currently mostly that of Sauerbraten. So it's probably a bug. We are actually even thinking about ways to support a broader range of hardware. But yes if cuts have to be made, we will do them if the benefits are big enough. I'm not so sure in how far we will fix graphics related bugs atm, but a screenshot might still be helpful :)