Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #16  
Old 12-10-2012, 09:09 PM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

My characters are using standard dropped bags like Eye Evil, Suppliers, and Tinkerers.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #17  
Old 12-10-2012, 10:35 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

If you're still willing to pare this down, revert your source code and try this one:

[Item.cpp.patch]
Code:
Index: common/Item.cpp
===================================================================
--- common/Item.cpp	(revision 2284)
+++ common/Item.cpp	(working copy)
@@ -1216,6 +1216,14 @@
 	else {
 		// Slot must be within a bag
 		ItemInst* baginst = GetItem(Inventory::CalcSlotId(slot_id)); // Get parent bag
+
+		if (baginst) {
+			LogFile->write(EQEMuLog::Error, "Inventory::_PutItem: Parent Bag: id = %i, class = %i, type = %i, parent slot = %i", baginst->GetID(), baginst->GetItem()->ItemClass, baginst->GetItem()->ItemType, Inventory::CalcSlotId(slot_id));
+		}
+		else {
+			LogFile->write(EQEMuLog::Error, "Inventory::_PutItem: Parent Bag instance is NULL at parent slot %i", Inventory::CalcSlotId(slot_id));
+		}
+		
 		if (baginst && baginst->IsType(ItemClassContainer)) {
 			baginst->_PutItem(Inventory::CalcBagIdx(slot_id), inst);
 			result = slot_id;

This will tell us what's going on with the bag instance that might cause that con check to fail.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #18  
Old 12-11-2012, 01:24 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Quote:
Originally Posted by Uleat View Post
If you're still willing to pare this down, revert your source code and try this one:

[Item.cpp.patch]
Code:
Index: common/Item.cpp
===================================================================
--- common/Item.cpp	(revision 2284)
+++ common/Item.cpp	(working copy)
@@ -1216,6 +1216,14 @@
 	else {
 		// Slot must be within a bag
 		ItemInst* baginst = GetItem(Inventory::CalcSlotId(slot_id)); // Get parent bag
+
+		if (baginst) {
+			LogFile->write(EQEMuLog::Error, "Inventory::_PutItem: Parent Bag: id = %i, class = %i, type = %i, parent slot = %i", baginst->GetID(), baginst->GetItem()->ItemClass, baginst->GetItem()->ItemType, Inventory::CalcSlotId(slot_id));
+		}
+		else {
+			LogFile->write(EQEMuLog::Error, "Inventory::_PutItem: Parent Bag instance is NULL at parent slot %i", Inventory::CalcSlotId(slot_id));
+		}
+		
 		if (baginst && baginst->IsType(ItemClassContainer)) {
 			baginst->_PutItem(Inventory::CalcBagIdx(slot_id), inst);
 			result = slot_id;

This will tell us what's going on with the bag instance that might cause that con check to fail.
Not sure what I did but world.exe won't even start now, crashes immediately.

I reverted the item and shareddb.cpp files. Rebuilt the source, copied over the binaries, and then launched. Fails everytime. Tried reverting back to the original binaries, still crashing.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #19  
Old 12-11-2012, 08:37 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Logs are telling me world, queryserv, etc can't connect to the database, but I didn't change any passwords or database information

Code:
---------------------------------------------
[12.11. - 00:55:00] Starting Log: logs/eqemu_debug_3184.log
[12.11. - 00:55:00] [QUERYSERV__INIT] Starting EQEmu QueryServ.
[12.11. - 00:55:00] [QUERYSERV__INIT] Log settings loaded from log.ini
[12.11. - 00:55:00] [QUERYSERV__INIT] Connecting to MySQL...
[12.11. - 00:55:00] [WORLD__INIT_ERR] Cannot continue without a database connection.
Code:
[12.11. - 00:55:00] Starting Log: logs/eqemu_error_3184.log
[12.11. - 00:55:00] Failed to connect to database: Error: #1045: Access denied for user 'eq'@'localhost' (using password: YES)
Code:
[12.11. - 00:45:17] Starting Log: logs/eqemu_error_world_1944.log
[12.11. - 00:45:17] Failed to connect to database: Error: #2003: Can't connect to MySQL server on 'localhost' (10061)
Code:
[12.11. - 00:45:16] Starting Log: logs/eqemu_debug_world_1944.log
[12.11. - 00:45:16] [WORLD__INIT] Loading server configuration..
[12.11. - 00:45:16] [WORLD__INIT] Log settings loaded from log.ini
[12.11. - 00:45:16] [WORLD__INIT] CURRENT_WORLD_VERSION:EQEmulator 0.8.0
[12.11. - 00:45:16] [WORLD__INIT] Added loginserver eqemulator.net:5998
[12.11. - 00:45:16] [WORLD__INIT] Connecting to MySQL...
[12.11. - 00:45:17] [WORLD__INIT_ERR] Cannot continue without a database connection.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #20  
Old 12-11-2012, 09:23 AM
c0ncrete's Avatar
c0ncrete
Dragon
 
Join Date: Dec 2009
Posts: 719
Default

can you still connect to the database by other means?
Reply With Quote
  #21  
Old 12-11-2012, 02:22 PM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Quote:
Originally Posted by c0ncrete View Post
can you still connect to the database by other means?
Yep, Navicat and tools work fine.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #22  
Old 12-11-2012, 05:15 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

What's your system config? (OS, MySQL, Perl, EMu build parameters, etc...)


The likely cause of those 'Warning: Invalid Slot' messages would be if the parent bag didn't exist in the db query result and it wasn't being put into
the inventory prior to the bag item being processed.

And since you described the players as being offline to other players, it sounds likely that the code that processes character generation on rez/revive
couldn't properly access/process the character information from the database.

I'd be willing to bet that if you went back to older log files, you would see db error messages previous to these with the patches (outside of the
scope found in the logs that you did post.)

Have you been experiencing item loss? Or possibly experience/level losses with characters on this server?


I'll see if I can find what and where to specifically look for those older messages.


EDIT: If you haven't done so, click on your parent source code directory and try reverting that. I will either show files, or not, depending on whether
there is anything to actually revert.

Also, make sure that you right-click the solution name and select 'Clean.' Then try a 'Build' from scratch.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #23  
Old 12-11-2012, 05:23 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

Personally I'd just reboot in case there's a socket that's hanging around.
Reply With Quote
  #24  
Old 12-11-2012, 10:22 PM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

I've already built a clean solution from scratch and brought in fresh binaries. Database is current revision. PC (Win7 Ultimate) has been rebooted several times.

The only issue we have is the crashing, the player appears ONLINE to everyone, including themselves, the only catch is that it (obviously) only happens during death. So you can only appear dead in so many ways. The PLAYER who crashes sees the world as if it's failed to continue updating, like an old school link death but without any end result of physically being disconnected and black screened. No items, experience, or anything else has been lost, ever.

The database issue started after applying the last debugger that uleat posted. Even after reverting it the issue persisted and continues to persist now. Nothing in my database has changed, no passwords, usernames, nothing and access via Navicat, tools, etc remains unhindered.

Win7 Ultimate
Perl 5.12
MySQL 5.1
ReleaseBots x86
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #25  
Old 12-12-2012, 12:09 AM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

If my code is at fault, I'll take the blame for it..however, there's nothing in the patches that would cause this behavior.

They use existing variables and only write to log files. Worst case scenario, they would have crashed the server attempting to read from undefined
object properties.

Reverting the files and compiling new binaries should have eliminated any issues the patch code was causing.


I believe this is going to be a persistent database problem. I can't explain why the emu can no longer access the database, but other
programs can.

Given the behavior that your server was already exhibiting, I am really inclined to believe that you were getting database read failures during
the revive process.

It could be server code related, but this is the first occurrence of this happening that I'm aware of and it is highly unlikely that your case
would be the only one if it were.


I don't know if MySQL generates log files, but you might want to check there for issues as well.

I don't have access to my database at the moment, but isn't there a way to run a data integrity check?


EDIT: To Wit: http://www.eqemulator.org/forums/sho...10&postcount=1
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #26  
Old 12-12-2012, 02:54 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Well I'm stumped and have no idea.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #27  
Old 12-12-2012, 07:04 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Is it possible this is a firewall or hardware failure issue?
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #28  
Old 12-12-2012, 09:19 PM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Considering ONLY the server is having issues connecting, nothing else is, I wouldn't say it's hardware (ram/hdd/etc), all other software works fine.

Software maybe? But how, that's the question. If it's software it has to be the eqemu software. But the crash remained even after completely wiping out the system minus the database and recompiling and redownloading everything. If it's the database itself, why is it only preventing connections from the eqemu software, and not tools, editors, websites, etc.

Firewall I could see being an issue if the server and database weren't on the same PC. I can connect to the database from external computers just fine.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
  #29  
Old 12-12-2012, 09:49 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Are you using the 'root' account for both program access and server access?

Or did you create a separate user account for the server?
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #30  
Old 12-12-2012, 09:55 PM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 905
Default

Quote:
Originally Posted by Uleat View Post
Are you using the 'root' account for both program access and server access?

Or did you create a separate user account for the server?
Server is using root, I use a separate account. However, just to test I set the server to use my separate account and still couldn't connect.
__________________
Clumsy's World: Resurgence
Clumsy's World [2006-2012]
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:42 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3