Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Server Code Submissions

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 01-12-2011, 12:12 AM
l0stmancd
Fire Beetle
 
Join Date: Apr 2005
Posts: 23
Default

Problem Definition:

What we see happening is that a user would attempt to, for example, deaugment a lore item.

Scenario:
User has SwordA that is Lore with Augment A on it.

User puts SwordA (with AugmentA) into the augmentation sealer.
- At this time, user has a single lore sword in inventory.
---
User puts the augment remover into the augmentation sealer.
- At this time, the user has a single lore sword in inventory.
---
User clicks the remove augment int eh window.
- At this time, the user has a single lore sword in inventory.
--
User confirms that the user wishes to remove the augment
- At this time, the user has a single lore sword in inventory.
--
At this point the server removes the augment and pushes the new sword and the new augment onto the cursor.
- At this time, the user has two lore swords in inventory (one in aug sealer and one on hand).
* Problem Happens Here*
--
For most users, the server would then send a delete item request for the items in the augmentation sealer.
- At this time, the user has a single lore sword in inventory (zero in aug sealer, one in hand).

The issue is that occasionally (uncommon but not rare) the client would get "DUPLICATE LORE ITEM DELETED!" message and then it would look like they only have a single augment on their cursor. The items in the augmentation sealer would, of course, be deleted. It would -appear- at this time that the user has lost the LoreSwordA.

The problem is that the server believes the user still has the lore sword in the top slot of their cursor inventory slots. At this point the client and server have a sync issue. The client can move around what they believe is the augment and the server believes they are moving around the loreSwordA. If the user zones / camps, then they are resynced and the user sees both the loreSwordA as well as the augment.

Reproduction Steps:
On a server augment / deaugment using the inventory augmentation container until you receive the "Duplicate Lore Item Deleted" message. The longest it took for me to receive this was ~20-25 times. I am not able to reproduce this easily on my local server without massively lagging out my virtual machine to try to introduce latency.

Original thought as to the cause was the two items being on the client at a given time causing the server (or client) to believe that lore items should be deleted. Original solution (as posted above) was to bring us into line with tradeskill combines and remove the items first and then add in the new item.

In chatting with Trevius, there seems to be some questions still regarding how this is happening so bringing into the thread to discuss.
Reply With Quote
 


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:50 PM.


 

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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3