space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.13k stars 2.81k forks source link

[build system] dev server crash without building Content.Client #21036

Open iacore opened 8 months ago

iacore commented 8 months ago

Description

I think there is a bug in the build system

Reproduction

[INFO] net: "0.0.0.0": "Network thread started"

The server will crash

Screenshots

last lines of terminal output when running dotnet run -v m --project Content.Server

[INFO] root: Server Version 166.0.0.0 -> Ready
[INFO] net: "::": "Socket bound to [::]:1212: True"
[INFO] net: "::": "Network thread started"
[INFO] net: "0.0.0.0": "Socket bound to 0.0.0.0:1212: True"
[INFO] net: "0.0.0.0": "Network thread started"
[INFO] statushost.http: GET /status from 127.0.0.1:53214
[INFO] statushost.http: GET /info from 127.0.0.1:53214
[FATL] unhandled: System.IO.FileNotFoundException: Could not find file '/home/user/computing/game/space-station-14/bin/Content.Client/Content.Client.dll'.
File name: '/home/user/computing/game/space-station-14/bin/Content.Client/Content.Client.dll'
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Func`4 createOpenException)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
   at System.IO.File.OpenRead(String path)
   at Robust.Packaging.AssetProcessing.AssetFileDisk.Open() in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetFiles.cs:line 47
   at Robust.Server.ServerStatus.StatusHost.AssetPassAczWriter.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Server/ServerStatus/StatusHost.Acz.Sources.cs:line 220
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 50
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 50
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.<>c__DisplayClass9_0.<AcceptFile>b__0() in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 46
   at Robust.Packaging.AssetProcessing.AssetPass.<>c__DisplayClass31_0.<RunJob>b__0(Object _) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 234
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
Unhandled exception. System.IO.FileNotFoundException: Could not find file '/home/user/computing/game/space-station-14/bin/Content.Client/Content.Client.dll'.
File name: '/home/user/computing/game/space-station-14/bin/Content.Client/Content.Client.dll'
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Func`4 createOpenException)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
   at System.IO.File.OpenRead(String path)
   at Robust.Packaging.AssetProcessing.AssetFileDisk.Open() in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetFiles.cs:line 47
   at Robust.Server.ServerStatus.StatusHost.AssetPassAczWriter.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Server/ServerStatus/StatusHost.Acz.Sources.cs:line 220
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 50
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.AcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 50
   at Robust.Packaging.AssetProcessing.AssetPass.InternalAcceptFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 251
   at Robust.Packaging.AssetProcessing.AssetPass.SendFile(AssetFile file) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 140
   at Robust.Packaging.AssetProcessing.Passes.AssetPassPipe.<>c__DisplayClass9_0.<AcceptFile>b__0() in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/Passes/AssetPassPipe.cs:line 46
   at Robust.Packaging.AssetProcessing.AssetPass.<>c__DisplayClass31_0.<RunJob>b__0(Object _) in /home/user/computing/game/space-station-14/RobustToolbox/Robust.Packaging/AssetProcessing/AssetPass.cs:line 234
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
deltanedas commented 8 months ago

did you run RUN_THIS.py

iacore commented 8 months ago

did you run RUN_THIS.py

I did not run RUN_THIS.py I wrote that I have git submodules installed. I did it with git submodule update --init --depth 1

deltanedas commented 8 months ago

run RUN_THIS.py

iacore commented 8 months ago

run RUN_THIS.py

did it. The problem still exists. This time it's

[FATL] unhandled: System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/user/computing/game/space-station-14a/bin/Content.Client/Content.Shared.Database.dll'.
iacore commented 8 months ago

I think the issue is that only building the Server doesn't build the dlls it needs to send to the client.

bin/Content.Client doesn't even exist

❯ find bin | rg Database.dll
bin/Content.Server/Content.Server.Database.dll
bin/Content.Server/Content.Shared.Database.dll
bin/Content.Server.Database/Content.Shared.Database.dll
bin/Content.Server.Database/Content.Server.Database.dll
deltanedas commented 8 months ago

pretty sure you have to compile client as well

iacore commented 8 months ago

pretty sure you have to compile client as well

that's the problem. I think the target Content.Server should implicitly compile client as well

Warentan commented 4 months ago

I am having this identical problem... Any leads as to the fix?

iacore commented 4 months ago

Any leads as to the fix?

Build the Content.Client as well.