shayaantx / h2server-docker

Scripts to run halo2vista dedicated server in docker
6 stars 0 forks source link

h2server.exe crashes/does not run #4

Open StianOby opened 3 years ago

StianOby commented 3 years ago

I love the idea of running h2server.exe in a Docker container, but I am struggling to get the server up and running. In my efforts to get it running I have edited the startup.sh script to make it more verbose, thus making debugging easier:

#!/usr/bin/env bash
# Set the approriate registry settings 
echo Set registry settings
wine regedit h2server.reg

# Verify registry was set
echo Verify registry settings
wine regedit /E output.reg "HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE"

# Uncomment to troubleshoot whats written to registry
cat output.reg

# h2server has an interactive shell that doesn't work well with docker-compose, so we wrap this logic in a screen session instead
# you can use h2server with docker run, but the point of this setup is to run many servers via docker-compose
echo Run h2server.exe
screen -d -m wine /home/h2server/h2server.exe -live -h2config=/home/config/h2serverconfig.ini

# since we run the server in screen, wait a bit before attempting to check if its up or not
sleep 30

while true
do
  if pgrep -x h2server.exe > /dev/null
  then
    sleep 10
  else
    # if for any reason the serve stops, stop this entrypoint
    echo "service is not running"
    exit 1
  fi
done

Running sudo docker-compose up then gives the following output:

sudo docker-compose up
Creating network "h2server-docker_default" with the default driver
Creating h2server-docker_h2server1_1 ... done
Attaching to h2server-docker_h2server1_1
h2server1_1  | Set registry settings
h2server1_1  | 0048:err:explorer:initialize_display_settings Failed to query current display settings for L"\\\\.\\DISPLAY1".
h2server1_1  | 0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
h2server1_1  | 0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
h2server1_1  | 0048:err:ole:apartment_get_local_server_stream Failed: 0x80004002
h2server1_1  | 002c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
h2server1_1  | 002c:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
h2server1_1  | 0050:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
h2server1_1  | 0050:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
h2server1_1  | 0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
h2server1_1  | 0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
h2server1_1  | 0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 14007
h2server1_1  | 0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x800736b7
h2server1_1  | 0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x800736b7
h2server1_1  | 0050:err:ole:apartment_get_local_server_stream Failed: 0x800736b7
h2server1_1  | 0050:err:ole:start_rpcss Failed to open RpcSs service
h2server1_1  | 0040:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
h2server1_1  | 0040:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
h2server1_1  | 0064:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 0064:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 006c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
h2server1_1  | 006c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
h2server1_1  | 0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0084:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 0084:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 0084:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0084:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 008c:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x1803191e0, context 0xa4ccb0, init_notify 0, handle 0x489fa60): stub
h2server1_1  | 0040:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
h2server1_1  | 00f0:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
h2server1_1  | 00f8:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 00f8:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 00f8:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 00f8:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0100:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x102b9460, context 0x2d4f10, init_notify 0, handle 0x3e9fde0): stub
h2server1_1  | 00f0:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | wine: configuration in L"/root/.wine" has been updated.
h2server1_1  | Verify registry settings
h2server1_1  | ��Windows Registry Editor Version 5.00
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE]
h2server1_1  | "Description"="EuroHalo.eu"
h2server1_1  | "Enable Multiple Instances"=dword:00000000
h2server1_1  | "LIVE ID"="a"
h2server1_1  | "Live Port Override"=dword:00000000
h2server1_1  | "Owner"="EuroHalo"
h2server1_1  | "Privacy"="Open"
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE\Banned Gamers]
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE\VIPs]
h2server1_1  | 
h2server1_1  | Run h2server.exe
h2server1_1  | service is not running

Since it seemed that the key issue was a lacking display/lacking initialization of a display, I attempted to use Xvfb as a workaround. I thus modified startup.sh further:

#!/usr/bin/env bash
Xvfb :1 -screen 0 1280x960x24 &

# Set the approriate registry settings 
echo Set registry settings
DISPLAY=:1 wine regedit h2server.reg

# Verify registry was set
echo Verify registry settings
DISPLAY=:1 wine regedit /E output.reg "HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE"

# Uncomment to troubleshoot whats written to registry
cat output.reg

# h2server has an interactive shell that doesn't work well with docker-compose, so we wrap this logic in a screen session instead
# you can use h2server with docker run, but the point of this setup is to run many servers via docker-compose
echo Run h2server.exe
screen -d -m wine /home/h2server/h2server.exe -live -h2config=/home/config/h2serverconfig.ini

# since we run the server in screen, wait a bit before attempting to check if its up or not
sleep 30

while true
do
  if pgrep -x h2server.exe > /dev/null
  then
    sleep 10
  else
    # if for any reason the serve stops, stop this entrypoint
    echo "service is not running"
    exit 1
  fi
done

But still the server crashes. Here is the output of docker-compose up:

sudo docker-compose up
Creating network "h2server-docker_default" with the default driver
Creating h2server-docker_h2server1_1 ... done
Attaching to h2server-docker_h2server1_1
h2server1_1  | Display er
h2server1_1  | Set registry settings
h2server1_1  | 0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
h2server1_1  | 0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
h2server1_1  | 0050:err:ole:apartment_get_local_server_stream Failed: 0x80004002
h2server1_1  | 0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
h2server1_1  | 0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
h2server1_1  | 0048:err:ole:apartment_get_local_server_stream Failed: 0x80004002
h2server1_1  | 0048:err:ole:start_rpcss Failed to open RpcSs service
h2server1_1  | 0064:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 0064:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 006c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:err:mscoree:LoadLibraryShim error reading registry key for installroot
h2server1_1  | 006c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
h2server1_1  | 006c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
h2server1_1  | 0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0084:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 0084:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 0084:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 0084:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 008c:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x1803191e0, context 0xa4ccb0, init_notify 0, handle 0x489fa60): stub
h2server1_1  | 0040:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 00f4:fixme:file:NtLockFile I/O completion on lock not implemented yet
h2server1_1  | 00f4:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 00f4:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 00f4:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
h2server1_1  | 00fc:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x102b9460, context 0x2d4f10, init_notify 0, handle 0x3e9fde0): stub
h2server1_1  | 00ec:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | 002c:fixme:event:wait_for_withdrawn_state window 0x2004e/c00001 wait timed out
h2server1_1  | wine: configuration in L"/root/.wine" has been updated.
h2server1_1  | Verify registry settings
h2server1_1  | ��Windows Registry Editor Version 5.00
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE]
h2server1_1  | "Description"="EuroHalo.eu"
h2server1_1  | "Enable Multiple Instances"=dword:00000000
h2server1_1  | "LIVE ID"="a"
h2server1_1  | "Live Port Override"=dword:00000000
h2server1_1  | "Owner"="EuroHalo"
h2server1_1  | "Privacy"="Open"
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE\Banned Gamers]
h2server1_1  | 
h2server1_1  | [HKEY_CURRENT_USER\Software\Microsoft\Halo 2\Server\LIVE\VIPs]
h2server1_1  | 
h2server1_1  | Run h2server.exe
h2server1_1  | service is not running

There does not seem to be any obvious critical errors here. The server just keeps restarting after about a minute, and any attempt at running sudo docker exec -it  [containerID] screen -r results in the "no screen session to resume" error.

Any clues on what could be going wrong? Any tips on how to debug further?

StianOby commented 3 years ago

Interestingly, I have trouble running h2server.exe on a different machine in a wineprefix created with Lutris where I can plan H2 cartographer without issue... Is there only one particular, older Wine version that runs h2server.exe properly?

shayaantx commented 3 years ago

maybe, xlive has been updated a few times since I last tested this, I'll check it out this weekend

if you wanna discuss it live, you can join https://discord.com/invite/HawVq7B

shayaantx commented 3 years ago

so what does h2onscreendebug.log show in your logs?

all those wine errors you posted I'm pretty sure are normal. You can see below

Creating h2serverdocker_h2server1_1 ... done
Attaching to h2serverdocker_h2server1_1
h2server1_1  | 0048:err:explorer:initialize_display_settings Failed to query current display settings for L"\\\\.\\DISPLAY1".
h2server1_1  | 0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
h2server1_1  | 0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
...
... errors omitted
...
h2server1_1  | 0100:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x102b9460, context 0x2d4f10, init_notify 0, handle 0x3e9fde0): stub
h2server1_1  | 00f0:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
h2server1_1  | wine: configuration in L"/root/.wine" has been updated.

I would suspect something is failing in xlive which isn't causing the server to crash, but just not fully start, see my output

14/08/2021 02:37:52.020 [OnScreenDebug] [debug] : Initialised On Screen Debug Text.
14/08/2021 02:37:52.020 [OnScreenDebug] [debug] : Process is Dedi-Server
14/08/2021 02:37:52.020 [OnScreenDebug] [debug] : Reading H2Configuration File...
14/08/2021 02:37:52.021 [OnScreenDebug] [debug] : Reading Flag Config: "/home/config/h2serverconfig.ini"
14/08/2021 02:37:52.021 [OnScreenDebug] [debug] : End Reading H2Configuration File.
14/08/2021 02:37:52.021 [OnScreenDebug] [debug] : Base port: 50000.
14/08/2021 02:37:52.022 [OnScreenDebug] [debug] : Finished Processing Instance Number.
14/08/2021 02:37:52.022 [OnScreenDebug] [debug] : Begin Startup Tweaks.
14/08/2021 02:37:52.022 [OnScreenDebug] [debug] : End Startup Tweaks.
14/08/2021 02:37:52.023 [OnScreenDebug] [debug] : Pre GSRunLoop Hooking.
14/08/2021 02:37:52.023 [OnScreenDebug] [debug] : Hooking Loop & Shutdown Function
14/08/2021 02:37:52.023 [OnScreenDebug] [debug] : Post GSRunLoop Hooking.
14/08/2021 02:37:52.023 [OnScreenDebug] [debug] : ProcessStartup finished.
14/08/2021 02:37:52.026 [OnScreenDebug] [debug] : Post Server Registry Read.
14/08/2021 02:37:52.031 [OnScreenDebug] [debug] : Signing in dedicated server locally.
14/08/2021 02:37:52.307 [OnScreenDebug] [debug] : Logging the Dedi Server in...
14/08/2021 02:37:52.307 [OnScreenDebug] [debug] : Signing in dedicated server online.
14/08/2021 02:37:52.307 [OnScreenDebug] [debug] : Wine: 6.0.1
14/08/2021 02:37:52.320 [OnScreenDebug] [debug] : Could not connect to ROOT\WMI. Error code = 0x8004100e
14/08/2021 02:37:52.320 [OnScreenDebug] [debug] : Get M/B info failed.
14/08/2021 02:37:56.139 [OnScreenDebug] [debug] : Return code is: 200
14/08/2021 02:37:56.139 [OnScreenDebug] [debug] : Login code is: 4
14/08/2021 02:37:56.139 [OnScreenDebug] [debug] : Client External IP Address is: OMITTED
14/08/2021 02:37:56.139 [OnScreenDebug] [debug] : Login Username is: Rude_Yoshi

You can also see my container doesn't crash. Someone in discord verified the server was up and could join it. Was even able to exec into the container and gain access to the h2server shell.

# docker ps
CONTAINER ID   IMAGE                      COMMAND          CREATED          STATUS              PORTS                                                                                                                            NAMES
41ed7797af1c   h2serverdocker_h2server1   "./startup.sh"   13 minutes ago   Up About a minute   3389/tcp, 0.0.0.0:50000-50009->50000-50009/udp, :::50000-50009->50000-50009/udp, 0.0.0.0:50010->50010/tcp, :::50010->50010/tcp   h2serverdocker_h2server1_1

You can @ me in the discord "Rude Yoshi#0570" and we can work through your errors.

I will say going through this we can def improve the documentation a bit more

StianOby commented 3 years ago

The thing is that I have really struggled to find any logs. I didn't even know about the existence of h2onscreendebug.log. Nothing appears in the folder I have set for logging in my .env file. Posting the file here for reference, in case something is misconfigured:

###########################
# Generic Service Config
###########################

# The location of your h2server playlists
H2SERVER_PLAYLISTS_DIRECTORY=/media/ssd2/h2server/playlists/

# The location of your h2server binaries
H2SERVER_BINARIES=/media/ssd2/h2server/

# wan_ip Options:
# lan_ip Options:
# This option is used for when you cannot join games hosted on the same local network due to NAT issues.
# Configuring these settings for an internal network address avoids the requirement for that host user to port forward.
# <IPv4> - External IP Address of the local / internal network user you are trying to connect to. If blank, the External IP returned from the Master Login is used.
# <IPv4> - Internal IP Address of the local / internal network user you are trying to connect to.
H2SERVER_WAN_IP=
H2SERVER_LAN_IP=192.168.1.9

# debug_log Options:
# 0 - Disables logging.
# 1 - Enables logging.

# debug_log_level Options:
# 0 - Trace, tell me *everything*.
# 1 - Debug, give me the dirty details.
# 2 - Info, occasionally helpful information.
# 3 - Warning, what probably shouldn't be happening.
# 4 - Error, bad news only, please.
# 5 - Critical, I only want to see death and destruction.

# debug_log_console Options:
# 0 - Disables console window logging.
# 1 - Enables console window logging, will display all output from all loggers.
H2SERVER_DEBUG_LOG=1
H2SERVER_DEBUG_LOG_LEVEL=1
H2SERVER_DEBUG_LOG_CONSOLE=1

# additional_pcr_time Options (Server):
# By default, 25 seconds are added to post game carnage time from the playlist setting.
# Now you have the possibility to change it to your preference.
H2SERVER_PCR_TIME=25

###########################
# Individual server configs
###########################

# H2server ports go baseport to baseport + 9 (udp) and baseport + 10 (tcp)
# Make sure you've open all the ports defined here for their respective protocols
# i.e., 1000-1009
H2SERVER1_UDP_PORT_RANGE=1000-1009
# i.e., 1010
H2SERVER1_TCP_PORT=1010

H2SERVER1_DESCRIPTION=EuroHalo.eu
H2SERVER1_OWNER=EuroHalo
H2SERVER1_LOGS_DIRECTORY=/media/ssd2/h2server-docker-logs/
# enable_xdelay Options:
# 0 - Non-host players cannot delay the game start countdown timer.
# 1 - Non-host players can delay the game start countdown timer (native default).
H2SERVER1_ENABLE_XDELAY=0

# server_name Options (Server):
# Sets the name of the server up to 31 characters long.
# Leave blank/empty for no effect.
H2SERVER1_SERVER_NAME=EuroHalo

# server_playlist Options (Server):
# Sets the playlist of the server up to 255 characters long.
# Leave blank/empty for no effect.
H2SERVER1_SERVER_PLAYLIST=MLG_FFA.hpl

# login_identifier Options (Server):
# The email or username used to login to an account.
# Note: Server accounts *should not* be signed into multiple times concurrently *unless* it is all on the same computer (i.e. only exempt when running multiple server instances).
H2SERVER1_USERNAME=EuroHalo

# login_password Options (Server):
# The password used to login to the defined account.
H2SERVER1_PASSWORD=[OMITTED]

PS: I'm already on the Project Cartographer Discord and tried adding you. However, you seem to have blocked incoming friend requests. My Discord is Øby#7344

StianOby commented 3 years ago

Turned out I didn't have the latest xlive.dll.... The one from project_cartographer_manual_update.zip was likely too old.

With the correct xlive.dll, h2server.exe is actually starting up and producing logs, before it stops after after a few seconds. But even with loglevel 0 there isn't much useful, at least to me.

h2onscreendebug.log

14/08/2021 21:19:54.632 [OnScreenDebug] [debug] : Initialised On Screen Debug Text.
14/08/2021 21:19:54.632 [OnScreenDebug] [debug] : Process is Dedi-Server
14/08/2021 21:19:54.632 [OnScreenDebug] [debug] : Reading H2Configuration File...
14/08/2021 21:19:54.632 [OnScreenDebug] [debug] : Reading Flag Config: "/home/config/h2serverconfig.ini"
14/08/2021 21:19:54.637 [OnScreenDebug] [debug] : End Reading H2Configuration File.
14/08/2021 21:19:54.638 [OnScreenDebug] [debug] : Base port: 1000.
14/08/2021 21:19:54.692 [OnScreenDebug] [debug] : Finished Processing Instance Number.
14/08/2021 21:19:54.694 [OnScreenDebug] [debug] : Begin Startup Tweaks.
14/08/2021 21:19:54.695 [OnScreenDebug] [debug] : End Startup Tweaks.
14/08/2021 21:19:54.696 [OnScreenDebug] [debug] : Pre GSRunLoop Hooking.
14/08/2021 21:19:54.698 [OnScreenDebug] [debug] : Hooking Loop & Shutdown Function
14/08/2021 21:19:54.699 [OnScreenDebug] [debug] : Post GSRunLoop Hooking.
14/08/2021 21:19:54.700 [OnScreenDebug] [debug] : ProcessStartup finished.
14/08/2021 21:19:54.714 [OnScreenDebug] [debug] : Post Server Registry Read.
14/08/2021 21:19:54.717 [OnScreenDebug] [debug] : Signing in dedicated server locally.
14/08/2021 21:19:54.761 [OnScreenDebug] [info] : End of log
14/08/2021 21:20:27.354 [OnScreenDebug] [debug] : Initialized
14/08/2021 21:20:27.354 [OnScreenDebug] [debug] : Initialised On Screen Debug Text.
14/08/2021 21:20:27.354 [OnScreenDebug] [debug] : Process is Dedi-Server
14/08/2021 21:20:27.356 [OnScreenDebug] [debug] : Reading H2Configuration File...
14/08/2021 21:20:27.356 [OnScreenDebug] [debug] : Reading Flag Config: "/home/config/h2serverconfig.ini"
14/08/2021 21:20:27.363 [OnScreenDebug] [debug] : End Reading H2Configuration File.
14/08/2021 21:20:27.363 [OnScreenDebug] [debug] : Base port: 1000.
14/08/2021 21:20:27.401 [OnScreenDebug] [debug] : Finished Processing Instance Number.
14/08/2021 21:20:27.404 [OnScreenDebug] [debug] : Begin Startup Tweaks.
14/08/2021 21:20:27.407 [OnScreenDebug] [debug] : End Startup Tweaks.
14/08/2021 21:20:27.409 [OnScreenDebug] [debug] : Pre GSRunLoop Hooking.
14/08/2021 21:20:27.411 [OnScreenDebug] [debug] : Hooking Loop & Shutdown Function
14/08/2021 21:20:27.413 [OnScreenDebug] [debug] : Post GSRunLoop Hooking.
14/08/2021 21:20:27.415 [OnScreenDebug] [debug] : ProcessStartup finished.
14/08/2021 21:20:27.424 [OnScreenDebug] [debug] : Post Server Registry Read.
14/08/2021 21:20:27.430 [OnScreenDebug] [debug] : Signing in dedicated server locally.
14/08/2021 21:20:27.488 [OnScreenDebug] [info] : End of log

(This pattern repeats as the docker container restarts approximately every 30 secs due to "service is not running".)

shayaantx commented 3 years ago

can you set log level to 0 and turn off console log (i.e., set it to 0) and post next log. Also can you set your WAN ip

H2SERVER_DEBUG_LOG=1
H2SERVER_DEBUG_LOG_LEVEL=0
H2SERVER_DEBUG_LOG_CONSOLE=0
StianOby commented 3 years ago

Set the WAN IP to my public-facing IP address (obtained from whatismyip.com). Also set the HSERVER_DEBUG strings as you indicated and did a sh build.sh & sh restart.sh.

Frustratingly, despite this, I still get an identical log, and the server keeps restarting after about a minute.

h2onscreendebug.log

15/08/2021 09:01:25.265 [OnScreenDebug] [debug] : Initialized
15/08/2021 09:01:25.265 [OnScreenDebug] [debug] : Initialised On Screen Debug Text.
15/08/2021 09:01:25.266 [OnScreenDebug] [debug] : Process is Dedi-Server
15/08/2021 09:01:25.266 [OnScreenDebug] [debug] : Reading H2Configuration File...
15/08/2021 09:01:25.266 [OnScreenDebug] [debug] : Reading Flag Config: "/home/config/h2serverconfig.ini"
15/08/2021 09:01:25.273 [OnScreenDebug] [debug] : End Reading H2Configuration File.
15/08/2021 09:01:25.273 [OnScreenDebug] [debug] : Base port: 1000.
15/08/2021 09:01:25.284 [OnScreenDebug] [debug] : Finished Processing Instance Number.
15/08/2021 09:01:25.288 [OnScreenDebug] [debug] : Begin Startup Tweaks.
15/08/2021 09:01:25.289 [OnScreenDebug] [debug] : End Startup Tweaks.
15/08/2021 09:01:25.289 [OnScreenDebug] [debug] : Pre GSRunLoop Hooking.
15/08/2021 09:01:25.289 [OnScreenDebug] [debug] : Hooking Loop & Shutdown Function
15/08/2021 09:01:25.289 [OnScreenDebug] [debug] : Post GSRunLoop Hooking.
15/08/2021 09:01:25.289 [OnScreenDebug] [debug] : ProcessStartup finished.
15/08/2021 09:01:25.331 [OnScreenDebug] [debug] : Post Server Registry Read.
15/08/2021 09:01:25.337 [OnScreenDebug] [debug] : Signing in dedicated server locally.
15/08/2021 09:01:25.353 [OnScreenDebug] [info] : End of log
15/08/2021 09:01:58.074 [OnScreenDebug] [debug] : Initialized
15/08/2021 09:01:58.074 [OnScreenDebug] [debug] : Initialised On Screen Debug Text.
15/08/2021 09:01:58.074 [OnScreenDebug] [debug] : Process is Dedi-Server
15/08/2021 09:01:58.074 [OnScreenDebug] [debug] : Reading H2Configuration File...
15/08/2021 09:01:58.074 [OnScreenDebug] [debug] : Reading Flag Config: "/home/config/h2serverconfig.ini"
15/08/2021 09:01:58.083 [OnScreenDebug] [debug] : End Reading H2Configuration File.
15/08/2021 09:01:58.083 [OnScreenDebug] [debug] : Base port: 1000.
15/08/2021 09:01:58.089 [OnScreenDebug] [debug] : Finished Processing Instance Number.
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : Begin Startup Tweaks.
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : End Startup Tweaks.
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : Pre GSRunLoop Hooking.
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : Hooking Loop & Shutdown Function
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : Post GSRunLoop Hooking.
15/08/2021 09:01:58.090 [OnScreenDebug] [debug] : ProcessStartup finished.
15/08/2021 09:01:58.097 [OnScreenDebug] [debug] : Post Server Registry Read.
15/08/2021 09:01:58.106 [OnScreenDebug] [debug] : Signing in dedicated server locally.
15/08/2021 09:01:58.117 [OnScreenDebug] [info] : End of log

Log from the docker container:

0048:err:explorer:initialize_display_settings Failed to query current display settings for L"\\\\.\\DISPLAY1".
0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0048:err:ole:apartment_get_local_server_stream Failed: 0x80004002
002c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
002c:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0050:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0050:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
0050:err:ole:apartment_createwindowifneeded CreateWindow failed with error 14007
0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x800736b7
0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x800736b7
0050:err:ole:apartment_get_local_server_stream Failed: 0x800736b7
0050:err:ole:start_rpcss Failed to open RpcSs service
0040:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0040:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
0060:fixme:file:NtLockFile I/O completion on lock not implemented yet
0060:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0060:err:mscoree:LoadLibraryShim error reading registry key for installroot
0060:err:mscoree:LoadLibraryShim error reading registry key for installroot
0060:err:mscoree:LoadLibraryShim error reading registry key for installroot
0060:err:mscoree:LoadLibraryShim error reading registry key for installroot
0068:fixme:file:NtLockFile I/O completion on lock not implemented yet
0068:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0068:err:mscoree:LoadLibraryShim error reading registry key for installroot
0068:err:mscoree:LoadLibraryShim error reading registry key for installroot
0068:err:mscoree:LoadLibraryShim error reading registry key for installroot
0068:err:mscoree:LoadLibraryShim error reading registry key for installroot
0068:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0068:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0060:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0060:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0080:fixme:file:NtLockFile I/O completion on lock not implemented yet
0080:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0080:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0080:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0088:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x1803191e0, context 0xa4ccb0, init_notify 0, handle 0x489fa60): stub
0040:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
00e8:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
00e8:err:winediag:nodrv_CreateWindow Make sure that your X server is running and that $DISPLAY is set correctly.
00f0:fixme:file:NtLockFile I/O completion on lock not implemented yet
00f0:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
00f0:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
00f0:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
00f8:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x102b9460, context 0x2d4f10, init_notify 0, handle 0x3e9fde0): stub
00e8:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
wine: configuration in L"/root/.wine" has been updated.
service is not running
shayaantx commented 3 years ago

please post the following logs as well you should have a few more

[root@desktop-centos7 h2server-logs]# ls -lt
total 156
-rw-r--r-- 1 root root   1088 Aug 15 09:42 h2mod.log
-rw-r--r-- 1 root root  21530 Aug 15 09:42 h2network.log
-rw-r--r-- 1 1010 1010 122988 Aug 15 09:42 h2onscreendebug.log
-rw-r--r-- 1 root root      0 Aug 13 22:35 h2xlive.log
StianOby commented 3 years ago

Didn't post them, since they appeared to contain little useful output. But here they are:

h2mod.log

15/08/2021 09:01:25.282 [H2MOD] [debug] : Initialized
15/08/2021 09:01:25.282 [H2MOD] [debug] : 0.6.3.0

15/08/2021 09:01:25.338 [H2MOD] [trace] : [Map Slots]: Startup - Caching map data
15/08/2021 09:01:25.338 [H2MOD] [trace] : [Map Slots]: Startup - Caching highplains.map
15/08/2021 09:01:25.339 [H2MOD] [trace] : H2MOD - Initialized v0.5a
15/08/2021 09:01:25.339 [H2MOD] [trace] : H2MOD - BASE ADDR 400000
15/08/2021 09:01:25.339 [H2MOD] [trace] : Applying hooks...
15/08/2021 09:01:25.343 [H2MOD] [trace] : Applying dedicated server hooks...
15/08/2021 09:01:25.353 [H2MOD] [info] : End of log
15/08/2021 09:01:58.087 [H2MOD] [debug] : Initialized
15/08/2021 09:01:58.087 [H2MOD] [debug] : 0.6.3.0

15/08/2021 09:01:58.108 [H2MOD] [trace] : [Map Slots]: Startup - Caching map data
15/08/2021 09:01:58.109 [H2MOD] [trace] : [Map Slots]: Startup - Caching highplains.map
15/08/2021 09:01:58.109 [H2MOD] [trace] : H2MOD - Initialized v0.5a
15/08/2021 09:01:58.109 [H2MOD] [trace] : H2MOD - BASE ADDR 400000
15/08/2021 09:01:58.109 [H2MOD] [trace] : Applying hooks...
15/08/2021 09:01:58.111 [H2MOD] [trace] : Applying dedicated server hooks...
15/08/2021 09:01:58.117 [H2MOD] [info] : End of log

h2network.log

15/08/2021 09:01:25.284 [Network] [debug] : Initialized
15/08/2021 09:01:25.284 [Network] [debug] : 0.6.3.0

15/08/2021 09:01:25.337 [Network] [trace] : CNic::GetBestInterfaceRouteAddressFromIp - found interface with IPv4 address: 172.22.0.2 to route from: 0.0.0.0 (0 = INADDR_ANY)
15/08/2021 09:01:25.338 [Network] [trace] : CXnIp::SetupLocalConnectionInfo - IP address is private - 172.22.0.2
15/08/2021 09:01:25.338 [Network] [trace] : CXnIp::SetupLocalConnectionInfo - lanaddr already specified: 192.168.1.9
15/08/2021 09:01:25.344 [Network] [trace] : XNetSetSystemLinkPort  (a1 = 20c)
15/08/2021 09:01:25.353 [Network] [info] : End of log
15/08/2021 09:01:58.089 [Network] [debug] : Initialized
15/08/2021 09:01:58.089 [Network] [debug] : 0.6.3.0

15/08/2021 09:01:58.107 [Network] [trace] : CNic::GetBestInterfaceRouteAddressFromIp - found interface with IPv4 address: 172.22.0.2 to route from: 0.0.0.0 (0 = INADDR_ANY)
15/08/2021 09:01:58.108 [Network] [trace] : CXnIp::SetupLocalConnectionInfo - IP address is private - 172.22.0.2
15/08/2021 09:01:58.108 [Network] [trace] : CXnIp::SetupLocalConnectionInfo - lanaddr already specified: 192.168.1.9
15/08/2021 09:01:58.111 [Network] [trace] : XNetSetSystemLinkPort  (a1 = 20c)
15/08/2021 09:01:58.117 [Network] [info] : End of log

h2xlive.log

15/08/2021 09:01:25.279 [XLive] [debug] : Initialized
15/08/2021 09:01:25.279 [XLive] [debug] : 0.6.3.0

15/08/2021 09:01:25.343 [XLive] [trace] : XLiveInitializeEx()
15/08/2021 09:01:25.343 [XLive] [trace] : XLiveInitializeEx - dwVersion = 0
15/08/2021 09:01:25.343 [XLive] [trace] : XLocatorServiceInitialize  (a1 = 189fc94, phLocatorService = 0x7c5570)
15/08/2021 09:01:25.353 [XLive] [info] : End of log
15/08/2021 09:01:58.085 [XLive] [debug] : Initialized
15/08/2021 09:01:58.085 [XLive] [debug] : 0.6.3.0

15/08/2021 09:01:58.111 [XLive] [trace] : XLiveInitializeEx()
15/08/2021 09:01:58.111 [XLive] [trace] : XLiveInitializeEx - dwVersion = 0
15/08/2021 09:01:58.111 [XLive] [trace] : XLocatorServiceInitialize  (a1 = 189fc94, phLocatorService = 0x7c5570)
15/08/2021 09:01:58.117 [XLive] [info] : End of log
raymand211092 commented 2 years ago

i have a problem starting halo 2 dedicated server in docker ... it gives me the same problems

shayaantx commented 2 years ago

@raymand211092 stian and I troubleshooted this over stream and I gave him some next steps but we never figured out exactly what was going on.

Do you get the same errors without running in in docker (he got same issues without docker)? I could never reproduce myself

Can you join the discord and tag administrators or message help and I'll find you

https://www.cartographer.online/discord