PDA

View Full Version : [Linux] FantasyGroundsUpdater "launch loop" + workaround



darthlukan
October 24th, 2021, 19:05
Problem


FantasyGrounds.x86_64 fails to launch via "Launch Fantasy Grounds" button in
FantasyGroundsUpdater. Instead, the Updater continues to relaunch with no error message as to why it was unable to launch Fantasy Grounds.


Expected Behavior

Fantasy Grounds launches when clicking "Launch Fantasy Grounds" button in the Updater.


Actual Behavior
The updater will continue to "Loop": When clicking "Launch Fantasy Grounds" the updater screen will close and then return, ad nauseum. This behavior occurs after closing a successful launch of Fantasy Grounds using the workaround below and is subsequently repeatable 100% of the time.


Workaround

Execute the following:


$ rm -rf ~/.smiteworks
$ ./FGUWebInstall.bin
... [Accept License Agreement]
... [In Updater window, click "Launch Fantasy Grounds"]
... [Updater updates as expected, Fantasy Grounds launches]


System Specs



Distro: Fedora 34
Kernel: x86_64 Linux 5.14.9-200.fc34.x86_64
Shell: zsh 5.8
CPU: Intel Core i7-10850H @ 5.1GHz
GPU: Mesa Intel (R) UHD Graphics (CML GT2)
RAM: 31851MiB



Personal Note

Firstly, thank you for providing a Linux client for Fantasy Grounds via Unity! It is much appreciated and the workaround is only a minor inconvenience. Once FGU is up and running, it runs beautifully, so thank you very much!

As a former Game dev who has used Unity for production development, an issue I constantly ran into was unclean file descriptor closing in Unity 3D and games I wrote which relied on loading of local files for state retrieval experienced this same behavior until I hooked into the final stage of Unity's provided shutdown events, where I explicitly had to ensure that all buffers and file descriptors were actually closed prior to engine shutdown. This could also be an issue of FDs being properly closed, but startup routines hang up on reading the last modified timestamp (or use last modified timestamps in some other logic). Either way, if someone points me to a repo with the Linux-specific code for Fantasy Grounds, I don't mind trying to track down root cause of this issue myself in the hopes of submitting a patch to potentially fix it.

Moon Wizard
October 25th, 2021, 05:31
Thanks for the report. I haven't heard this as a general issue, so I wonder if it's related to run on an alternate distro than the supported one? Do you also see this in an Ubuntu environment?

I did a quick check of the code, and every file descriptor opened for load/save in the C# updater code is either encapsulated in a using statement, or specifically closed.

Thanks,
JPG

darthlukan
October 25th, 2021, 18:03
Hi JPG,

No, I haven't tried it on Ubuntu because I have no Ubuntu systems at home. If the file descriptors are as you say, then without seeing code myself I'd just be making bad guesses.

You bring up a good point though, it's supported on Ubuntu and not Fedora distros. I wonder if there's a difference in my home directory that could be causing this? Or maybe because I have selinux set to `enforcing`? Is there additional information I can provide which might assist in narrowing down whether or not this is a distro-specific thing or just something that only I'm experiencing?

Moon Wizard
October 25th, 2021, 18:18
We have had some intermittent reports of issues like this over the last year, but it's not consistent and appears to usually be tied to alternate distros or unique user configurations. That's sort of the main issue in supporting Linux is that the user base is so fractured over different configurations. So, as a developer using a specific game engine with a small team, we try to focus on what the game engine (Unity) specifically supports.

You could try pulling the Unity engine logs after it fails, to see if there is any specific exception noted in the game engine logs.
~/.config/unity3d/SmiteWorks/FGUpdaterEngine/Player.log

Regards,
JPG

talislanta
December 5th, 2021, 07:26
We have had some intermittent reports of issues like this over the last year, but it's not consistent and appears to usually be tied to alternate distros or unique user configurations. That's sort of the main issue in supporting Linux is that the user base is so fractured over different configurations. So, as a developer using a specific game engine with a small team, we try to focus on what the game engine (Unity) specifically supports.

You could try pulling the Unity engine logs after it fails, to see if there is any specific exception noted in the game engine logs.
~/.config/unity3d/SmiteWorks/FGUpdaterEngine/Player.log

Regards,
JPG

I was just having this issue on Ubuntu 18.04.6 LTS. I got around it by going into Settings from the Updated and selecting Force Update. When I did that instead of not downloading anything like it was previously it downloaded the updates, restarted a few times and then finally ended up at the Launcher Page.

I should say I think I was having the same issue. I could install the updater and go through all the login,license steps only the be stuck forever at the Updater. Only by doing what I said above was I able to actually get it to update and move to the Launcher.

Moon Wizard
December 13th, 2021, 21:35
Thanks for the information on how you were able to workaround.

Regards,
JPG