|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Support::Windows Servers Support forum for Windows EQEMu users. |
12-10-2012, 09:09 PM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
My characters are using standard dropped bags like Eye Evil, Suppliers, and Tinkerers.
|
|
|
|
12-10-2012, 10:35 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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
|
|
|
|
|
|
|
12-11-2012, 01:24 AM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
Quote:
Originally Posted by Uleat
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.
|
|
|
|
|
|
|
12-11-2012, 08:37 AM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
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.
|
|
|
|
12-11-2012, 09:23 AM
|
|
Dragon
|
|
Join Date: Dec 2009
Posts: 719
|
|
can you still connect to the database by other means?
|
12-11-2012, 02:22 PM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
Quote:
Originally Posted by c0ncrete
can you still connect to the database by other means?
|
Yep, Navicat and tools work fine.
|
|
|
|
12-11-2012, 05:15 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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
|
|
|
|
12-11-2012, 05:23 PM
|
Demi-God
|
|
Join Date: Aug 2010
Posts: 1,742
|
|
Personally I'd just reboot in case there's a socket that's hanging around.
|
|
|
|
12-11-2012, 10:22 PM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
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
|
|
|
|
|
|
|
12-12-2012, 12:09 AM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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
|
|
|
|
12-12-2012, 02:54 AM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
Well I'm stumped and have no idea.
|
12-12-2012, 07:04 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Is it possible this is a firewall or hardware failure issue?
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
12-12-2012, 09:19 PM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
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.
|
12-12-2012, 09:49 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
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
|
12-12-2012, 09:55 PM
|
|
Dragon
|
|
Join Date: Nov 2008
Location: GA
Posts: 904
|
|
Quote:
Originally Posted by Uleat
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.
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 02:42 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|