pvpgn / pvpgn-server

Next generation of PvPGN server
https://pvpgn.pro
GNU General Public License v2.0
556 stars 155 forks source link

Char Info directory Does Not Exist Error #470

Open justaplane opened 2 years ago

justaplane commented 2 years ago

Version - 1.99.8.0.0 RC1

When using a closed server, D2CS.log reports the following:

Feb 15 23:16:23 [error] pvpgn::d2cs::on_client_charlistreq_110: (*AccountName) charinfo directory do not exist, building it
Feb 15 23:16:23 [error] pvpgn::d2cs::on_client_charlistreq_110: Failed to create charinfo directory (C:\pvpgnmagic\release\var\charinfo/AccountName), errno = 17

When characters are created - You can name the character, go into the chat, create a game, and launch a game. However, if you exit back into where you would normally select one of your characters... the character is missing and displays nothing.

I can confirm that the directory does exist, and was created with chracter files in it. In fact every time you create a new character, that part works fine, and a new character file is created on the server. Despite this, D2CS thinks the directories do not exist, attempts to build it and fails (most likely because it already exists). And this results in not allowing the players to select their characters they had already built.

HarpyWar commented 2 years ago

Start pvpgn with Administrator rights or change the directory permissions to have write access there.

justaplane commented 2 years ago

I've confirmed that all startup service files are running as the system account, and that the entire directory structure has full access. Seems to still be occurring.

justaplane commented 2 years ago

Start pvpgn with Administrator rights or change the directory permissions to have write access there.

I've double confirmed, all services start with Administrator account, and the directories have full permissions. It seems that as soon as you login with an exisiting account, it attempts to create the "charinfo\accountname" directory even though the directory already exists and contains files in it. The issue persists even when trying to create a new account.

If you look at the log, the instant the account logs in, it tries to find the directory and says it's not there, then tries to re-create the directory even though it already exists. I think the issue lies in the fact that it's not finding the folder.

x1 Feb 16 10:33:01 [info ] pvpgn::d2cs::on_bnetd_accountloginreply: account TheBigBadDad authed Feb 16 10:33:01 [error] pvpgn::d2cs::on_client_charlistreq_110: (*TheBigBadDad) charinfo directory do not exist, building it Feb 16 10:33:01 [error] pvpgn::d2cs::on_client_charlistreq_110: Failed to create charinfo directory (C:\pvpgnmagic\release\var\charinfo/thebigbaddad), errno = 17 Feb 16 10:33:19 [info ] pvpgn::d2cs::on_client_createcharreq: (*TheBigBadDad) charinfo directory do not exist, building it Feb 16 10:33:19 [info ] pvpgn::d2cs::d2char_create: character anothertest(*TheBigBadDad) class 3 status 0x65 created Feb 16 10:33:19 [info ] pvpgn::d2cs::on_client_createcharreq: character anothertest(*TheBigBadDad) created Feb 16 10:33:19 [info ] pvpgn::d2cs::on_bnetd_charloginreply: character anothertest authed Feb 16 10:33:29 [info ] pvpgn::d2cs::d2cs_game_create: game Test pass= desc=gameflag=0x00300804 created (1 total) Feb 16 10:33:29 [info ] pvpgn::d2cs::on_client_creategamereq: request create game Test on gs 1 Feb 16 10:33:29 [info ] pvpgn::d2cs::on_d2gs_creategamereply: game Test created on gs 1 Feb 16 10:33:29 [info ] pvpgn::d2cs::on_client_joingamereq: request join game Test for character anothertest on gs 1 Feb 16 10:33:29 [info ] pvpgn::d2cs::on_d2gs_joingamereply: added anothertest to game Test on gs 1 Feb 16 10:33:29 [debug] pvpgn::trans_net: checking 192.168.3.110:4000 for client 192.168.3.143 ... Feb 16 10:33:29 [debug] pvpgn::trans_net: against entry -> 192.168.3.110:4000 output 73.208.229.90:4000 network 0.0.0.0/0x00000000 Feb 16 10:33:29 [debug] pvpgn::trans_net: 192.168.3.110:4000 translated to 73.208.229.90:4000 Feb 16 10:33:29 [info ] pvpgn::d2cs::on_d2gs_joingamereply: translated gameserver 192.168.3.110 -> 73.208.229.90 Feb 16 10:33:29 [info ] pvpgn::d2cs::d2cs_conn_destroy: [676] closed connection 9 (2 left) Feb 16 10:33:30 [info ] pvpgn::d2cs::game_add_character: added character anothertest to game Test (1 total) Feb 16 10:33:39 [info ] pvpgn::d2cs::game_del_character: removed character anothertest from game Test (0 left) Feb 16 10:33:40 [info ] pvpgn::d2cs::server_accept: accept connection from 192.168.3.143 Feb 16 10:33:40 [info ] pvpgn::d2cs::d2cs_conn_create: created session=10 socket=720 (3 current connections) Feb 16 10:33:40 [info ] pvpgn::d2cs::on_d2cs_initconn: [720] client initiated d2cs connection Feb 16 10:33:40 [info ] pvpgn::d2cs::on_client_loginreq: got client (*TheBigBadDad) login request sessionnum=0x1 Feb 16 10:33:40 [info ] pvpgn::d2cs::on_bnetd_accountloginreply: account TheBigBadDad authed Feb 16 10:33:40 [info ] pvpgn::d2cs::on_client_charloginreq: got character anothertest(*TheBigBadDad) login request Feb 16 10:33:40 [info ] pvpgn::d2cs::on_bnetd_charloginreply: character anothertest authed Feb 16 10:33:43 [error] pvpgn::d2cs::on_client_charlistreq_110: (*TheBigBadDad) charinfo directory do not exist, building it Feb 16 10:33:43 [error] pvpgn::d2cs::on_client_charlistreq_110: Failed to create charinfo directory (C:\pvpgnmagic\release\var\charinfo/thebigbaddad), errno = 17 Feb 16 10:33:49 [info ] pvpgn::d2cs::d2cs_conn_destroy: [720] closed connection 10 (2 left)

Not sure if this has anything to do with it, but look at this particular error in particular....

Feb 16 10:33:01 [info ] pvpgn::d2cs::on_bnetd_accountloginreply: account TheBigBadDad authed Feb 16 10:33:01 [error] pvpgn::d2cs::on_client_charlistreq_110: (*TheBigBadDad) charinfo directory do not exist, building it Feb 16 10:33:01 [error] pvpgn::d2cs::on_client_charlistreq_110: Failed to create charinfo directory (C:\pvpgnmagic\release\var\charinfo/thebigbaddad), errno = 17

Is it looking for a directory with the incorrect "\" ? Notice that when it tries to create the directory, it puts the incorrect "/" in front of the account name. It should be a "\"

The Client Sees this D2-Issue

The files clearly do exist however as seen below in these directories Files

justaplane commented 2 years ago

I've also downgraded to the latest stable release, and confirmed, that setup works fine, keeping all configuration files the same. After trying again a clean install of the pre-release, this issue persists.