EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   World server crashes due to LDON adventure (https://www.eqemulator.org/forums/showthread.php?t=39038)

Nibiuno 11-24-2014 03:23 PM

World server crashes due to LDON adventure
 
Any ideas on this or can I disable LDoN adventures?


[11.24. - 11:42:51] c:\eq\source\common\mysql_request_row.cpp (67): MySQLRequestRow::operator[]
[11.24. - 11:42:51] c:\eq\source\common\database.cpp (785): Database::GetCharacterID
[11.24. - 11:42:51] c:\eq\source\world\adventure.cpp (57): Adventure::AddPlayer
[11.24. - 11:42:51] c:\eq\source\world\adventure_manager.cpp (406): AdventureManager::TryAdventureCreate
[11.24. - 11:42:51] c:\eq\source\world\zoneserver.cpp (1203): ZoneServer::Process
[11.24. - 11:42:51] c:\eq\source\world\zonelist.cpp (96): ZSList::Process
[11.24. - 11:42:51] c:\eq\source\world\net.cpp (451): main
[11.24. - 11:42:51] f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (240): __tmainCRTStartup
[11.24. - 11:42:51] f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (164): mainCRTStartup
[11.24. - 11:42:51] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 777B338A)
[11.24. - 11:42:51] 777B338A (kernel32): (filename not available): BaseThreadInitThunk
[11.24. - 11:42:51] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77CE9F72)
[11.24. - 11:42:51] 77CE9F72 (ntdll): (filename not available): RtlInitializeExceptionChain
[11.24. - 11:42:51] ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 77CE9F45)
[11.24. - 11:42:51] 77CE9F45 (ntdll): (filename not available): RtlInitializeExceptionChain

NatedogEZ 11-24-2014 11:13 PM

Do you have bots? I remember there being a bug when it tries to add a Bot to the adventure that it crashed the server.

Nibiuno 11-25-2014 09:16 AM

Quote:

Originally Posted by NatedogEZ (Post 235742)
Do you have bots? I remember there being a bug when it tries to add a Bot to the adventure that it crashed the server.

Yep. I couldnt get mercs to work so I enabled bots.

LDoN crashes and the guild window wont display anything.

Nibiuno 11-25-2014 10:38 AM

So it appears Adventure.cpp doesnt do a check to see if a player is a bot and when it tries to zone a bot in, it causes the crash.

Going to see if I can fix that in the source to do a bot check and return false if so.

Uleat 11-25-2014 06:08 PM

Are these things that originate within a perl script?

Nibiuno 12-16-2014 10:24 PM

Quote:

Originally Posted by Uleat (Post 235760)
Are these things that originate within a perl script?

No, C++ code. A perl script sets the instance though - so if theres a way to check if bots are in a group prior to setting the instance up, that may help take care of some of the crashes.

Im not any good at programming, but trying to figure out where the check in the source is on players. I think it's in Adventure.cpp under Adventure::AddPlayer.

Im trying to do a mysql query on the database to look in the bots table for character_name, and if found, not add the client to the instance. But it isnt working as I hoped so far.

edit: It doesnt really seem to be reproducible for bots to cause the crash everytime.

NatedogEZ 12-17-2014 06:12 AM

I am pretty sure this is fixed in the newest source.. you need to update :)

trevius 12-17-2014 12:42 PM

Quote:

Originally Posted by NatedogEZ (Post 236198)
I am pretty sure this is fixed in the newest source.. you need to update :)

Ya, it may be fixed in the current source. I recently put a fix in for this issue in relation to Mercs, which I believe will probably also apply to bots. I think I just had it do an IsClient() check before adding players to the instance. I don't believe I have actually tested to see if my fix worked, but I haven't seen any world crashes since I added it.

Nibiuno 12-18-2014 09:23 AM

Quote:

Originally Posted by trevius (Post 236200)
Ya, it may be fixed in the current source. I recently put a fix in for this issue in relation to Mercs, which I believe will probably also apply to bots. I think I just had it do an IsClient() check before adding players to the instance. I don't believe I have actually tested to see if my fix worked, but I haven't seen any world crashes since I added it.

It works - I always look at the latest code revs and see what you guys are doing.

Bot references are all over so its a giant pain to fix them.

I really appreciate you guys looking at it. I cant imagine how much work all that is, since just running my server takes up 30-40 hours a week right now to do basic development.

Gigfel 01-12-2015 01:37 PM

Maybe a wrong Path ?!
 
Hello i have the same Problem and I use Bots too.
Interessting is for me this two entries in the log:

Code:

[01.11. - 23:52:07] f:\dd\vctools\crt\crtw32\startup\crt0.c (255): __tmainCRTStartup
[01.11. - 23:52:07] f:\dd\vctools\crt\crtw32\startup\crt0.c (165): mainCRTStartup

Because I personally know, that I dont have an F Drive.
I would check the Source if there is a hardcoded Path and i would try to find out where this Files realy are.

But it is only an Idea, because i dont realy know the Source Code yet.

trevius 01-12-2015 02:10 PM

Gigfel, are you on the latest version of source code from Github? I would suggest updating before reporting issues if you haven't already done so.

I am not sure what that log entry means or why it reports a drive you don't have.

Gigfel 01-12-2015 03:02 PM

Hello, i have downloaded and compiled two days ago the Source Code from GitHub, so i think i am on the latest Version.
I personally think that any used Library or the Bot Source itself has a Link or hardcoded Path to a not integrated C code or File.

Edit (To Explain myself a bit better):
Because the person who did wrote the Bots or the used Library maybe have a F Drive with this show File Structure.
If these Files wouldnt be integrated, but only linked and you dont have these Files at the same Spot you get Errors because they cant be found.

Gigfel 01-12-2015 03:39 PM

As additional Information:
You could compile a Software without some maybe needed Files if you write an Error Correction Code, normaly something like this "try { ... } catch(Exception e) { ... }".
Then you dont realy need this Files (depending on your Corretion Routines), but sometimes a Situation appears when these Files will be needed and the Application crashes.
These possible Errors will be shown during the compilation as Warnings, thats why the Source Code will be translated into a working Programm.

trevius 01-12-2015 04:22 PM

I have never seen any hard coded paths in the source as far as I can recall. Other people would be having issues if that was the case.

More likely, something went wrong when you ran CMAKE and one of the paths got set incorrectly there somehow.

*EDIT* From some google searches on those lines, it looks like they are related to some CRT stuff not specific to EQEmu. I don't really know what it is for or why it shows up in the crash logs. May depend on the version of VS you are building your source with and the settings you are using for the build.

https://vld.codeplex.com/workitem/10446

What Operating System are you on and what version of VS are you using?

Uleat 01-12-2015 05:00 PM

Compiling the 'latest' source code is like buying the fastest computer at the store..it's already outdated...

Compiling source code (conventionally) should essentially be:

1 - pull latest repo

2 - check show log for any additions/deletions that require re-running cmake (and re-run, if necessary)

3 - compile latest source code


EDIT: In all honesty..it might have been cause by the issue with OP_FormattedMessage encoding, that I 'hope' I fixed last night.


All times are GMT -4. The time now is 02:55 AM.

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