linux server crashing upon character select
Moderators: Community Managers, Developers
linux server crashing upon character select
Hi everyone,
I work best by breaking things, and in order to break things I need my own copy =) I've spent the past 2 days or trying to get a server up and running on my linux machine here at home and have ran into some difficulties. The first was that it appears that the code will not properly compile with g++-4.6, and requires g++-4.8; I've installed g++-4.8 on my ubuntu machine according to this post which has allowed me to compile it. After fixing a bunch of misc firewall issues I can now launch the server and it properly talks to your login server. The problem however, is once a character is selected the code segfaults.
At first I believed this to be an issues with the oddball way g++-4.8 was installed, so I started up a VM with ubuntu 14.04 which has native g++-4.8 support. However, the code continues to seg fault; with my limited gdb knowledge (I'm working on it!) I was able to get this:
Any help on the appropriate next steps would be greatly appreciated!
(running svn version 546, copied over all .xml files from the trunk/conf directory to the trunk/src/world directory, & only imported vgo_world.sql into my sql database.)
and here is the output leading up to the segfault:
I work best by breaking things, and in order to break things I need my own copy =) I've spent the past 2 days or trying to get a server up and running on my linux machine here at home and have ran into some difficulties. The first was that it appears that the code will not properly compile with g++-4.6, and requires g++-4.8; I've installed g++-4.8 on my ubuntu machine according to this post which has allowed me to compile it. After fixing a bunch of misc firewall issues I can now launch the server and it properly talks to your login server. The problem however, is once a character is selected the code segfaults.
At first I believed this to be an issues with the oddball way g++-4.8 was installed, so I started up a VM with ubuntu 14.04 which has native g++-4.8 support. However, the code continues to seg fault; with my limited gdb knowledge (I'm working on it!) I was able to get this:
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
0x0000000000456818 in Net::SendCharacterInfo (this=0x729ba0 <net>, client=..., characters=0x7fffffff9960, count=2) at Net.cpp:253
253 out->SetInt32("Coord_x", info->coord_x);
(gdb) backtrace
#0 0x0000000000456818 in Net::SendCharacterInfo (this=0x729ba0 <net>, client=..., characters=0x7fffffff9960, count=2) at Net.cpp:253
#1 0x0000000000456f20 in Net::HandleCharacterSelected (this=0x729ba0 <net>, client=..., packet_struct=0x754620) at Net.cpp:353
#2 0x0000000000455f02 in Net::Process (this=0x729ba0 <net>) at Net.cpp:145
#3 0x00000000004554d8 in main (argc=1, argv=0x7fffffffe638) at Main.cpp:137
(running svn version 546, copied over all .xml files from the trunk/conf directory to the trunk/src/world directory, & only imported vgo_world.sql into my sql database.)
and here is the output leading up to the segfault:
Code: Select all
Module: VGOEmulator WorldServer, Version: 0.1 Alpha
Copyright (C) 2014 VGOEmulator. http://vgoemulator.net/
VGOEmulator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
VGOEmulator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Website : http://vgoemulator.net
SVN : http://svn.vgoemulator.net/svn/vgoemulator
18:47:45.941 I General Starting VGOEmulator WorldServer v0.1 Alpha
18:47:45.947 I Database MySQL database connected to 192.168.1.18:3306
18:47:45.953 E Packet Error finding opcode with name OP_ClientRaidLockout
18:47:45.953 E Packet Error finding opcode with name OP_ServerPOIRegion
18:47:45.954 E Packet Error finding opcode with name OP_ServerPOIChunk
18:47:45.954 E Packet Error finding opcode with name OP_ServerPOIAdd
18:47:45.954 E Packet Error finding opcode with name OP_ServerPOILocations
18:47:45.956 E Packet Error finding opcode with name OP_ServerChestItems
18:47:45.956 E Packet Error finding opcode with name OP_ServerAssemblyItems
18:47:45.957 E Packet Error finding opcode with name OP_ServerEscrowItems
18:47:45.958 E Packet Error finding opcode with name OP_ServerBeginCastText
18:47:45.958 E Packet Error finding opcode with name OP_ClientAutoAttackToggle
18:47:45.959 E Packet Error finding opcode with name OP_ServerChunkPreload2
18:47:45.959 E Packet Error finding opcode with name OP_ServerRemoveBeneficialEffect
18:47:45.959 E Packet Error finding opcode with name OP_ServerItemRefreshTimer
18:47:45.959 E Packet Error finding opcode with name OP_ServerSpellCurrentSequence
18:47:45.960 E Packet Error finding opcode with name OP_ClientMoveWornItem
18:47:45.960 E Packet Error finding opcode with name OP_ServerMoveWornItem
18:47:45.960 E Packet Error finding opcode with name OP_ServerCancelMaintainedEffect
18:47:45.960 E Packet Error finding opcode with name OP_ServerPlayerIconLevel
18:47:45.960 E Packet Error finding opcode with name OP_ServerCampTimer
18:47:45.960 E Packet Error finding opcode with name OP_ServerSetGameTime
18:47:45.961 E Packet Error finding opcode with name OP_ClientHail
18:47:45.961 I Config Successfully loaded 406 packet structs.
18:47:45.962 D Rules Loaded 1 Rule Sets
18:47:45.964 E Database Error running MySQL query (1054): Unknown column 'script_id' in 'field list'
SELECT id, `continent`, `shortname`, `filename`,`start_x`,`start_y`,`start_z`,`file_count`,`file_guid`, `file_size`,
`coord_x`, `coord_y`, `displayname`, `start_pitch`, `start_yaw`, `start_roll`, `chunk_type`, `behavior_flags`, `access_flags`,
`is_city`, `always_loaded`, `shutdown_timer`, `file_count`, `name_count`, `file_guid`, `file_size`, `ruleset_id`, `script_id`
FROM `chunks`
WHERE 1
18:47:45.965 I Database Successfully loaded 4 variables.
18:47:45.967 I Database Successfully loaded 464 commands.
18:47:45.967 E Database Error running MySQL query (1146): Table 'vgemu.lua_scripts' doesn't exist
SELECT `script_id`, `script_name` FROM `lua_scripts` WHERE `script_type` = 'Spawn'
18:47:45.968 I Lua Successfully loaded 0 spawn scripts.
18:47:45.968 E Database Error running MySQL query (1146): Table 'vgemu.lua_scripts' doesn't exist
SELECT `script_id`, `script_name` FROM `lua_scripts` WHERE `script_type` = 'Chunk'
18:47:45.968 I Lua Successfully loaded 0 chunk scripts.
[New Thread 0x7ffff6682700 (LWP 9776)]
[New Thread 0x7ffff5651700 (LWP 9777)]
18:47:45.970 I Net Server listening on 192.168.1.112:10100
[New Thread 0x7ffff4e50700 (LWP 9778)]
[New Thread 0x7fffeffff700 (LWP 9779)]
18:47:46.279 I Net Connected to login server 68.98.218.5:10102
[New Thread 0x7fffef7fe700 (LWP 9780)]
18:49:03.050 I UDP New client connected from 192.168.2.1
18:49:03.050 I UDP Received session request from 192.168.2.1 with connection ID 1308004898
18:49:03.132 I Net New Session: Account ID: 104 Session ID: '3j44duk473d18i12nc3rt3vum5'
Program received signal SIGSEGV, Segmentation fault.- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: linux server crashing upon character select
Check the `characters` table in your world database, ensure the current_chunk_fk value is not a zero. What was happening on my machine was this value is 0, and the newer code that tries to display your current location cannot resolve "Coord_x", which is the first of 2 coords that define the chunk filename.
See if this is the case, and post your results.
Also, I will push current code to Public which has a revamped vgo_world.sql file - I advice source it in fully and allowing it to wipe your tables. Hopefully this clears things up.
See if this is the case, and post your results.
Also, I will push current code to Public which has a revamped vgo_world.sql file - I advice source it in fully and allowing it to wipe your tables. Hopefully this clears things up.
Re: linux server crashing upon character select
[quote="John Adams"]Check the `characters` table in your world database, ensure the current_chunk_fk value is not a zero. What was happening on my machine was this value is 0, and the newer code that tries to display your current location cannot resolve "Coord_x", which is the first of 2 coords that define the chunk filename.
See if this is the case, and post your results.
Also, I will push current code to Public which has a revamped vgo_world.sql file - I advice source it in fully and allowing it to wipe your tables. Hopefully this clears things up.[/quote]
updating the database clears up the seg fault! Now it just sits at "waiting for data from..." forever. I have tcp/udp ports 10100-10200 forwarded so I'm hoping it's not an issue with my location (south africa).
ps - is there a way to remove characters from "my characters" tab in the account management? I've created a ton trying to troubleshoot and would like to remove most of them.
See if this is the case, and post your results.
Also, I will push current code to Public which has a revamped vgo_world.sql file - I advice source it in fully and allowing it to wipe your tables. Hopefully this clears things up.[/quote]
updating the database clears up the seg fault! Now it just sits at "waiting for data from..." forever. I have tcp/udp ports 10100-10200 forwarded so I'm hoping it's not an issue with my location (south africa).
ps - is there a way to remove characters from "my characters" tab in the account management? I've created a ton trying to troubleshoot and would like to remove most of them.
Re: linux server crashing upon character select
Alright the "waiting..." issue seems to be resolved by making a new character - it appears the old ones were not fully created. Now the problem is I cannot delete them! I've tried wiping them from my local database but I think they're stuck on the login server database.
also - is there a way to make a server private? I added a world password but that doesn't appear to help.
also - is there a way to make a server private? I added a world password but that doesn't appear to help.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: linux server crashing upon character select
[quote="mons00n"]Alright the "waiting..." issue seems to be resolved by making a new character - it appears the old ones were not fully created. Now the problem is I cannot delete them! I've tried wiping them from my local database but I think they're stuck on the login server database.[/quote]
Give me the name or server_id of your world and I will clear the characters. Right now there's no way for you to do it (coming eventually)
[quote="mons00n"]also - is there a way to make a server private? I added a world password but that doesn't appear to help.[/quote]
Locked worlds are not implemented yet. We've only had the one until recently. You will always get characters created from people even on your Locked world though, because that's just how VG loads the world list. Ie., you cannot pick a character to log into a world if we "hide" it from character create/select.
We can however prevent people from logging in fully after create. We just haven't seen the need just yet.
Give me the name or server_id of your world and I will clear the characters. Right now there's no way for you to do it (coming eventually)
[quote="mons00n"]also - is there a way to make a server private? I added a world password but that doesn't appear to help.[/quote]
Locked worlds are not implemented yet. We've only had the one until recently. You will always get characters created from people even on your Locked world though, because that's just how VG loads the world list. Ie., you cannot pick a character to log into a world if we "hide" it from character create/select.
We can however prevent people from logging in fully after create. We just haven't seen the need just yet.
Re: linux server crashing upon character select
[quote="John Adams"]Give me the name or server_id of your world and I will clear the characters. Right now there's no way for you to do it (coming eventually)[/quote]
No worries, I figured that feature was incomplete =) There's no "server ID", but the World ID is 12 ("mons00n's test server").
[quote="John Adams"]
Locked worlds are not implemented yet. We've only had the one until recently. You will always get characters created from people even on your Locked world though, because that's just how VG loads the world list. Ie., you cannot pick a character to log into a world if we "hide" it from character create/select.
We can however prevent people from logging in fully after create. We just haven't seen the need just yet.[/quote]
understood. I just didn't want people connecting and expecting any sort of performance seeing as my upload is horrendous (0.5mbps at best, thanks Africa). I had multiple people connecting and creating characters on my server this morning when New Telon was down.
No worries, I figured that feature was incomplete =) There's no "server ID", but the World ID is 12 ("mons00n's test server").
[quote="John Adams"]
Locked worlds are not implemented yet. We've only had the one until recently. You will always get characters created from people even on your Locked world though, because that's just how VG loads the world list. Ie., you cannot pick a character to log into a world if we "hide" it from character create/select.
We can however prevent people from logging in fully after create. We just haven't seen the need just yet.[/quote]
understood. I just didn't want people connecting and expecting any sort of performance seeing as my upload is horrendous (0.5mbps at best, thanks Africa). I had multiple people connecting and creating characters on my server this morning when New Telon was down.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: linux server crashing upon character select
Heh cool, this is why I do want multiple servers running and connected besides New Telon. We'll be crashing a lot for quite a while, and I don't want people to not be able to see our progress.