tModLoader: [Docker] Server does not start

Version

Latest 1.4.4-preview

OS

Linux

Platform

Steam

This bug affects

Gameplay as a Player

Description

When starting the 1.4.4 version of the server in my Docker container, it does not start successfully. It appears to happen with all of the 1.4.4 previews.

Log File

server.log

[16:20:01.153] [Main Thread/WARN] [tML]: tModLoader.RuntimeErrorSilentlyCaughtException
System.IO.DirectoryNotFoundException: Could not find a part of the path '/tmodloader/server/Libraries/Native/Linux/*/tmp'.
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)

This path just looks weird.

Steps to reproduce

My Docker container here: https://github.com/PassiveLemon/tmodloader1.4-docker/tree/2.0-Development

  1. Start the container in a way which will use a 1.4.4 version. (Files are fetched automatically)
  2. Observe error in console

Expected Behavior

Like with the 1.4.3 versions, it should successfully start the server.

Actual Behavior

It fails from a missing path.

Reproduction frequency

Every single time. It appears to happen with all of the 1.4.4 previews.

Additional Information

I tried creating that weird path within my entrypoint script but that does not seem to have done anything.

I also can’t test client functionality because my game doesn’t start either for a different reason.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 2
  • Comments: 17 (5 by maintainers)

Commits related to this issue

Most upvoted comments

image this might be relevant…

This also happens with the bundled docker setup in tModLoader when downloaded from Steam. Full stacktrace:

2023-08-03 12:09:15 System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/tml/tModLoader/Libraries/Native/Linux/*/tmp'.
2023-08-03 12:09:15    at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
2023-08-03 12:09:15    at System.IO.Enumeration.FileSystemEnumerator`1.Init()
2023-08-03 12:09:15    at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
2023-08-03 12:09:15    at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
2023-08-03 12:09:15    at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
2023-08-03 12:09:15    at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
2023-08-03 12:09:15    at System.IO.Directory.GetFiles(String path, String searchPattern, EnumerationOptions enumerationOptions)
2023-08-03 12:09:15    at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption)
2023-08-03 12:09:15    at Terraria.MonoLaunch.ResolveNativeLibrary(Assembly assembly, String name) in D:\a\tModLoader\tModLoader\src\tModLoader\Terraria\MonoLaunch.cs:line 96
2023-08-03 12:09:15    at System.Runtime.Loader.AssemblyLoadContext.GetResolvedUnmanagedDll(Assembly assembly, String unmanagedDllName)
2023-08-03 12:09:15    at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDllUsingEvent(String unmanagedDllName, Assembly assembly, IntPtr gchManagedAssemblyLoadContext)
2023-08-03 12:09:15    at System.Runtime.InteropServices.NativeLibrary.LoadByName(String libraryName, QCallAssembly callingAssembly, Boolean hasDllImportSearchPathFlag, UInt32 dllImportSearchPathFlag, Boolean throwOnError)
2023-08-03 12:09:15    at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
2023-08-03 12:09:15    at System.Runtime.InteropServices.NativeLibrary.Load(String libraryName, Assembly assembly, Nullable`1 searchPath)
2023-08-03 12:09:15    at MonoMod.Utils.DynDll.OpenLibrary(String name, Boolean skipMapping) in /_/src/MonoMod.Utils/DynDll.CoreNativeLibrary.cs:line 18
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Systems.PosixExceptionHelper.CreateHelper(IArchitecture arch, String filename) in /_/src/MonoMod.Core/Platforms/Systems/PosixExceptionHelper.cs:line 23
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Systems.LinuxSystem.CreateNativeExceptionHelper() in /_/src/MonoMod.Core/Platforms/Systems/LinuxSystem.cs:line 322
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Systems.LinuxSystem.get_NativeExceptionHelper() in /_/src/MonoMod.Core/Platforms/Systems/LinuxSystem.cs:line 280
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.get_NativeExceptionHelper() in /_/src/MonoMod.Core/Platforms/Runtimes/CoreBaseRuntime.cs:line 99
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.EHManagedToNative(IntPtr target, IDisposable& handle) in /_/src/MonoMod.Core/Platforms/Runtimes/CoreBaseRuntime.cs:line 108
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Runtimes.Core21Runtime.InstallJitHook(IntPtr jit) in /_/src/MonoMod.Core/Platforms/Runtimes/Core21Runtime.cs:line 87
2023-08-03 12:09:15    at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.MonoMod.Core.Utils.IInitialize.Initialize() in /_/src/MonoMod.Core/Platforms/Runtimes/CoreBaseRuntime.cs:line 66
2023-08-03 12:09:15    at MonoMod.Core.Platforms.PlatformTriple.InitIfNeeded(Object obj) in /_/src/MonoMod.Core/Platforms/PlatformTriple.cs:line 195
2023-08-03 12:09:15    at MonoMod.Core.Platforms.PlatformTriple..ctor(IArchitecture architecture, ISystem system, IRuntime runtime) in /_/src/MonoMod.Core/Platforms/PlatformTriple.cs:line 184
2023-08-03 12:09:15    at MonoMod.Core.Platforms.PlatformTriple.CreateCurrent() in /_/src/MonoMod.Core/Platforms/PlatformTriple.cs:line 119
2023-08-03 12:09:15    at MonoMod.Utils.Helpers.InitializeValueWithLock[T,TParam](T& location, Object lock, IntPtr init, TParam obj) in /_/src/MonoMod.Utils/Helpers.cs:line 167
2023-08-03 12:09:15    at MonoMod.Core.Platforms.PlatformTriple.get_Current() in /_/src/MonoMod.Core/Platforms/PlatformTriple.cs:line 113
2023-08-03 12:09:15    at MonoMod.Core.DetourFactory.CreateDefaultFactory() in /_/src/MonoMod.Core/IDetourFactory.cs:line 80
2023-08-03 12:09:15    at MonoMod.Utils.Helpers.InitializeValue[T,TParam](T& location, IntPtr init, TParam obj) in /_/src/MonoMod.Utils/Helpers.cs:line 158
2023-08-03 12:09:15    at MonoMod.RuntimeDetour.DetourContext.GetDefaultFactory() in /_/src/MonoMod.RuntimeDetour/DetourContext.cs:line 103
2023-08-03 12:09:15    at MonoMod.RuntimeDetour.Hook..ctor(MethodBase source, Delegate target, DetourConfig config, Boolean applyByDefault) in /_/src/MonoMod.RuntimeDetour/Hook.cs:line 409
2023-08-03 12:09:15    at MonoMod.RuntimeDetour.Hook..ctor(MethodBase source, Delegate target, DetourConfig config) in /_/src/MonoMod.RuntimeDetour/Hook.cs:line 377
2023-08-03 12:09:15    at MonoMod.RuntimeDetour.Hook..ctor(MethodBase source, Delegate target) in /_/src/MonoMod.RuntimeDetour/Hook.cs:line 319
2023-08-03 12:09:15    at Terraria.ModLoader.Engine.LoggingHooks.PrettifyStackTraceSources() in D:\a\tModLoader\tModLoader\src\tModLoader\Terraria\ModLoader\Engine\LoggingHooks.cs:line 73
2023-08-03 12:09:15    at Terraria.ModLoader.Engine.LoggingHooks.Init() in D:\a\tModLoader\tModLoader\src\tModLoader\Terraria\ModLoader\Engine\LoggingHooks.cs:line 17
2023-08-03 12:09:15    at Terraria.ModLoader.Logging.LogStartup(Boolean dedServ) in D:\a\tModLoader\tModLoader\src\tModLoader\Terraria\ModLoader\Logging.cs:line 92
2023-08-03 12:09:15    at Terraria.Program.StartupSequenceTml(Boolean isServer) in D:\a\tModLoader\tModLoader\src\tModLoader\Terraria\Program.TML.cs:line 277```

It seems like you’re the first person to try the 1.4.4.9 preview server on Linux, this is valuable troubleshooting for us. Please come to the Discord and send me a direct message.