PDA

View Full Version : 5.12.0.5



Nstalkerga
09-12-2008, 09:15 PM
Any one getting random crashes on the newer 5.12.0.5 vs the everquest.h fixes from 5.12.4.2?

Will do some additional testing tommorow, but seemed the earlier fix was pretty stable .. and after loading the 0.5 it gave me a few crashes this evening.

uRit1u2CBBA=
09-12-2008, 10:36 PM
odd - I've had no noticeable problems with the latest version.

I usually keep the last several versions available in case I need to recompile an old version - if you've done the same, just recompile the one that works better.

Nstalkerga
09-13-2008, 07:12 AM
Thats pretty much exactly what i was going to try.
In fact my folder looks like the cvs tree ;)


But i wanted to be sure it wasn't something common before i started digging into it.


Thanks

Fatal
09-14-2008, 09:27 PM
I do get some crashes when zoning.

Also, once I die, my marker stays a corpse until I restart.

uRit1u2CBBA=
09-14-2008, 09:30 PM
Yeah, I was going to ask about that one too.

If you die and get rezzed and never zone, you remain a corpse.

It gets funny if you do that a few times, you get:

Player's Corpse's Corpse's Corpse00


But if you take the zone when dead, you come back fine.

ieatacid
09-15-2008, 04:47 PM
Ok, I fixed the corpse thing.

What zones are you crashing in? I can't seem to get it to do it.

Nstalkerga
09-15-2008, 08:32 PM
Ive noticed it in Crystallos and MMM so far .. ill try to keep track on it.

ieatacid
09-16-2008, 07:22 PM
I can't get it to crash, but I don't play anymore so I just ran through a bunch of zones.

I pushed a new tarball that has the corpse stuff fix. Maybe that will resolve the crash issue. Please report back if it doesn't.


Edit: I used a level one character and kept killing it over and over to fix this, so I wasn't really able to find a rez in the same zone. It's working with respawning, though. Does that produce the same behavior? :crosses fingers:

uRit1u2CBBA=
09-16-2008, 08:17 PM
I'll let you know once I compile it.

I saw you started adding new expansion crap. I'll try to have a new races.h file and new icons created if I can get the new info out of the beta patcher. I'll likely not have a chance at looking at these until the weekend. I'll let you know.

fransick
09-17-2008, 08:53 PM
Not sure if this is the same issue reported above but I managed to catch a seg fault with the latest 5.12.5.1 code release


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208088896 (LWP 10152)]
0x0813277c in GroupMgr::totalLevels (this=0x89904c0) at group.cpp:342
342 total += m_members[i]->m_spawn->level();
(gdb) bt
#0 0x0813277c in GroupMgr::totalLevels (this=0x89904c0) at group.cpp:342
#1 0x0810c7db in ExperienceWindow::addExpRecord (this=0x890b1f0, mob_name=@0x9271530, mob_level=70, xp_gained=0, zone_name=@0xbf9ab1a8)
at experiencelog.cpp:296
#2 0x08110763 in ExperienceWindow::qt_invoke (this=0x890b1f0, _id=61, _o=0xbf9ab238) at experiencelog.moc:118
#3 0x02e98154 in QObject::activate_signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#4 0x08117cd3 in Player::expGained (this=0x8c20880, t0=@0x8c214e0, t1=70, t2=0, t3=@0xbf9ab2e0) at player.moc:596
#5 0x0811a533 in Player::updateExp (this=0x8c20880, data=0x92fa050 "\020") at player.cpp:669
#6 0x0811b4d3 in Player::qt_invoke (this=0x8c20880, _id=15, _o=0xbf9ab39c) at player.moc:737
#7 0x02e98154 in QObject::activate_signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#8 0x0808eb9d in EQPacketDispatch::signal (this=0x8cb9170, t0=0x92fa050 "\020", t1=8, t2=2 '\002') at packetinfo.moc:99
#9 0x0808afda in EQPacketStream::dispatchPacket (this=0x8929888, data=0x92fa050 "\020", len=8, opCode=3736, opcodeEntry=0x892ca78) at packetstream.cpp:435
#10 0x0808cac1 in EQPacketStream::processPacket (this=0x8929888, packet=@0xbf9ab508, isSubpacket=true) at packetstream.cpp:748
#11 0x0808ca67 in EQPacketStream::processPacket (this=0x8929888, packet=@0xbf9ad5ec, isSubpacket=false) at packetstream.cpp:801
#12 0x0808d4d1 in EQPacketStream::handlePacket (this=0x8929888, packet=@0xbf9ad5ec) at packetstream.cpp:566
#13 0x08097285 in EQPacket::dispatchPacket (this=0x89297a0, packet=@0xbf9ad5ec) at packet.cpp:659
#14 0x080976f0 in EQPacket::qt_invoke (this=0x89297a0, _id=2, _o=0xbf9ad6c8) at packet.cpp:583
#15 0x02e98154 in QObject::activate_signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#16 0x02e9860a in QObject::activate_signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#17 0x0321105b in QTimer::timeout () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#18 0x02ebdeda in QTimer::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0x02e3374d in QApplication::internalNotify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0x02e3409c in QApplication::notify () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x02e27fd9 in QEventLoop::activateTimers () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0x02dddb94 in QEventLoop::processEvents () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0x02e4bdcb in QEventLoop::enterLoop () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0x02e4bcd6 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x02e33119 in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0x080683c5 in main (argc=1, argv=0xbf9ae294) at main.cpp:722
I was getting random but somewhat regular crashes with 5.12.5.0 as well. Usually when zoning into guild lobby.

ieatacid
09-17-2008, 09:10 PM
Were you grouped?

fransick
09-18-2008, 04:40 AM
No, I don't believe so. This crash was on my bazaar mule right after I logged him in. Before logging him in, I was on another toon and 4 boxing, however.

uRit1u2CBBA=
09-18-2008, 06:46 PM
Ok, I fixed the corpse thing.

What zones are you crashing in? I can't seem to get it to do it.

Works great. I died in Solteris and was rezzed without zoning. No more corpse's corpse's corpse.

ieatacid
09-18-2008, 06:52 PM
I think this should fix it. Could you apply this diff and see if fixes your crash?

For some reason it won't let me upload it so I'll just paste it.


Index: src/group.h
================================================== =================
--- src/group.h (revision 707)
+++ src/group.h (working copy)
@@ -43,7 +43,7 @@
unsigned long totalLevels();

public slots:
-// void player(const charProfileStruct* player);
+ void player(const charProfileStruct* player);
void groupUpdate(const uint8_t* data, size_t size);
void addGroupMember(const uint8_t* data);
void removeGroupMember(const uint8_t* data);
Index: src/races.h
================================================== =================
--- src/races.h (revision 706)
+++ src/races.h (working copy)
@@ -595,4 +595,42 @@
"Banner", // 586
"Elven Ghost", // 587
"Human Ghost", // 588
+ "Chest", // 589
+ "Chest", // 590
+ "Crystal", // 591
+ "Coffin", // 592
+ "Guardian CPU", // 593
+ "Worg", // 594
+ "Mansion", // 595
+ "Floating Island", // 596
+ "Cragslither", // 597
+ "Wrulon", // 598
+ "UNKNOWN RACE", // 599
+ "UNKNOWN RACE", // 600
+ "UNKNOWN RACE", // 601
+ "Burynai", // 602
+ "Frog", // 603
+ "Dracolich", // 604
+ "Iksar Ghost", // 605
+ "Iksar Skeleton", // 606
+ "Mephit", // 607
+ "Muddite", // 608
+ "Raptor", // 609
+ "Sarnak", // 610
+ "Scorpion", // 611
+ "Tsetsian", // 612
+ "Wurm", // 613
+ "Balrog", // 614
+ "Hydra Crystal", // 615
+ "Crystal Sphere", // 616
+ "Gnoll", // 617
+ "Sokokar", // 618
+ "Stone Pylon", // 619
+ "Demon Vulture", // 620
+ "Wagon", // 621
+ "God of Discord", // 622
+ "Wrulon Mount", // 623
+ "UNKNOWN RACE", // 624
+ "Sokokar Mount", // 625
+ "UNKNOWN RACE", // 626
#endif
Index: src/group.cpp
================================================== =================
--- src/group.cpp (revision 707)
+++ src/group.cpp (working copy)
@@ -42,21 +42,28 @@
}
}

-// 9/3/2008 - Not used. Group data is no longer sent in charProfile
-#if 0
void GroupMgr::player(const charProfileStruct* player)
{
- // reset counters
+ // We receive a GroupUpdate packet after playerProfile so we'll clear the
+ // member list then repopulate it in case we lost someone during zoning
m_memberCount = 0;
m_membersInZoneCount = 0;

+ for(int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ {
+ m_members[i]->m_name = "";
+ m_members[i]->m_spawn = 0;
+ }
+
emit cleared();

+// 9/3/2008 - Not used. Group data is no longer sent in charProfile. We still
+// need to reset the data as done above.
+#if 0
// initialize the array of members with information from the player profile
for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
{
-// so it compiles
-// m_members[i]->m_name = player->groupMembers[i];
+ m_members[i]->m_name = player->groupMembers[i];

if (!m_members[i]->m_name.isEmpty())
m_memberCount++;
@@ -72,8 +79,8 @@

emit added(m_members[i]->m_name, m_members[i]->m_spawn);
}
+#endif
}
-#endif

void GroupMgr::groupUpdate(const uint8_t* data, size_t size)
{
@@ -172,26 +179,43 @@
{
const groupDisbandStruct* gmem = (const groupDisbandStruct*)data;

- for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ // If we're disbanding, reset counters and clear member slots
+ if(!strcmp(gmem->membername, m_player->name()))
{
- // is this the member?
- if (m_members[i]->m_name == gmem->membername)
+ m_memberCount = 0;
+ m_membersInZoneCount = 0;
+
+ for(int i = 0; i < MAX_GROUP_MEMBERS; i++)
{
- // yes, announce its removal
- emit removed(m_members[i]->m_name, m_members[i]->m_spawn);
+ m_members[i]->m_name = "";
+ m_members[i]->m_spawn = 0;
+ }

- // decrement member count
- m_memberCount--;
+ emit cleared();
+ }
+ else
+ {
+ for(int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ {
+ // is this the member?
+ if(m_members[i]->m_name == gmem->membername)
+ {
+ // yes, announce its removal
+ emit removed(m_members[i]->m_name, m_members[i]->m_spawn);

- // if the member is in zone decrement zone count
- m_members[i]->m_spawn = m_spawnShell->findSpawnByName(m_members[i]->m_name);
- if(m_members[i]->m_spawn)
- m_membersInZoneCount--;
+ // decrement member count
+ m_memberCount--;

- // clear it
- m_members[i]->m_name = "";
- m_members[i]->m_spawn = 0;
- break;
+ // if the member is in zone decrement zone count
+ m_members[i]->m_spawn = m_spawnShell->findSpawnByName(m_members[i]->m_name);
+ if(m_members[i]->m_spawn)
+ m_membersInZoneCount--;
+
+ // clear it
+ m_members[i]->m_name = "";
+ m_members[i]->m_spawn = 0;
+ break;
+ }
}
}
}
Index: src/interface.cpp
================================================== =================
--- src/interface.cpp (revision 709)
+++ src/interface.cpp (working copy)
@@ -1653,8 +1653,8 @@
if (m_groupMgr != 0)
{
// 9/3/2008 - Group data is no longer sent in charProfile
-// connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
-// m_groupMgr, SLOT(player(const charProfileStruct*)));
+ connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
+ m_groupMgr, SLOT(player(const charProfileStruct*)));
//remove this
// m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
// "groupUpdateStruct", SZC_None,

fransick
09-18-2008, 08:52 PM
Tested and looks to have elleviated the specific crashes I was seeing. As always, nice job and thanks for looking into it!