View Full Version : Zone crashes
number6
01-16-2007, 07:55 PM
On my private server (The Village) I have a player with a character that crashes the zone as soon as it plays, and I believe it is the same issue as reported by http://www.projecteq.net/phpBB2/viewtopic.php?t=2055
If I restore the character to a backup, it is able to play as normal so there is something in the character data in the DB that is causing zones to crash. I am not able to see anything pertaining to this in the log files. I am about to increase debugging levels and try to track this problem down but I wanted to post this issue here now in case anyone else has seen it - and of course, if there's a fix already it'd save me a lot of work.
If anyone wants a DB dump of the character to try and reproduce on their own server I'll be happy to oblige, send me a PM. I'm running with the latest version 944 but it also exhibits the same problem on 942.
Paul.
number6
01-17-2007, 12:49 AM
I have a lot more info now after testing. If I remove all buffs from the character causing the problem, then they are OK after that. The problem is occurring for one player only and it now appears that after the initial titanium install, he accidentally patched. He then reisntalled Titanium *over the top* of the patched install. My current theory is that this has broken something so that the client is sending bogus profile packet data to the server, which is being duly written out to the blob, and later on is crashing the server.
I've asked the player to do a fresh install and see if the problem re-occurs. In the meantime I hacked together a really quick and dirty php script to allow players to fix it for themselves. This allows you to debuff any character on the server so it's not something you'd use for a public server but the code might be useful to someone. I can't seem to post the script here - perhaps the PHP code is upsetting the forum code here - but send me an IM if you want it.
Regards
Paul.
John Adams
01-17-2007, 02:07 AM
You are correct. You absolutely canNOT uninstall and reinstall without wiping out the existing Everquest (or titanium) directory. Residual files could very well cause a problem if the client "sees" them and chooses on it's own to use them.
The only safe way to recover from a patched Titanium is uninstall, delete dir completely, then reinstall, and do not patch.
number6
01-17-2007, 08:14 PM
Well, here's an update: the player did a fresh install but still managed to trigger the problem last night. He was fighting with his bard in tutorialb and had a "sicken" dot on him. The problem occurred when the mob that had cast sicken died. My hack to clear buffs on his character has got him up and running again. I am starting to wonder whether there's some problem with debuffs/dots on a player from time to time when the aggressor is no longer in zone.
I'm trying to work through the code that would be called to handle the dot.
Paul.
cavedude
01-18-2007, 03:35 AM
It is definitely a code issue, because zone crashes and it does it with my 0.6.2 client and my freshly installed Titanium client. This bug is killing us over at PEQ. We are working on it, but have yet to find a solution.
number6
01-18-2007, 07:24 PM
I've sent Cavedude my php hack. The problem is still happening on my server. The main issue with debugging this is that I can't seem to get anything meaningful in the logs and I'm finding the spell/buffs code a bit of a labyrinth. I'm a bit rusty on this; can anyone advise a way to get a core dump from the zone executable so I can see where it crashed via gdb, or am I talking too old technology (been a while). I'm not getting core files anywhere.
Paul.
WildcardX
01-18-2007, 07:30 PM
I shamelessly stole the php skeleton from a guy whose name escapes me but he wrote this clever php script for Minilogin support. Anyway, great job whatever your name was!
I wrote this quick for use with our world server at PEQ today and it seems to work well, but I advise you to backup your database before using this tool just to be safe.
What this does is clears all buffs from the character you specify. This does not fix the problem, but it does let you manage the issue until either KLS or myself identify the cause of this problem and implement a fix.
Anyway, use this at your own risk.
<?php
$DB_ADDY = ""; //address:port for the MySQL server
$DB_USER = ""; //username to login to MySQL with
$DB_PASS = ""; //password to login to MySQL with
$DB_DB = ""; //database name
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PEQ - Player Character Buff Removal</title>
<style type="text/css">
<!--
body,td,th {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #CCCCCC;
}
body {
background-color: #000000;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {font-size: 9px}
.formelements {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
line-height: normal;
font-weight: normal;
font-variant: normal;
color: #FFFFFF;
background-color: #333333;
border: thin solid #666666;
}
a {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #CCCCCC;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #CCCCCC;
}
a:hover {
text-decoration: underline;
color: #CCCCCC;
}
a:active {
text-decoration: none;
color: #CCCCCC;
}
.style4 {font-size: 10px}
-->
</style>
</head>
<body>
<div align="center"><?php
if(!isset($_POST['Submit'])) {
?>
<br />
<br />
<form id="form1" name="form1" method="post" action="index.php">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right" valign="top"><div align="right">Account Name: </div></td>
<td align="left" valign="top"><input name="accountname" type="text" class="formelements" id="accountname" size="30" maxlength="30" />
<br />
<span class="style1">*must be a valid account name for this server only.</span></td>
</tr>
<tr>
<td align="right" valign="top"><div align="right">Character Name: </div></td>
<td align="left" valign="top"><input name="charactername" type="text" class="formelements" id="charactername" size="64" maxlength="64" />
<br />
<span class="style1">*must be a valid character name for the account name provided above.</span></td>
</tr>
<tr>
<br />
<td colspan="2" align="center" valign="top"><input name="Submit" type="submit" class="formelements" value="Remove All Buffs" /> <input name="Reset" type="reset" class="formelements" value="Clear" /></td>
</tr>
</table>
</form>
<?php
} else {
$link = mysql_connect($DB_ADDY,$DB_USER,$DB_PASS);
mysql_select_db($DB_DB,$link);
$sql_select_charid = "select c.id from account a inner join character_ c on a.id = c.account_id where a.name like '".($_REQUEST['accountname'])."' and c.name like '".($_REQUEST['charactername'])."'";
$res = mysql_query($sql_select_charid,$link) or die ("MySQL server database error: ".mysql_error());
$row_count = mysql_num_rows($res);
if($row_count == 1) {
$row = mysql_fetch_row($res);
$characterid = $row[0];
if($characterid >= 0) {
$sql_select_character_profile = "select profile from character_ where id = ".$characterid;
$res = mysql_query($sql_select_character_profile,$link) or die ("MySQL server database error: ".mysql_error());
if($res) {
$row = mysql_fetch_row($res);
$profile_data = $row[0];
$before_length = strlen($profile_data);
$i = 5506;
while($i < 6008) {
$profile_data[$i] = 0;
$i++;
}
$after_length = strlen($profile_data);
if($before_length == $after_length) {
$sql_profile_update = "update character_ set profile = '$profile_data' where id = '$characterid'";
// echo "<p>$sql_profile_update</p>";
mysql_query($sql_profile_update,$link) or die ("MySQL server database error: ".mysql_error());
echo "<p>Successfully removed all buffs from character ".($_REQUEST['charactername'])." (".$characterid.")!</p>";
// echo "<p>Before the update, profile length was $before_length bytes. After the update, profile length is $after_length</p>.";
}
else {
echo "ERROR: Unable to process request to clear buffs for character = ".($_REQUEST['charactername'])."($characterid) because your profile lengths did not match. Please notify a GM.";
}
}
else {
echo "ERROR: Unable to retrieve character profile data for character = ".($_REQUEST['charactername'])."($characterid). Please notify a GM.";
}
}
else {
echo "ERROR: Obtained an invalid character id (id = ".$characterid.").";
}
}
else {
echo "ERROR: Unable to retrieve data for character ".($_REQUEST['charactername']).".";
}
}
?>
<br />
<br />
</body>
</html>
number6
01-22-2007, 10:28 PM
I reverted back to release 939 for now and the problem seems to have gone away judging from initial reports from the players. When I have time I'll look at some code diffs and see if I can work out what broke. Is this what the rest of you have done in order to sidestep the problem?
Paul.
cavedude
01-23-2007, 03:34 AM
The issue started in build 942. Using 941 seems to be safe, however since there are features in 942+ than PEQ requires, we are diligently trying to come up with a fix. Once we do, we'll post it here.
I spent my whole morning tracking this down and I think I have it fixed with the next version 945.
cavedude
01-23-2007, 06:06 AM
Thank you!
solid11
01-23-2007, 08:24 AM
Wooty woot woot
number6
01-24-2007, 06:12 AM
Many thanks - I've patched my server and so far, so good :)
Paul.
Jibbatwinkers
01-24-2007, 11:21 AM
thanks for the fix KLS :) Can enjoy all those other nice updates you put in 442 and 444 now !
Wizardanim
02-24-2007, 02:53 PM
Was this issue resolved? Whenever i log into the game, the zone crashes, for any character in any zone... just happened with updating the exe files
cavedude
02-24-2007, 03:31 PM
Yes this issue is without a doubt corrected. PEQ has only seen one zone crash in a week (the fewest I've seen in a very long time), and it was completely unrelated to this.
For crashes with the newer exes make sure the AA stuff is up to date in your DB.. it's very touchy and will crash the server when you load a character if it's not correct.. wont just fail to load like other stuff.
Wizardanim
02-24-2007, 08:51 PM
Have double checked AA tables, and still haveing the problem.
Its a new PEQ database, with all the SQL querrys from the changelog, plus your new AA file which has the correct table outlines and data...
i get this nice little message
*edit* reposted as an image LINK lol, was a bit big for forum
http://img137.imageshack.us/img137/941/eqemuproblemms6.jpg
Angelox
02-24-2007, 11:32 PM
Do you have this problem with static zones only? could you try dynamic? I think I might have this also, but since I don't need static zones, I just use dynamic.
Wizardanim
02-25-2007, 11:37 AM
yes same problem with dynamic... i know there must be something im missing but not sure what
http://img393.imageshack.us/img393/1252/untitledsg9.jpg
Wizardanim
02-25-2007, 09:40 PM
Sry bout double post... cant edit last one.
I do notice one error in the dynamic list here. (above)
>>Store character inventory failed. Query '<null>' #1264: out of range value adjusted for column 'color' at row 1
will mess with this error and the character inventory tables in the next few days... hopefully this fixes the issue. Exact same setup on both ... just one is dynamic and one is static. Strange how one shows the error but not the other, no? with same server versions.
MysticDeath
02-27-2007, 10:12 AM
Solved the problem on my own, leaving this up for anyone else with a similiar problem.
Hmm, not sure if this is a related crash.
But I havn't played in a while, and decided to boot up my server yesterday. (After upgrading to the latest emu again; i'm quite familiar with the setup of the server, so I don't think the problem is the server) but everytime my character logs into the server from char select screen, i get a few outputs.
Minilogin reports this:
1416234 New client from ip: 192.168.1.55 port:1058
Unknown packet: .4233692 [92.153.64.0:15->0.0.0.0:0]
[OpCode 0x0003 <OP_Unknown> Size=11]
00000: 00 06 00 00 00 00 00 00 - 00 00 00
World.exe:
[Debug] [WORLD__CLIENT_ERR] sphinx: Zone bootup timer expired, bootup failed or too slow.
[Debug] [WORLD__CLIENT_ERR] sphinx: Received unknown EQApplicationPacket
[Debug] [WORLD__CLIENT_ERR] [OpCode OP_WorldLogout <0x7186> Size=0]
*sigh* is this related?
Edit:
I opened a static zone.
It seems that the crash is irrelevent whether or not my character connects to it. It crashes when a zone loads. Any and all static zones I loaded crashed immediatly. And any dynamic zones my characters connect to crashes when trying to load.
I get this error
[Error] Error in GetAASkillVars 'SELECT cost, max_level, hotkey_sid, hotkey_sid2, title_sid, desc_sid, type, prereq_skill, prereq_minpoints, spell_type, spell_refresh, classes, berserker,spellid,class_type,name,cost_inc FROM altadv_vars WHERE skill_id=2': #1054: Unknown column 'cost_inc' in 'field list'
I did a quick search for 'cost_inc' on the forum. I got the "No matches" hehe. :P
Edit 2:
Sourced in some code from changelogs
Zone didn't crash instead gave me a ton of errors about npc_types.see_hide.
Error loading NPCs from database. Bad query: #1054: Unknown column 'npc_types.see_hide' in 'field list'
Edit 3:
Checked changelog.txt for npc_types sql's found this
Required SQL:
ALTER TABLE `npc_types` ADD `see_hide` tinyint(4) NOT NULL default '0';
ALTER TABLE `npc_types` ADD `see_improved_hide` tinyint(4) NOT NULL default '0';
Optional SQL:
UPDATE `npc_types` SET `see_hide` = 1 WHERE see_invis = '1';
UPDATE `npc_types` SET `see_hide` = 1 WHERE see_invis_undead = '1'; Isn't that conveniant?
Angelox
02-27-2007, 11:52 AM
Looks like you haven't properly updated your database according to the logs posted with the releases at the EqEmu download.
I just posted a new version of my AX_PEQ database here;
http://eq.ismg.ch/mirkwood/news.php
it contains all updates for the newest EQEmu-0.7.0-988. Should work if that's your problem.
Also , if you have a Linux server, be sure to read this;
http://eqemulator.net/forums/showpost.php?p=131056&postcount=9
MysticDeath
02-27-2007, 05:29 PM
Thanks Ill give your AX a try. :P
Wizardanim
02-28-2007, 06:22 AM
Sry bout double post... cant edit last one.
I do notice one error in the dynamic list here. (above)
>>Store character inventory failed. Query '<null>' #1264: out of range value adjusted for column 'color' at row 1
will mess with this error and the character inventory tables in the next few days... hopefully this fixes the issue. Exact same setup on both ... just one is dynamic and one is static. Strange how one shows the error but not the other, no? with same server versions.
well this error is confusing... apparently it cant save the characters invintory... where the querry was <NULL> ... heres the default schema for invintory
CREATE TABLE inventory (
charid int(11) unsigned NOT NULL default '0',
slotid mediumint(7) unsigned NOT NULL default '0',
itemid int(11) unsigned default '0',
charges tinyint(3) unsigned default '0',
color int(11) unsigned NOT NULL default '0',
augslot1 mediumint(7) unsigned NOT NULL default '0',
augslot2 mediumint(7) unsigned NOT NULL default '0',
augslot3 mediumint(7) unsigned NOT NULL default '0',
augslot4 mediumint(7) unsigned NOT NULL default '0',
augslot5 mediumint(7) unsigned default '0',
instnodrop tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (charid,slotid)
) TYPE=MyISAM;
and this is what i have (double checked) - any ideas? all the values in the table right now are set to 0, dosent seem to be able to save data there.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.