FrostfangSea - multiple instances

Old bugs stored here for reference.
Locked
User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

FrostfangSea - multiple instances

Post by John Adams » Sun Jul 28, 2013 10:02 am

Before I forget, something odd happened to me and Xinux yesterday. FrostfangSea, set up as instance_type NONE, spawned 2 instances when we logged in. I was in 1 instance, he was in another. He had to do a /goto to get to me. In the /who all, all I saw was 2 players in Frostfang Sea, but when I did just a /who, I saw only myself - Same for Xinux.

In the console, GM Tess logged in:
16:25:10 D Player: Loading character_details for 'Tess' (char_id: 23)
16:25:10 I Spawn: Loaded for zone 'FrostfangSea' (470):
1838 NPC(s), 1229 Object(s), 59 Widget(s)
81 Sign(s), 1920 Ground Spawn(s), 1828 Spawn Group(s)
1164 Spawn Group Association(s), 0 Spawn Group Chance(s)
And subsequently client crashed (or went LD)
16:27:29 D Zone: Client is disconnecting in ZoneServer::ClientProcess (camping = false)
16:27:29 D Zone: Sending login equipment appearance updates...
16:27:29 D Login: Looking for Login Appearance Updates for char_id: 23
16:27:29 D Zone: Calling clients.Remove(client)...
16:27:29 D Guilds: Guild Member logged out.
16:27:29 D Zone: Removing client 'Tess' (23) due to LD/Exit...
16:27:29 I Zone: Scheduling client 'Tess' for removal.
16:27:29 D Player: Toggling Character OFFLINE!
16:27:29 D CClient: Client Disconnect...
16:27:29 D Zone: Starting zone shutdown timers...
16:27:40 D World: Removing connection...
And 30s later, Xinux logs in - Frostfang should have still been running (300s timeout)
16:28:02 D Player: Loading character_details for 'Xinux' (char_id: 247)
16:28:02 I Spawn: Loaded for zone 'FrostfangSea' (470):
1838 NPC(s), 1229 Object(s), 59 Widget(s)
81 Sign(s), 1920 Ground Spawn(s), 1828 Spawn Group(s)
1164 Spawn Group Association(s), 0 Spawn Group Chance(s)
Which put him in a different instance than me when I came back in 20s later later:
16:29:20 I ZoneAuth: Access Key: 1374967756, Character Name: Tess, Account ID: 150
Possible to reproduce this by logging in 1 client on 1 account, going LD and waiting to see the shutdown timers start. Then, connect a 2nd client/acct to the same zone. That's basically what we did.

The Bug:
No zone should ever spawn a 2nd instance if it is set to instance_type NONE. Not even max_players zones.


This has apparently been the case for some time, because remember the DB Project server had a loaded Instances table for zone 470, and Foof told me he never set that up... only the Cave quest zone, so he's been seeing this without knowing it for a while.

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: FrostfangSea - multiple instances

Post by thefoof » Sun Jul 28, 2013 12:16 pm

I know jab implemented a fix for this at some point...seemed like it worked but apparently it popped up again

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: FrostfangSea - multiple instances

Post by Jabantiz » Sun Jul 28, 2013 1:38 pm

It was in the select for the zone data, specifically the instance_type, the db used an enum and the code expects an int so I had added a +0 to the select, thought it fixed the issue.

In WorldDatabase::LoadZoneInfo

Code: Select all

MYSQL_RES* result = query.RunQuery2(Q_SELECT, "SELECT id, file, description, underworld, safe_x, safe_y, safe_z, min_status, min_level, max_level, instance_type+0, shutdown_timer, zone_motd, default_reenter_time, default_reset_time, default_lockout_time, force_group_to_zone, safe_heading, xp_modifier, ruleset_id, expansion_id, weather_allowed FROM zones where name='%s'",escaped);
No clue why this issue has poped up again though.

Locked

Who is online

Users browsing this forum: No registered users and 0 guests