jjohnsnaill / SubworldLibrary

Dimensions in Terraria, made easy.
44 stars 24 forks source link

Issues With SubWorld Library on Linux Servers #34

Closed aleforge closed 8 months ago

aleforge commented 10 months ago

On our hosting service, our customers have been having issues running SubWorld Library specifically with StarsAbove on our Linux hosting.

We have been investigating the logs, and this is what we are able to find so far:

Error when loading

`[16:37:15.617] [Main Thread/INFO] [tML]: Adding Content: SubworldLibrary (Subworld Library) v2.2.1.2 [16:37:15.675] [Main Thread/DEBUG] [tML]: ILHook Terraria.Main::DedServ_PostModLoad(out bool) added by SubworldLibrary [16:37:15.684] [Main Thread/DEBUG] [tML]: ILHook Terraria.NetMessage::CheckBytes(int) added by SubworldLibrary [16:37:15.686] [Main Thread/DEBUG] [tML]: ILHook Terraria.Net.Sockets.SocialSocket::Terraria.Net.Sockets.ISocket.AsyncSend(Byte[], int, int, SocketSendCallback, object) added by SubworldLibrary [16:37:15.690] [Main Thread/DEBUG] [tML]: ILHook Terraria.Net.Sockets.TcpSocket::Terraria.Net.Sockets.ISocket.AsyncSend(Byte[], int, int, SocketSendCallback, object) added by SubworldLibrary

[16:37:15.693] [Main Thread/DEBUG] [tML]: ILHook Terraria.Netplay::UpdateConnectedClients() added by SubworldLibrary [16:37:15.697] [Main Thread/DEBUG] [tML]: ILHook Terraria.Main::EraseWorld(int) added by SubworldLibrary [16:37:15.720] [Main Thread/DEBUG] [tML]: ILHook Terraria.Main::DoUpdateInWorld(Stopwatch) added by SubworldLibrary [16:37:15.722] [Main Thread/DEBUG] [tML]: ILHook Terraria.WorldGen::UpdateWorld() added by SubworldLibrary [16:37:15.824] [Main Thread/DEBUG] [tML]: ILHook Terraria.Player::Update(int) added by SubworldLibrary [16:37:15.836] [Main Thread/DEBUG] [tML]: ILHook Terraria.NPC::UpdateNPC_UpdateGravity() added by SubworldLibrary [16:37:15.867] [Main Thread/DEBUG] [tML]: ILHook Terraria.Liquid::Update() added by SubworldLibrary [16:37:15.871] [Main Thread/DEBUG] [tML]: ILHook Terraria.Player::SavePlayer(PlayerFileData, bool) added by SubworldLibrary [16:37:15.873] [Main Thread/DEBUG] [tML]: ILHook Terraria.IO.WorldFile::SaveWorld(bool, bool) added by SubworldLibrary [16:37:15.988] [Main Thread/INFO] [tML]: Adding Content: StarsAbove ([c/EC1B9D:The Stars Above]) v1.5.3.3 [16:37:17.571] [Main Thread/DEBUG] [tML]: Hook Terraria.Graphics.Light.TileLightScanner::GetTileLight(int, int, out Vector3) added by StarsAbove [16:37:17.581] [Main Thread/DEBUG] [tML]: Hook Terraria.Graphics.Light.TileLightScanner::GetTileLight(int, int, out Vector3) added by StarsAbove [16:37:17.595] [Main Thread/INFO] [StarsAbove]: 'I've always wanted to write text in crash logs!' -A [16:37:17.595] [Main Thread/INFO] [StarsAbove]: 'Eh? Doesn't that make you look like you caused it..?' -E`

When a player joins a subworld this error occurs:

[21:12:24.788] [Main Thread/DEBUG] [tML]: Process.Start (UseShellExecute = True): "/usr/share/dotnet" tModLoader.dll -server -showserverconsole -world "/home/container/saves/Worlds/Test5.wld" -subworld "StarsAbove_Observatory" [21:12:24.794] [.NET ThreadPool Worker/WARN] [tML]: Silently Caught Exception: System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Cannot assign requested address /tmp/CoreFxPipe_StarsAbove_Observatory.IN at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at System.IO.Pipes.NamedPipeClientStream.TryConnect(Int32 timeout, CancellationToken cancellationToken) at System.IO.Pipes.NamedPipeClientStream.ConnectInternal(Int32 timeout, CancellationToken cancellationToken, Int32 startTime) at System.IO.Pipes.NamedPipeClientStream.Connect(Int32 timeout) at System.IO.Pipes.NamedPipeClientStream.Connect() at SubworldLibrary.SubserverLink.ConnectAndProcessQueue() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) at System.Threading.Tasks.Task.ExecuteEntryUnsafe(Thread threadPoolThread) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() at System.Threading.Thread.StartCallback()

Attached Logfiles:

server (3).log server.log environment-server.log

jjohnsnaill commented 10 months ago

Bah, . also isn't allowed in pipe names, is it. Judging by the CoreFxPipe_ prefix, I'm guessing I have to use _.

jjohnsnaill commented 8 months ago

Fixed in 2.2.2.