FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.76k stars 406 forks source link

[unstable / round transition crash] cannot access a closed pipe. #6676

Closed FrankieEnc closed 3 years ago

FrankieEnc commented 3 years ago

Description Game crashes on round transition

Steps To Reproduce Not really sure.

Version Linux, Barotrauma ver. 0.1500.3.0

Additional information

Here's the crashreport.log

Barotrauma Client crash report (generated on 09/17/2021 19:31:02)

Barotrauma seems to have crashed. Sorry for the inconvenience!

D765C311CEF5773D85D233819478D6B1

Game version 0.1500.3.0 (UnstableLinux, branch dev, revision f61a8e46a4) Graphics mode: 1920x1080 (BorderlessWindowed) VSync ON Language: English Selected content packages: Vanilla 0.9 Level seed: Astypalaea LineaWolstone Loaded submarine: Humpback (2C55892CE1987AD396E4D29A7DB8A185) Selected screen: Barotrauma.GameScreen SteamManager initialized Client (Round hadn't been started)

System info: Operating system: Unix 5.4.0.81 64 bit GPU name: Display mode: {Width:1920 Height:1080 Format:Color AspectRatio:1.7777778} GPU status: Normal

Exception: One or more errors occurred. (Cannot access a closed pipe.) (System.AggregateException) Target site: Boolean Wait(Int32, System.Threading.CancellationToken) Stack trace: at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(TimeSpan timeout) at Barotrauma.Networking.ChildServerRelay.ReadIncomingMsgs() in /Barotrauma/BarotraumaShared/SharedSource/Networking/ChildServerRelay.cs:line 102 at Barotrauma.Networking.ChildServerRelay.UpdateRead() in /Barotrauma/BarotraumaShared/SharedSource/Networking/ChildServerRelay.cs:line 143 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Threading.ThreadHelper.ThreadStart()

InnerException: Cannot access a closed pipe. Target site: Void CheckReadOperations() Stack trace: at System.IO.Pipes.PipeStream.CheckReadOperations() at System.IO.Pipes.PipeStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.<>c.b__43_0(Object ) at System.Threading.Tasks.Task1.InnerInvoke() at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location where exception was thrown --- at System.IO.Stream.EndRead(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncTrimPromise1.Complete(TInstance thisRef, Func3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) Last debug messages: [09/17/2021 19:31:01] Received disconnect message from owned server

here's the servercrashreport.log:

Barotrauma Dedicated Server crash report (generated on 09/17/2021 19:31:01)

Barotrauma seems to have crashed. Sorry for the inconvenience!

Game version 0.1500.3.0 (UnstableLinux, branch dev, revision f61a8e46a4) Language: English Selected content packages: Vanilla 0.9 Level seed: no level loaded Loaded submarine: None Selected screen: Barotrauma.GameScreen Server (Round hadn't been started)

System info: Operating system: Unix 5.4.0.81 64 bit

Exception: Object reference not set to an instance of an object. (System.NullReferenceException) Target site: Single CalculateDistanceTraveled() Stack trace: at Barotrauma.EventManager.CalculateDistanceTraveled() in /Barotrauma/BarotraumaShared/SharedSource/Events/EventManager.cs:line 872 at Barotrauma.EventManager.Update(Single deltaTime) in /Barotrauma/BarotraumaShared/SharedSource/Events/EventManager.cs:line 644 at Barotrauma.GameSession.Update(Single deltaTime) in /Barotrauma/BarotraumaShared/SharedSource/GameSession/GameSession.cs:line 624 at Barotrauma.GameScreen.Update(Double deltaTime) in /Barotrauma/BarotraumaShared/SharedSource/Screens/GameScreen.cs:line 167 at Barotrauma.GameMain.Run() in /Barotrauma/BarotraumaServer/ServerSource/GameMain.cs:line 383 at Barotrauma.Program.Main(String[] args) in /Barotrauma/BarotraumaServer/ServerSource/Program.cs:line 58

Last debug messages: 09/17/2021 19:31:01 - [09/17/2021 19:31:01] Saving banlist 09/17/2021 19:30:58 - Maximum packet size exceeded (1356 > 1200) Client list size: 0 bytes Chat message size: 0 bytes Campaign size: 0 bytes Settings size: 1351 bytes Settings buffer size: 1223 bytes

09/17/2021 19:30:58 - Maximum packet size exceeded (1356 > 1200) Client list size: 0 bytes Chat message size: 0 bytes Campaign size: 0 bytes Settings size: 1351 bytes Settings buffer size: 1223 bytes

09/17/2021 19:30:58 - Maximum packet size exceeded (1356 > 1200) Client list size: 0 bytes Chat message size: 0 bytes Campaign size: 0 bytes Settings size: 1351 bytes Settings buffer size: 1223 bytes

09/17/2021 19:30:58 - Coroutine LevelTransition threw an exception: You are removing a body that is not in the simulation (userdata: null). (Parameter 'body') at FarseerPhysics.Dynamics.World.Remove(Body body) in /Libraries/Farseer Physics Engine 3.5/Dynamics/World.cs:line 1037 at Barotrauma.PhysicsBody.Remove() in /Barotrauma/BarotraumaShared/SharedSource/Physics/PhysicsBody.cs:line 865 at Barotrauma.PhysicsBody.RemoveAll() in /Barotrauma/BarotraumaShared/SharedSource/Physics/PhysicsBody.cs:line 876 at Barotrauma.Submarine.Unload() in /Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs:line 1688 at Barotrauma.Networking.GameServer.EndGame(TransitionType transitionType) in /Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs:line 2634 at Barotrauma.MultiPlayerCampaign.DoLevelTransition(TransitionType transitionType, LevelData newLevel, Submarine leavingSub, Boolean mirror, List`1 traitorResults)+MoveNext() in /Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs:line 370 at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in /Barotrauma/BarotraumaShared/SharedSource/CoroutineManager.cs:line 217 09/17/2021 19:30:58 - [09/17/2021 19:30:58] Ending the round... 09/17/2021 19:30:58 - Transitioning to Tormsdale LineaAstypalaea Linea (current location: Astypalaea Linea, selected location: Tormsdale Linea, leaving sub: Humpback, at start: False, at end: True, transition type: ProgressToNextEmptyLocation) 09/17/2021 19:30:56 - [09/17/2021 19:30:56] AA activated Deconstructor 09/17/2021 19:30:55 - [09/17/2021 19:30:55] AA placed Fuel Rod in Deconstructor (ID: 839) 09/17/2021 19:30:55 - [09/17/2021 19:30:55] AA placed Fuel Rod in Deconstructor (ID: 839) 09/17/2021 19:30:54 - [09/17/2021 19:30:54] AA deactivated Deconstructor 09/17/2021 19:30:51 - [09/17/2021 19:30:51] ZZ activated Deconstructor 09/17/2021 19:30:50 - [09/17/2021 19:30:50] YY dropped Duffel Bag 09/17/2021 19:30:48 - [09/17/2021 19:30:48] XX used item Morphine

Rokvach commented 3 years ago

There hasn't been any sightings of this happening during the Unstable testing period, this seems to be working correctly. If the issue still happens to persist we can re-open this ticket. But for now, closing.