Page 1 of 2

Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 10:24 am
by Blackstorm
Hello team ^^

I am on Linux Debian 7.6 (Linux xxxxxxx 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux)

The compilation generate an error :

Code: Select all

g++ -c `mysql_config --cflags` -march=native -pipe -O -pthread -std=c++0x -Wall -g -DVG_WORLD -DVG_DEBUG -D_GNU_SOURCE ../common/UDPServer.cpp -o ../common/UDPServer.o
../common/UDPServer.cpp: In member function 'void UDPServer::KickDupeClients(uint32_t, uint32_t)':
../common/UDPServer.cpp:249:187: error: no matching function for call to 'ChunkServer::DisconnectChunkClient(std::shared_ptr<Client>, int)'
../common/UDPServer.cpp:249:187: note: candidate is:
In file included from ../common/UDPServer.cpp:48:0:
../common/../world/ChunkServer.h:90:7: note: void ChunkServer::DisconnectChunkClient(std::shared_ptr<Client>&, uint16_t)
../common/../world/ChunkServer.h:90:7: note:   no known conversion for argument 1 from 'std::shared_ptr<Client>' to 'std::shared_ptr<Client>&'
Have a nice day ^^

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 10:53 am
by Lokked
I found this post:
viewtopic.php?f=4&t=771&p=6038&hilit=shared_ptr+linux#p6038
And the one below it.

If you remove the ampersand from the function+prototype, it should compile.

Thanks for reporting this.

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 11:01 am
by Blackstorm
Hi,

Thanks for your quick answer Looked ^^ Unfortunatly the link doesn't work for me.. (You are not authorised to read this forum.)

Can you say to me what file(s) i need/should modify please ?

Thanks in advance

Edit : ok i think i found it ^^

2 files :
../common/../world/ChunkServer.h -> line 90
and
../common/../world/ChunkServer.cpp -> line 2293

but at the end of the compilation i have that :

[quote]Building Lua... I need to optimize this
Finished with Lua.
Linking...
ChunkServer.o: In function `ChunkServer::ProcessCombat()':
/vgoemu/trunk/src/world/ChunkServer.cpp:2337: undefined reference to `PlayerCombat::Process()'
/vgoemu/trunk/src/world/ChunkServer.cpp:2338: undefined reference to `NpcCombat::Process()'
ChunkServer.o: In function `ChunkServer::HandleClientAutoAttackToggle(std::shared_ptr<Client> const&, PacketStruct*)':
/vgoemu/trunk/src/world/ChunkServer.cpp:2333: undefined reference to `PlayerCombat::AddCombat(std::shared_ptr<WorldCharacter>)'
ChunkServer.o: In function `ChunkServer::~ChunkServer()':
/vgoemu/trunk/src/world/ChunkServer.cpp:175: undefined reference to `NpcCombat::~NpcCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:175: undefined reference to `PlayerCombat::~PlayerCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:175: undefined reference to `NpcCombat::~NpcCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:175: undefined reference to `PlayerCombat::~PlayerCombat()'
ChunkServer.o: In function `ChunkServer::ChunkServer(ChunkInfo*)':
/vgoemu/trunk/src/world/ChunkServer.cpp:68: undefined reference to `PlayerCombat::PlayerCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:68: undefined reference to `NpcCombat::NpcCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:68: undefined reference to `NpcCombat::~NpcCombat()'
/vgoemu/trunk/src/world/ChunkServer.cpp:68: undefined reference to `PlayerCombat::~PlayerCombat()'
ChunkServer.o: In function `ChunkServer::HandleClientAuthConfirm(std::shared_ptr<Client>&, PacketStruct*)':
/vgoemu/trunk/src/world/ChunkServer.cpp:828: undefined reference to `PlayerCombat::AddCombat(std::shared_ptr<WorldCharacter>)'
collect2: error: ld returned 1 exit status
make: *** [vgemu-world] Erreur 1[/quote]

working to find the bug...

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 11:48 am
by Volt
I think the latest compiler issue is that Combat.h/.cpp must be added to the makefile.

Sorry about the compile issues. We don't have anyone doing the linux compilations around for the moment so I guess we sort of knew there would be issues. If you are ok to work with us to get it sorted it is very helpful.

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 12:13 pm
by Blackstorm
Yep, sure ^^ no problem for me, i follow actively this project ^^
I played more than 4 years at VG, when we have leave the game, Varking was the last target to fall, our community has leave the game approximately at the same time as Xanadu ^^

Otherwise i can check each time if the compilation run correctly on linux.

I proposed too, to host the svn and the dev mysql databases on my servers if it is always needed by your team.

Edit :

After i have added the "Combat.o" to the Makefile :

Code: Select all

Combat.cpp: In member function 'void PlayerCombat::Process()':
Combat.cpp:85:36: error: invalid initialization of non-const reference of type 'std::__detail::_Node_iterator<std::pair<const std::shared_ptr<WorldCha
racter>, std::unordered_set<std::shared_ptr<Npc> > >, false, true>&' from an rvalue of type 'std::_Hashtable<std::shared_ptr<WorldCharacter>, std::pai
r<const std::shared_ptr<WorldCharacter>, std::unordered_set<std::shared_ptr<Npc> > >, std::allocator<std::pair<const std::shared_ptr<WorldCharacter>,
std::unordered_set<std::shared_ptr<Npc> > > >, std::_Select1st<std::pair<const std::shared_ptr<WorldCharacter>, std::unordered_set<std::shared_ptr<Npc
> > > >, std::equal_to<std::shared_ptr<WorldCharacter> >, std::hash<std::shared_ptr<WorldCharacter> >, std::__detail::_Mod_range_hashing, std::__detai
l::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, true, false, true>::iterator {aka std::__detail::_Node_iterator<std::pair<const std::sha
red_ptr<WorldCharacter>, std::unordered_set<std::shared_ptr<Npc> > >, false, true>}'
Combat.cpp:134:41: error: invalid initialization of non-const reference of type '__gnu_cxx::__normal_iterator<std::shared_ptr<WorldCharacter>*, std::v
ector<std::shared_ptr<WorldCharacter> > >&' from an rvalue of type 'std::vector<std::shared_ptr<WorldCharacter> >::iterator {aka __gnu_cxx::__normal_i
terator<std::shared_ptr<WorldCharacter>*, std::vector<std::shared_ptr<WorldCharacter> > >}'
Maybe i am doing a mistake... i am not really a cpp dev ^^

edit2 : i am using cpp and g++ 4.7

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 12:46 pm
by Blackstorm
Ok i found it... same fight ^^

In Combat.cpp

Lines 85 and 134 you need to remove the ampersand.

^^

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 1:00 pm
by Blackstorm
Ok, now when i running the binary, all seems to be Ok but... i have this error :

Code: Select all

21:56:24.214 E Database Error running MySQL query (1054): Unknown column 'discovered_char_id_fk' in 'field list'
SELECT `faction_id`, `faction_name`, `is_prestige`, `discovered_char_id_fk` FROM `factions`
21:56:24.214 E Database Failed to loaded factions.
I have reimported the latest : vgo_world.sql
and added the current : temp_spawns.sql (no changes from the last stable release)

Edit : Actually "discovered_char_id_fk" is only present in the "titles" table.

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 1:15 pm
by Blackstorm
Ok, not playable

When i log on, the client don't show my first created char (created with rev635), and when i want to add a new char. the binary crash (just after i valid the char. apparence).

Code: Select all

22:10:54.130 I UDP      New client connected from 87.231.45.133:65458
22:10:54.131 I UDP      Received session request from 87.231.45.133:65458 with connection ID 42760184
22:10:54.219 I Net      New Session: Account ID: 266  Session ID: '17qh8khhfgb5e32rrjrcdpb9c7'
22:10:54.503 D Account  Character Created: 1
22:10:54.503 D Account  Character Created: 2
22:10:54.503 D Account  Character Created: 3
22:10:54.503 D Account  Character Created: 4
22:10:54.503 D Account  Character Created: 5
22:10:54.503 D Account  Character Created: 6
22:10:54.503 D Account  Character Created: 7
22:10:54.503 D Account  Character Created: 8
22:10:54.503 D Account  Character Created: 9
22:10:54.503 D Account  Character Created: 10
22:10:54.503 D Account  Character Created: 11
22:10:54.503 D Account  Character Created: 12
22:10:54.503 D Database Select:
SELECT `character_id`,`firstname`,`lastname`,`race`,`adventure_class`,`gender`,`adventure_level`,`current_chunk_fk`
FROM `characters`
WHERE `account_id`=266
AND `is_deleted`=0
LIMIT 12
22:10:54.503 D Account  Character Destroyed: 11
22:10:54.503 D Account  Character Destroyed: 10
22:10:54.503 D Account  Character Destroyed: 9
22:10:54.503 D Account  Character Destroyed: 8
22:10:54.503 D Account  Character Destroyed: 7
22:10:54.503 D Account  Character Destroyed: 6
22:10:54.503 D Account  Character Destroyed: 5
22:10:54.503 D Account  Character Destroyed: 4
22:10:54.503 D Account  Character Destroyed: 3
22:10:54.503 D Account  Character Destroyed: 2
22:10:54.503 D Account  Character Destroyed: 1
22:10:54.503 D Account  Character Destroyed: 0
22:10:57.283 I UDP      Client from 87.231.45.133:53502 set to disconnect : Timeout
22:11:02.283 I UDP      Client from 87.231.45.133:53502 has been removed.
22:11:02.283 D Account  Client Destroyed: 1
22:11:53.099 D Database Select:
SELECT `character_id`
FROM `characters`
WHERE `firstname`='Blacky'
AND is_deleted = 0
22:11:53.317 D LS       Create character request for 'Blacky' for account ID 266
22:11:53.317 D Database Query:
INSERT INTO `characters` (`account_id`,`firstname`,`lastname`,`adventure_class`,`race`,`gender`,`date_created`)
VALUES ('266','Blacky','TheOne','25','3','0',UNIX_TIMESTAMP())
22:11:53.318 D Rules    Rule: R_Player:DefaultTitleShow, Value: 1
22:11:53.318 D Rules    Rule: R_Player:DefaultTitlePrefix, Value: 600
22:11:53.319 D Rules    Rule: R_Player:DefaultTitleSuffix, Value: 601
22:11:53.319 D Database Query:
INSERT INTO `character_details` (`char_id_fk`,`title_show`,`title_prefix`,`title_suffix`) VALUES (1, 1, 600, 601)
22:11:53.319 D Database Query:
INSERT INTO `character_appearances` (`char_id_fk`,`appearance_id`,`appearance_value`) VALUES ('1','0','50'),('1','1','50'),('1','2','1'),('1','3','1')
,('1','4','1'),('1','5','1'),('1','6','1'),('1','7','1'),('1','8','1'),('1','9','1'),('1','10','1'),('1','11','1'),('1','12','50'),('1','13','50'),('1
','14','50'),('1','15','50'),('1','16','50'),('1','17','50'),('1','18','50'),('1','19','50'),('1','20','50'),('1','21','50'),('1','22','50'),('1','23'
,'50'),('1','24','50'),('1','25','50'),('1','26','50'),('1','27','50'),('1','28','50'),('1','29','50'),('1','30','50'),('1','31','50'),('1','32','50')
,('1','33','50'),('1','34','50'),('1','35','50'),('1','36','50'),('1','37','50'),('1','38','50'),('1','39','50'),('1','40','50'),('1','41','50'),('1',
'42','50'),('1','43','50'),('1','44','50'),('1','45','50'),('1','46','50'),('1','47','50'),('1','48','50'),('1','49','50'),('1','50','50'),('1','51','
50'),('1','52','50'),('1','53','50'),('1','54','50'),('1','55','50'),('1','56','50'),('1','57','50'),('1','58','50'),('1','59','50'),('1','60','50'),(
'1','61','50'),('1','62','50'),('1','63','50')
22:11:53.320 D Database Query:
INSERT INTO `character_titles` (`char_id_fk`,`title_id_fk`) VALUES (1,600)
22:11:53.321 D Database Query:
INSERT INTO `character_titles` (`char_id_fk`,`title_id_fk`) VALUES (1,601)
22:11:53.321 D Char     Adding default chunk for race: 3, class: 25 for id: 1 (choice: true)
22:11:53.322 D Database Select:
SELECT `shortname`, s.`start_x`, s.`start_y`, s.`start_z` FROM starting_locations s, chunks c WHERE s.chunk_id = c.id AND class_id IN (25, 255) AND ra
ce_id IN (3, 255)
22:11:53.322 D Database Query:
UPDATE characters c1, chunks c2, starting_locations s SET
c1.current_chunk_fk = c2.id,
c1.starting_chunk_fk = c2.id,
c1.current_x = s.start_x,
c1.current_y = s.start_y,
c1.current_z = s.start_z,
c1.current_pitch = s.start_pitch,
c1.current_yaw = s.start_yaw,
c1.current_roll = s.start_roll
WHERE c2.id = s.chunk_id
AND s.class_id IN (25, 255)
AND s.race_id IN (3, 255)
AND c1.character_id = 1
22:11:53.323 D Char     Success: Set Home Town starting location to 'HathorZhi'
22:11:53.323 D LS       Character 'Blacky' created with character ID 1
22:11:53.601 D Account  Character Created: 1
22:11:53.601 D Account  Character Created: 2
22:11:53.601 D Account  Character Created: 3
22:11:53.601 D Account  Character Created: 4
22:11:53.602 D Account  Character Created: 5
22:11:53.602 D Account  Character Created: 6
22:11:53.602 D Account  Character Created: 7
22:11:53.602 D Account  Character Created: 8
22:11:53.602 D Account  Character Created: 9
22:11:53.602 D Account  Character Created: 10
22:11:53.602 D Account  Character Created: 11
22:11:53.602 D Account  Character Created: 12
22:11:53.602 D Database Select:
SELECT `character_id`,`firstname`,`lastname`,`race`,`adventure_class`,`gender`,`adventure_level`,`current_chunk_fk`
FROM `characters`
WHERE `account_id`=266
AND `is_deleted`=0
LIMIT 12
22:11:53.602 D Database Select:
SELECT `appearance_id`, `appearance_value` FROM `character_appearances` WHERE `char_id_fk`=1 LIMIT 64
22:11:53.602 D Char     Loading character 'Blacky TheOne' (1) for account_id: 266
22:11:53.602 D Net      Sending char data for 'Blacky', Apocalypse
22:11:53.603 D Account  Character Destroyed: 11
22:11:53.603 D Account  Character Destroyed: 10
22:11:53.603 D Account  Character Destroyed: 9
22:11:53.603 D Account  Character Destroyed: 8
22:11:53.603 D Account  Character Destroyed: 7
22:11:53.603 D Account  Character Destroyed: 6
22:11:53.603 D Account  Character Destroyed: 5
22:11:53.603 D Account  Character Destroyed: 4
22:11:53.603 D Account  Character Destroyed: 3
22:11:53.603 D Account  Character Destroyed: 2
22:11:53.603 D Account  Character Destroyed: 1
22:11:53.603 D Account  Character Destroyed: 0
22:12:09.683 D Account  Character Created: 1
22:12:09.683 D Database Select:
SELECT `character_id`
FROM `characters`
WHERE `firstname`='Blacky'
AND is_deleted = 0
22:12:09.684 D Database Query:
UPDATE `character_appearances` SET `appearance_value`=
CASE
WHEN `appearance_id`=0 THEN 50
WHEN `appearance_id`=1 THEN 50
WHEN `appearance_id`=2 THEN 1
WHEN `appearance_id`=3 THEN 1
WHEN `appearance_id`=4 THEN 1
WHEN `appearance_id`=5 THEN 1
WHEN `appearance_id`=6 THEN 1
WHEN `appearance_id`=7 THEN 1
WHEN `appearance_id`=8 THEN 1
WHEN `appearance_id`=9 THEN 1
WHEN `appearance_id`=10 THEN 1
WHEN `appearance_id`=11 THEN 1
WHEN `appearance_id`=12 THEN 50
WHEN `appearance_id`=13 THEN 50
WHEN `appearance_id`=14 THEN 50
WHEN `appearance_id`=15 THEN 50
WHEN `appearance_id`=16 THEN 50
WHEN `appearance_id`=17 THEN 50
WHEN `appearance_id`=18 THEN 50
WHEN `appearance_id`=19 THEN 50
WHEN `appearance_id`=20 THEN 50
WHEN `appearance_id`=21 THEN 50
WHEN `appearance_id`=22 THEN 50
WHEN `appearance_id`=23 THEN 50
WHEN `appearance_id`=24 THEN 50
WHEN `appearance_id`=25 THEN 50
WHEN `appearance_id`=26 THEN 50
WHEN `appearance_id`=27 THEN 50
WHEN `appearance_id`=28 THEN 50
WHEN `appearance_id`=29 THEN 50
WHEN `appearance_id`=30 THEN 50
WHEN `appearance_id`=31 THEN 50
WHEN `appearance_id`=32 THEN 50
WHEN `appearance_id`=33 THEN 50
WHEN `appearance_id`=34 THEN 50
WHEN `appearance_id`=35 THEN 50
WHEN `appearance_id`=36 THEN 50
WHEN `appearance_id`=37 THEN 50
WHEN `appearance_id`=38 THEN 50
WHEN `appearance_id`=39 THEN 50
WHEN `appearance_id`=40 THEN 50
WHEN `appearance_id`=41 THEN 50
WHEN `appearance_id`=42 THEN 50
WHEN `appearance_id`=43 THEN 50
WHEN `appearance_id`=44 THEN 50
WHEN `appearance_id`=45 THEN 50
WHEN `appearance_id`=46 THEN 50
WHEN `appearance_id`=47 THEN 50
WHEN `appearance_id`=48 THEN 50
WHEN `appearance_id`=49 THEN 50
WHEN `appearance_id`=50 THEN 50
WHEN `appearance_id`=51 THEN 50
WHEN `appearance_id`=52 THEN 50
WHEN `appearance_id`=53 THEN 50
WHEN `appearance_id`=54 THEN 50
WHEN `appearance_id`=55 THEN 50
WHEN `appearance_id`=56 THEN 50
WHEN `appearance_id`=57 THEN 50
WHEN `appearance_id`=58 THEN 50
WHEN `appearance_id`=59 THEN 50
WHEN `appearance_id`=60 THEN 50
WHEN `appearance_id`=61 THEN 50
WHEN `appearance_id`=62 THEN 50
WHEN `appearance_id`=63 THEN 50
END
WHERE `char_id_fk`=1
22:12:09.685 D Database Select:
SELECT `account_id`, `firstname`, `lastname`, `race`, `gender`, `posture`, `title_show`, `title_prefix`, `title_suffix`, `adventure_class`, `adventure
_level`, `adventure_xp`, `crafting_class`, `crafting_level`, `crafting_xp`, `diplomacy_class`, `diplomacy_level`, `diplomacy_xp`, `current_chunk_fk`,
`current_x`, `current_y`, `current_z`, `current_pitch`, `current_yaw`, `current_roll` FROM `characters` JOIN `character_details` ON `character_id`=`ch
ar_id_fk` WHERE `character_id`=1
22:12:09.686 D Rules    Rule: R_Player:DefaultMovementSpeed, Value: 750.0
terminate called after throwing an instance of 'std::bad_weak_ptr'
  what():  std::bad_weak_ptr
22:12:09.686 E Signal   Caught signal SIGABRT (6)

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 2:14 pm
by Volt
Just did a quick test on my local machine: I made a Blacky TheOne, dark elf, bloodmage, customized his hair and a few more things, choose to start in Hathor Zhi. And the world server crashed when he was about to enter the game. So we got an issue.

Restarted the world server and then I could play him just fine.

Hoping someone can pick up on this.

Blackstorm, can you play your Blacky after you restart your world server?

Re: Compilation issues with rev665 (linux)

Posted: Wed Sep 24, 2014 2:51 pm
by Blackstorm
Yes, i have just restarted the server and it work fine now with the new char.

but the server log this :

Code: Select all

23:39:55.860 E Char     GetFactionActualValue: Invalid faction id 275 at WorldCharacter.cpp:1027
23:39:55.860 E Chunk    HandleClientNpcFaction: No such faction (275) at ChunkServer.cpp:1727
23:41:06.269 D Database Query:
UPDATE `characters`
SET `current_x`=-96741.000000, `current_y`=-10956.000000, `current_z`=-2810.000000, `current_pitch`=0, `current_yaw`=54426, `current_roll`=0, `adventu
re_level`=1, `adventure_xp`=0,`crafting_level`=1, `crafting_xp`=0, `diplomacy_level`=1, `diplomacy_xp`=0, `current_chunk_fk`=67, date_lastseen=UNIX_TI
MESTAMP(), is_online = 0
WHERE character_id = 1
23:41:06.271 D Database Query:
UPDATE `character_details` SET `title_show`=1, `title_prefix`=600, `title_suffix`=601 WHERE char_id_fk=1
23:41:06.271 D Database Query:
DELETE FROM `character_titles` WHERE char_id_fk=1
23:41:06.271 D Database Query:
INSERT IGNORE INTO `character_titles` (`char_id_fk`,`title_id_fk`) VALUES ('1','600'),('1','601')
23:41:06.272 D Database Query:
DELETE FROM `character_factions` WHERE char_id_fk=1
23:41:06.272 E Database Error running MySQL query (1146): Table 'vgworld.character_factions' doesn't exist
DELETE FROM `character_factions` WHERE char_id_fk=1
23:41:06.272 E Char     SaveCharacter: Failed to save character factions at WorldDatabase.cpp:1392
- Second case, my char. "Blackstorm" can't be reloaded (same after 2 or 3 client restart and quick switch to the first created player), should be the same bug as usually (only one char / server), so i have deleted "Blacky", and same after that my player is not available.

Logs say :

Code: Select all

23:47:35.184 I UDP      Client from 87.231.45.133:53989 set to disconnect : Timeout
23:47:41.184 I UDP      Client from 87.231.45.133:53989 has been removed.
23:47:41.184 D Account  Client Destroyed: 1
23:47:55.185 I UDP      Client from 87.231.45.133:52532 set to disconnect : Timeout
23:48:00.185 I UDP      Client from 87.231.45.133:52532 has been removed.
23:48:00.185 D Account  Client Destroyed: 0
So i think all char. has been deleted.

Edit: Ok , after i have recreated only one player, restarted the client, the World_serv not responding. so i restarted it, and now all seems work correctly.

But we have always some issues with the faction table :

Code: Select all

00:03:19.014 E Database Error running MySQL query (1146): Table 'vgworld.character_factions' doesn't exist
SELECT `char_id_fk`, `faction_id_fk`, `faction_value` FROM `character_factions` WHERE `char_id_fk`=2
and

Code: Select all

00:00:37.097 E Char     GetFactionActualValue: Invalid faction id 275 at WorldCharacter.cpp:1027
00:00:37.098 E Chunk    HandleClientNpcFaction: No such faction (275) at ChunkServer.cpp:1727


and when you logout

Code: Select all

00:02:35.039 E Database Error running MySQL query (1146): Table 'vgworld.character_factions' doesn't exist
DELETE FROM `character_factions` WHERE char_id_fk=2
00:02:35.039 E Char     SaveCharacter: Failed to save character factions at WorldDatabase.cpp:1392
00:02:35.039 I UDP      Client from 87.231.45.133:51289 set to disconnect : Application
00:02:35.063 D Account  Client Created: 3
00:02:35.063 I UDP      New client connected from 87.231.45.133:51289
00:02:35.063 I UDP      Client from 87.231.45.133:51289 set to disconnect : Application
00:02:35.540 E Unreal   Could not find unreal channel list for account id 0!
new edit :

On the console, in vgclient, when you are log in, we have this message :

Code: Select all

Failed to save your character. You should relog now.