John Adams
10-31-2007, 06:57 AM
I've noticed on the Windows platform, zone.exe will go into a STOP / START loop endlessly if you modify a faction or loot table entry without restarting your entire server (not sure if world.exe is effected).
Scenario is; You add a new NPC and want to add a new faction and loot for that NPC, or even modify this info for an existing NPC. When you add the faction to the table `npc_factions`, everything looks nice until you zone out (dynamic zones) and zone back in. At that point, the instance crashes and loops as stated above. Looking into the logs, I finally caught this:
[08.30. - 12:05:19] Starting Log: logs/eqemu_debug_zone_0204.log
[08.30. - 12:05:19] [ZONE__INIT] Loading server configuration..
[08.30. - 12:05:19] [ZONE__INIT] Log settings loaded from log.ini
[08.30. - 12:05:19] [ZONE__INIT] Connecting to MySQL...
[08.30. - 12:05:19] [ZONE__INIT] CURRENT_ZONE_VERSION: EQEMu 0.7.0
[08.30. - 12:05:19] [ZONE__INIT] Log settings loaded from ./log.ini
[08.30. - 12:05:19] [ZONE__INIT] Mapping Incoming Opcodes
[08.30. - 12:05:19] [ZONE__INIT] Loading Variables
[08.30. - 12:05:19] [ZONE__INIT] Loading zone names
[08.30. - 12:05:19] [ZONE__INIT] Loading items
[08.30. - 12:05:20] [ZONE__INIT] Loading npc faction lists
[08.30. - 12:05:20] [ZONE__INIT_ERR] Loading npcs faction lists FAILED!
---------------------------------------------
Same thing with Loot. When we were trying to change some loot tables around and create new ones, anytime a new loot table was assigned to an existing NPC, the next time someone entered the zone it would crash:
[08.31. - 13:44:16] Starting Log: logs/eqemu_debug_zone_3760.log
[08.31. - 13:44:16] [ZONE__INIT] Loading server configuration..
[08.31. - 13:44:16] [ZONE__INIT] Log settings loaded from log.ini
[08.31. - 13:44:16] [ZONE__INIT] Connecting to MySQL...
[08.31. - 13:44:16] [ZONE__INIT] CURRENT_ZONE_VERSION: EQEMu 0.7.0
[08.31. - 13:44:16] [ZONE__INIT] Log settings loaded from ./log.ini
[08.31. - 13:44:16] [ZONE__INIT] Mapping Incoming Opcodes
[08.31. - 13:44:16] [ZONE__INIT] Loading Variables
[08.31. - 13:44:16] [ZONE__INIT] Loading zone names
[08.31. - 13:44:16] [ZONE__INIT] Loading items
[08.31. - 13:44:17] [ZONE__INIT] Loading npc faction lists
[08.31. - 13:44:17] [ZONE__INIT] Loading loot tables
[08.31. - 13:44:17] [ZONE__INIT_ERR] Loading loot FAILED!
---------------------------------------------
After a few days of not noticing, you might catch something like this in your world debug log:
[08.31. - 22:34:50] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (552 starts)
[08.31. - 22:34:54] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3070 starts)
[08.31. - 22:34:56] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3070 starts)
[08.31. - 22:35:02] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (553 starts)
[08.31. - 22:35:04] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (553 starts)
[08.31. - 22:35:08] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3071 starts)
[08.31. - 22:35:10] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3071 starts)
[08.31. - 22:35:16] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (554 starts)
[08.31. - 22:35:18] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (554 starts)
[08.31. - 22:35:22] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3072 starts)
[08.31. - 22:35:24] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3072 starts)
[08.31. - 22:35:30] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (555 starts)
Hint: This bug will eventually eat up all Dynamic zones until there are no more to boot. :)
I do not recall if this happened editing/changing other data. I know this stuff is probably "shared memory" stuff, but I do not remember it ever crashing the zones before - but it could have been my noobness at the time.
Anyway, the only solution we found was to completely shut down the server and restart it. Or, if you were running zones with zone.exe (instead of eqlaunch zones), once the zone.exe reloaded it seemed ok. In this, I am reporting a bug (possibly?) in eqlaunch.exe not reloading the zone.exe properly. Kinda guessing on that last part. Hopefully someone can take a look at this or tell me "works as expected", which would suck, but at least I know how to fix it.
As far as Linux goes, I cannot say I've seen the same behavior, but that's only because Windows logging was easier to watch. My old FC4 server would completely crash (the OS) for what appeared no reason, so maybe there's something similar going on there.
Thanks,
-J
Scenario is; You add a new NPC and want to add a new faction and loot for that NPC, or even modify this info for an existing NPC. When you add the faction to the table `npc_factions`, everything looks nice until you zone out (dynamic zones) and zone back in. At that point, the instance crashes and loops as stated above. Looking into the logs, I finally caught this:
[08.30. - 12:05:19] Starting Log: logs/eqemu_debug_zone_0204.log
[08.30. - 12:05:19] [ZONE__INIT] Loading server configuration..
[08.30. - 12:05:19] [ZONE__INIT] Log settings loaded from log.ini
[08.30. - 12:05:19] [ZONE__INIT] Connecting to MySQL...
[08.30. - 12:05:19] [ZONE__INIT] CURRENT_ZONE_VERSION: EQEMu 0.7.0
[08.30. - 12:05:19] [ZONE__INIT] Log settings loaded from ./log.ini
[08.30. - 12:05:19] [ZONE__INIT] Mapping Incoming Opcodes
[08.30. - 12:05:19] [ZONE__INIT] Loading Variables
[08.30. - 12:05:19] [ZONE__INIT] Loading zone names
[08.30. - 12:05:19] [ZONE__INIT] Loading items
[08.30. - 12:05:20] [ZONE__INIT] Loading npc faction lists
[08.30. - 12:05:20] [ZONE__INIT_ERR] Loading npcs faction lists FAILED!
---------------------------------------------
Same thing with Loot. When we were trying to change some loot tables around and create new ones, anytime a new loot table was assigned to an existing NPC, the next time someone entered the zone it would crash:
[08.31. - 13:44:16] Starting Log: logs/eqemu_debug_zone_3760.log
[08.31. - 13:44:16] [ZONE__INIT] Loading server configuration..
[08.31. - 13:44:16] [ZONE__INIT] Log settings loaded from log.ini
[08.31. - 13:44:16] [ZONE__INIT] Connecting to MySQL...
[08.31. - 13:44:16] [ZONE__INIT] CURRENT_ZONE_VERSION: EQEMu 0.7.0
[08.31. - 13:44:16] [ZONE__INIT] Log settings loaded from ./log.ini
[08.31. - 13:44:16] [ZONE__INIT] Mapping Incoming Opcodes
[08.31. - 13:44:16] [ZONE__INIT] Loading Variables
[08.31. - 13:44:16] [ZONE__INIT] Loading zone names
[08.31. - 13:44:16] [ZONE__INIT] Loading items
[08.31. - 13:44:17] [ZONE__INIT] Loading npc faction lists
[08.31. - 13:44:17] [ZONE__INIT] Loading loot tables
[08.31. - 13:44:17] [ZONE__INIT_ERR] Loading loot FAILED!
---------------------------------------------
After a few days of not noticing, you might catch something like this in your world debug log:
[08.31. - 22:34:50] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (552 starts)
[08.31. - 22:34:54] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3070 starts)
[08.31. - 22:34:56] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3070 starts)
[08.31. - 22:35:02] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (553 starts)
[08.31. - 22:35:04] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (553 starts)
[08.31. - 22:35:08] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3071 starts)
[08.31. - 22:35:10] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3071 starts)
[08.31. - 22:35:16] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (554 starts)
[08.31. - 22:35:18] [WORLD__LAUNCH] zones: dynamic_20 reported state STOPPED (554 starts)
[08.31. - 22:35:22] [WORLD__LAUNCH] zones: dynamic_16 reported state STARTED (3072 starts)
[08.31. - 22:35:24] [WORLD__LAUNCH] zones: dynamic_16 reported state STOPPED (3072 starts)
[08.31. - 22:35:30] [WORLD__LAUNCH] zones: dynamic_20 reported state STARTED (555 starts)
Hint: This bug will eventually eat up all Dynamic zones until there are no more to boot. :)
I do not recall if this happened editing/changing other data. I know this stuff is probably "shared memory" stuff, but I do not remember it ever crashing the zones before - but it could have been my noobness at the time.
Anyway, the only solution we found was to completely shut down the server and restart it. Or, if you were running zones with zone.exe (instead of eqlaunch zones), once the zone.exe reloaded it seemed ok. In this, I am reporting a bug (possibly?) in eqlaunch.exe not reloading the zone.exe properly. Kinda guessing on that last part. Hopefully someone can take a look at this or tell me "works as expected", which would suck, but at least I know how to fix it.
As far as Linux goes, I cannot say I've seen the same behavior, but that's only because Windows logging was easier to watch. My old FC4 server would completely crash (the OS) for what appeared no reason, so maybe there's something similar going on there.
Thanks,
-J