New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client crash (every 3-4 games) #1080
Comments
Until this issue is resolved, you could go back to 0.8.x if the client crashes to often. In this case you may have to change the setting |
The following OpenJDK bugs seem to be similar to this issue, but have been closed as |
Is there anything I can provide / do so this can be properly tracked to the cause and fixed? Just had another crash today. |
Yes, you can provide all As I said it seems to be some Java runtime issue related to JavaScript calls. Extract from your log:
|
Here are the crash files: |
I wonder if that happens more often |
Hmm really bad bug for us because we wont be able to do much about it(most probably) |
Well, the fact that the lobby crashes would not be a problem if it didn't bring down the ICE adapter with it. I suppose for players with public IPs and port forwards this is not critical, since it doesn't influence their game. However for anyone running NAT-T over ICE, client crash brings down ICE, and then the game is dead. (at least according to my current understanding of the FAF architecture) Is there any chance to decouple ICE adapter runtime from the lobby? |
Without the ice adapter a client crash means you're disconnected as all traffic is relayed via the client. Using the adapter we could let it stay open but as there is no client, ice messages won't be forwarded anymore and you couldn't reconnect, reporting scores and maybe disconnecting from players may stop working aswell |
I just had a look at the crash logs. All of the crashes are caused by JavaScript calls (in JSObject) which are needed for the chat functionality. If I am correct and tab unloading/loading on demand is already in the currently released version, I assume you can prevent these calls by just switching to tab „Play“ and staying on this tab while you are in a game. To verify that I would need to have a close look at the related code. |
Chat tabs currently don't unload, and the crash in the reported case happened when calling More logs would be appreciated, in order to see whether it's always the same method that fails. |
There is a link for 5 log files in my 2nd comment on this issue. Is that sufficient or should I provide more? |
Sorry I just saw it :-) thanks a lot As a first step, I'd like to avoid the nested calls to |
Please create a batch file with the following content in the directory where you installed the client (
|
Script would not launch as provided. After that fix, I now get:
|
I adopted the batch script from my bash script and had to remove all the double quotes which I put to prevent issues with spaces. I had to remove them because Windows 7 couldn't cope with them and I usually have no spaces in my paths. The error you now get is exactly because of spaces in your path(s) and double quotes at the incorrect place. I guess the problem is the path |
set faf_program_dir=%~dp0\lib
set java_binary=%~dp0\jre\bin\java
set java_class_path=downlords-faf-client-0.9.3-beta.jar:commons-compress-1.9.jar;.\*;.\
cd "%faf_program_dir%"
"%java_binary%" -cp %java_class_path% -DnativeDir="%faf_program_dir%" -Dprism.dirtyopts=false -Xms128m -Xmx512m -XX:+CreateMinidumpOnCrash -XX:MinHeapFreeRatio=15 -XX:MaxHeapFreeRatio=33 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseStringDeduplication -javaagent:"%faf_program_dir%\webview-patch.jar" -Dsun.java2d.opengl=true com.faforever.client.FafClientApplication
pause
|
I fixed the quotes of the batch content. See my changed comment above. Please give feedback when you successfully ran it. |
So I have been running the lobby using the script for the past 2 weeks (since you posted the original script). I am still running the original script which worked only with a non-spaced path. I have not had a single crash since. Is there anything different about the way the script launches the lobby as compared to just running the .exe? EDIT: As an additional comment - a friend I play with (he is also on 0.9.3 Beta) has also experienced 2 crashes in this time-frame, so it seems this bug is not isolated to me only. |
There should not be anything different @germanicianus right? |
Of course there is a big difference. This is the command which my current script generates on Linux (manually formatted):
These are the JVM arguments from his crash log (jvm_args, manually formatted):
|
Any idea why this would fix the crashes? |
Not exactly. My command is a minimal one and leaves out all unnecessary parameters which means it doesn’t use any path outside of the client directory. Furthermore it doesn’t use the included exe but directly the Java binary. Therefore it is likely that the original command causes loading of a component/library/dll which conflicts with another one. Verifying that needs quite some effort because it means to compare the components loaded by my command with the components indicated as loaded by your crash log. Even this will most likely leave a lot of room because most likely there will be a lot of differences. For the time being just continue using the script. For new client versions just adopt the version number string inside. |
@tomaskir which java version are you using? Would be interesting to know if you have the same issue if you use the one shipped in |
It seems the client ships with Java 10 - so it is possible this is only an issue in Java 10. Any chance for a modification to the script to run with the packaged JRE? |
My script already uses the JRE packaged with the client:
|
what if we use engine.executescript and call the function in the script as a workaround. |
@tomaskir can build u a version to try out if u want to try |
Sure, I can test. |
File was to big for GitHub so uploaded at Gdrive |
@tomaskir But it happend like all the time right? And with different versions so if it works now it does most likely fix it right? |
I happened about once every 5-8 games since 0.9.0. I will let you know how it goes after playing with the build you provided. |
The build you provided sadly doesn't work. I can't host a game:
Also a bunch of exceptions when running the debug mode script: |
oh wait :D i think i built an ICE version ... ups Gonna do this now then. @tomaskir sorry for the inconvenience |
There are some other Exceptions in there related to a change i did lately thx every much it seems the change I made is not done correctly i opened a separate issue for that |
@tomaskir tell me if you tired we would be really keen on fixing this problem :D there are also others that face this problem however they are mostly not reachable after they report the problem ;) |
Testing the build today/tomorrow. Need multiple games to know if this is fixed or not. |
Actually you probably dont need to play games having it open for a long time will probably also do. But yeah play a few games as well it might be connected tho i don't think so. |
I have been running the build for 3 days straight. However, due to work and no free time, I have not played a game until today. Telling me I have not run a connectivity test or am not connected. However due to no crash in 3 days, I think this might be a valid fix for this issue. |
This may have been fixed by #1144 You can test the fix at https://drive.google.com/file/d/1-QKQK85UvaaQewHJrrH01BrZAe_dGPa0/view?usp=drivesdk |
Sad to report that running 0.10.4, the crashes are still present... ICE client also crashes when the client crashed, so I was yet again disconnected from the game :(
|
Hmm what now? We could still try my workaround |
Well i mean we tested it maybe we should implement it then |
Any reactions? |
Did not know it was only me doing this project... 🤔 |
So reopened the old PR of mine |
Since 0.9.x, client crashes on me quite often.
Game stays up, but since client crashes, I lose conn to all players.
Here is the Java crash log:
https://gist.github.com/tomaskir/c88e45eea3acdb3a17d80ae10084bbcd
The text was updated successfully, but these errors were encountered: