MUnique / OpenMU

This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".
https://munique.net
MIT License
707 stars 296 forks source link

Help: The game cannot be entered after updating the server version. #438

Open sd3420625 opened 1 month ago

sd3420625 commented 1 month ago

After updating the latest server files and starting the service, the docker container status shows normal, but after the client enters the password, it is stuck on the login interface and cannot enter the game.

sd3420625 commented 1 month ago

ps: used all-in-one-traefik in docker mode

sven-n commented 1 month ago

Do you have any errors in the log file for that moment of entering the game?

sven-n commented 1 month ago

Or do you see any updates on the admin panel, which need to be executed? You'll not get into the game without the duel update.

sd3420625 commented 1 month ago

MuError.log This is the error log of the client, but it is garbled. The server webpage shows Finished starting and there is no other log.

The upgrade information in the admin panel has been confirmed and approved, and because it had no effect, I deleted all the servers and re-git pulled the latest files. I also got stuck after entering the account and password without any prompts and could not connect.

sd3420625 commented 1 month ago

I even re-git pull the historical projects including 0.8.7 and 0.8.10, but still can't connect. However, it is completely possible before updating the server in the morning. The server version used is the version on July 12th, and there are no problems.

sd3420625 commented 1 month ago

Could it be that there is a problem with the database due to the upgrade, so authentication cannot be done?

sd3420625 commented 1 month ago

This is the log of the database container. No abnormalities are seen.

PostgreSQL Database directory appears to contain a database; Skipping initialization 2024-07-20 10:31:36.526 UTC [1] LOG: starting PostgreSQL 16.3 (Debian 16.3-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit 2024-07-20 10:31:36.528 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 2024-07-20 10:31:36.528 UTC [1] LOG: listening on IPv6 address "::", port 5432 2024-07-20 10:31:36.533 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 2024-07-20 10:31:36.542 UTC [30] LOG: database system was shut down at 2024-07-20 07:54:02 UTC 2024-07-20 10:31:36.572 UTC [1] LOG: database system is ready to accept connections 2024-07-20 10:36:36.641 UTC [28] LOG: checkpoint starting: time 2024-07-20 10:36:36.657 UTC [28] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.008 s, sync=0.002 s, total=0.016 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB; lsn=0/B655CB8, redo lsn=0/B655C80

sd3420625 commented 1 month ago

Here's the error log:

2024-07-20 12:16:57.712 +00:00 [Error] [MUnique.OpenMU.Network.Connection] Connection will be disconnected, because of an exception System.Net.Sockets.SocketException (110): Operation timed out at Pipelines.Sockets.Unofficial.Internal.Throw.Socket(Int32 errorCode) in //src/Pipelines.Sockets.Unofficial/Internal/Throw.cs:line 59 at Pipelines.Sockets.Unofficial.SocketConnection.DoReceiveAsync() in //src/Pipelines.Sockets.Unofficial/SocketConnection.Receive.cs:line 64 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 2024-07-20 12:16:57.766 +00:00 [Error] [MUnique.OpenMU.Network.Connection] Connection will be disconnected, because of an exception System.Net.Sockets.SocketException (110): Operation timed out at Pipelines.Sockets.Unofficial.Internal.Throw.Socket(Int32 errorCode) in //src/Pipelines.Sockets.Unofficial/Internal/Throw.cs:line 59 at Pipelines.Sockets.Unofficial.SocketConnection.DoReceiveAsync() in //src/Pipelines.Sockets.Unofficial/SocketConnection.Receive.cs:line 64 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadBufferAsync() at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 51 at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at Pipelines.Sockets.Unofficial.SocketConnection.DoSendAsync() in /_/src/Pipelines.Sockets.Unofficial/SocketConnection.Send.cs:line 44 at MUnique.OpenMU.Network.PacketPipeReaderBase.ReadSourceAsync() in /src/Network/PacketPipeReaderBase.cs:line 67 at MUnique.OpenMU.Network.Connection.BeginReceiveAsync() in /src/Network/Connection.cs:line 105

sven-n commented 1 month ago

wait... so 0.8.6 works for you, but the versions after that have a problem?

sd3420625 commented 1 month ago

wait... so 0.8.6 works for you, but the versions after that have a problem?

Maybe, since I only experimented with these few versions. In terms of process, I installed and ran it successfully for the first time on July 12th, upgraded the latest git library on July 20th, and the connection failed. Then when I rolled back to 0.8.10 and 0.8.7, the connection failed.

sven-n commented 1 month ago

Really strange. If it's a server problem, there shouldn't be a timeout from the client. Need to find a decryptor for this client error log.

sd3420625 commented 1 month ago

After testing, reinstalling the server system, installing the latest version of the server, and rolling back to the 0.8.2 server did not solve the problem. It is so strange. How did the installation succeed last week, and I played well all week?

sven-n commented 1 month ago

Can you try it with a freshly extracted season 6 client as well?

sd3420625 commented 1 month ago

Can you try it with a freshly extracted season 6 client as well?

Just tried it, doesn't work

sd3420625 commented 1 month ago

I now wonder if it is a problem with the Windows system registry where the client is located.

sd3420625 commented 1 month ago

I played with a few friends on the previous server, and they can't connect to the updated server now.

sven-n commented 1 month ago

Okay, one more idea. The admin panel has the option to download the game configuration as Json file. Try going to the full game configuration page and download it. Zip and attach it here, so I can take a look 😉

sd3420625 commented 1 month ago

Okay, one more idea. The admin panel has the option to download the game configuration as Json file. Try going to the full game configuration page and download it. Zip and attach it here, so I can take a look 😉

20240721082904 I tried edge and chrome browsers, but they both prompted download errors.

sd3420625 commented 1 month ago

Now it is basically determined that it is a database problem. You can log in using any version of the new database. However, if you import an existing database, you will be stuck in the login state.

sd3420625 commented 1 month ago

how to export user information from the original database and import it into the new database

sd3420625 commented 1 month ago

This is the storage volume file stored in the database container in docker

_data.zip

sd3420625 commented 1 month ago

Now I basically understand the problem: when upgrading the server yesterday, the admin panel prompted to confirm the function upgrade. The database may not be fully merged for some reason, so the upgrade status is not completed and the client cannot log in.

sd3420625 commented 1 month ago

Finally, I chose to export the role data table and reconstruct the database, and the problem was solved. But what caused the database upgrade to fail remains to be confirmed.