Skip to content
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 in vehicle leads to corrupt session with potentially invulnerable player #1106

Open
Dethdeath opened this issue Jun 3, 2023 · 4 comments

Comments

@Dethdeath
Copy link

Crashing in a vehicle often leads to a familiar black screen with accompanied "expansions_missing_avatar" messages:
blackscreen

Eventually the player is presented with a loading screen and it places them back to where they were before the crash.
From what I understand this process is basically patchwork and might be changed in the future?

Either way, coming back from a crash can lead to a corrupt persistence state. Using medkits (or stamina kits) in this state will tell you to "Please wait ..." after the first medkit is applied.

Another thing that is affected is the way second wind works, this one is quite confusing as it's supposed to heal the player for 25 health and reset, but what happens instead is this:

Allthewinds.mp4
Allthewinds2.mp4

At first I thought the black screen was required to reproduce this bugged state, but it's not. Even when the player is correctly placed back into the vehicle without seeing a black screen, they can be in a bugged state.

I have tested it with various vehicles and the most reliable way for reproduction is to get into a gunner seat of a vehicle, I recommend liberator/vulture, prowler, juggernaut and skyguard, but others can work fine too. The driver can also get bugged, but in my testing it occurred less often.

Reproduction steps:
Pull a vehicle.
Kill the Planetside client with task manager.
Relog.
If you get a black screen, wait for it to go away.
Exit vehicle if still in one.
Get damaged by something and attempt to heal to full with medkits.
If using second wind wait for it to initialize (if you come back after a crash and it shows as initialized, you still have to wait the full charge up period before it will activate).

@ScrawnyRonnie
Copy link
Contributor

I found that this also happens when a character is not in a vehicle. It seems like as long as you log back in before persistence ends you'll end up in this state until you die or zone somewhere else. Here is one of the logs that may help:

[ INFO] akka.actor.LocalActorRef - Message [net.psforever.actors.session.AvatarActor$UpdateUseTime] to Actor[akka://PsLogin/user/world-socket/middleware-aef05f46-26d6-4aee-99f8-fcb740fe2fb3/$a/session-bf6c4052-4371-46e4-85e1-a427b71f399e/$a#-568793394] was not delivered. [10] dead letters encountered, no more dead letters will be logged in next [5.000 min]. If this is not an expected behavior then Actor[akka://PsLogin/user/world-socket/middleware-aef05f46-26d6-4aee-99f8-fcb740fe2fb3/$a/session-bf6c4052-4371-46e4-85e1-a427b71f399e/$a#-568793394] may have terminated unexpectedly. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

@ScrawnyRonnie
Copy link
Contributor

Black screen on relog while a driver has been fixed in #1146
Other things here are still unresolved.

@Dethdeath
Copy link
Author

Sent this video to Scrawny before, probably good for others to see as well.
It's the medkit behavior after logging out in a vehicle.

medwait.mp4

As you can see medkits can only be used after mounting a vehicle. I feel like this is a good enough clue to maybe track this part of it down.

@Resaec
Copy link
Contributor

Resaec commented Dec 30, 2023

This looks similar to what happend after using /capturebase while someone was in a turret. #1147
Since the player "leaves" the mountable in an unexpected way there could be a reference to a mounted vehicle as with the above PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants