Cannot get through to character selection.

04/28/2019 15:14 pakinglalat#1
Hi thank you for opening my thread. I have added that __SECURITY_FIXES that has alot of changes made. My problem is that whenever I login and after in the server selection screen it will always just "Connecting, please wait" and wont get through to character selection. I do not get why this is happening. But when I close the client, on the server files I receive this error only:
Code:
RemoveUser(): *pUser->m_pKey is '
I tried searching it in the source and it goes here.
File: User.cpp(LoginServer Project) Function:
Code:
BOOL CUserMng::RemoveUser( DPID dpid )
{
	CMclAutoLock Lock( m_AddRemoveLock );
#ifdef __STL_0402
	C2User::iterator i = m_dpid2User.find( dpid );
	if( i != m_dpid2User.end() )
	{
		CUser* pUser	= i->second;
		m_dpid2User.erase( i );
#else	// __STL_0402
	CUser* pUser;
	if( m_dpid2User.Lookup( dpid, pUser ) )
	{
		m_dpid2User.RemoveKey( dpid );
#endif	// __STL_0402
		m_ac2User.erase( pUser->m_pKey );

		if( !pUser->m_bIllegal )
		{
			if( *pUser->m_pKey != '\0' )
			{
				g_dpDBClient.SendLeave( pUser->m_pKey, pUser->m_idPlayer, timeGetTime() - pUser->m_dwTime );
			}
			else
				WriteLog( "RemoveUser(): *pUser->m_pKey is '\0'" );

			if( pUser->m_idPlayer > 0 )
				g_dpCoreClient.SendLeave( pUser->m_idPlayer );
		}
		else
		{
			WriteLog( "RemoveUser(): Illegal" );
		}
		g_dpLoginSrvr.CacheOut( pUser->m_nIndexOfCache );

		SAFE_DELETE( pUser );
		m_uCount--;
		return TRUE;
	}
	WriteLog( "RemoveUser(): dpid not found" );
	return FALSE;
}
What did I do wrong? Please help, I am so frustrated with this already trying to figure out for hours now :(

-- UPDATE
I have removed most of the snippets in the part where it's about logging in and I still cannot get through :(
04/29/2019 08:47 Naltalah#2
Not being able to log in often is a result of serialization errors between servers.

If you added any system, that serializes information, make sure every part of the server-client connection or even server-server connection serializes it properly.
04/30/2019 04:14 pakinglalat#3
Quote:
Originally Posted by Naltalah View Post
Not being able to log in often is a result of serialization errors between servers.

If you added any system, that serializes information, make sure every part of the server-client connection or even server-server connection serializes it properly.
Hi there and thank you for your information. Yes I do have that in my mind, but I have double checked everything that I have added though and reverted it all back to what it was fine before. But it still wont get through. Do you have more extended information about that serialization in the source? Thank you!
04/30/2019 11:17 Naltalah#4
It's not only the serialization between Worldserver & Client, also the Serialization between DB/Cache and Worlserver can get thrown off.

Every character is being serialized twice. So make sure to check both times that happens.
05/01/2019 17:56 pakinglalat#5
Thank you so much. I have fixed it now.