EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bug Reports (https://www.eqemulator.org/forums/forumdisplay.php?f=591)
-   -   Zone Crash Bug in newest CVS release (https://www.eqemulator.org/forums/showthread.php?t=17053)

Xorith 11-18-2004 03:54 AM

Zone Crash Bug in newest CVS release
 
Hello, submitted this on the bugzilla on sourceforge.

I'll paste it here too, though.

When a player (well, in this case it was a GM) loots an NPC's corpse, the zone server dies.

Here's my core dump through gdb:

(gdb) bt
#0 0x0812cc9f in ItemCommonInst::GetAugmentItemID (this=0x0, slot=3 '\003') at Item.h:361

#1 0x0816cdb6 in Client::SendItemLink (this=0x89dd810, inst=0x8a15c78, send_to_all=true) at inventory.cpp:468
#2 0x080d13b5 in Corpse::LootItem (this=0x8a33990, client=0x89dd810, app=0x8a13f38) at PlayerCorpse.cpp:929
#3 0x081081c4 in Client::HandlePacket (this=0x89dd810, app=0x8a13f38) at client_packet.cpp:2070
#4 0x080ab4d1 in Client::Process (this=0x89dd810) at client_process.cpp:523
#5 0x0808e566 in EntityList::MobProcess (this=0x81d9960) at entity.cpp:326
#6 0x080b4f20 in main (argc=5, argv=0x1) at net.cpp:373
(gdb)
#0 0x0812cc9f in ItemCommonInst::GetAugmentItemID (this=0x0, slot=3 '\003') at Item.h:361
#1 0x0816cdb6 in Client::SendItemLink (this=0x89dd810, inst=0x8a15c78, send_to_all=true) at inventory.cpp:468
#2 0x080d13b5 in Corpse::LootItem (this=0x8a33990, client=0x89dd810, app=0x8a13f38) at PlayerCorpse.cpp:929
#3 0x081081c4 in Client::HandlePacket (this=0x89dd810, app=0x8a13f38) at client_packet.cpp:2070
#4 0x080ab4d1 in Client::Process (this=0x89dd810) at client_process.cpp:523
#5 0x0808e566 in EntityList::MobProcess (this=0x81d9960) at entity.cpp:326
#6 0x080b4f20 in main (argc=5, argv=0x1) at net.cpp:373
(gdb)


Notice frame #0 has this=0x0 (NULL). This is usually a "very bad thing" :P

Not sure, but could this also be linked to the Merchant issue where the merchants always say "This item is for display purposes only"...? I found out that the Merchant only says this when the item lookup in the DB fails.

-- Xorith

cavedude 11-18-2004 05:50 AM

I can confirm. When I loot a NPC's corpse, the zone server doesn't crash, however the character can't do anything until they zone/camp.

Xorith 11-18-2004 10:00 AM

My server does that when you interact with merchants.. Very very odd.

Does it make sense that having added columns to the items table (per a few posts around here) might break shared memory?

Doodman 11-18-2004 10:55 AM

I don't think the NPC looting and the merchant one are the same but, but the NPC looting is fixed in dev CVS.. Should be on SF in a few hours.

But here is the patch to loottables.cpp:
Code:

*** loottables-orig.cpp Mon Nov  8 19:11:03 2004
--- loottables.cpp      Thu Nov 18 16:39:27 2004
***************
*** 599,604 ****
--- 599,609 ----
                               
        item->item_id = item2->ItemNumber;
        item->charges = charges;
+      item->aug1 = 0;
+      item->aug2 = 0;
+      item->aug3 = 0;
+      item->aug4 = 0;
+      item->aug5 = 0;
        if (equipit) {
                uint8 eslot = 0xFF;
                //const Item_Struct* item2 = database.GetItem(item->item_id);

Sorry about that.. Thought I caught all ServerLootItem_Structs, but missed setting the augments to 0 on the NPC loot.

Xorith 11-18-2004 01:11 PM

Thanks Doodman! Excellent response time. :) Even better than most commercial projects.


All times are GMT -4. The time now is 04:52 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.