Forums » Bugs

Bug: "Stuck in warp"

Mar 29, 2004 a1k0n link
SYNOPSIS
Users with high-latency or high-packetloss connections to the Vendetta server would occasionally fail to load a new sector while warping, or see unusual things when they warp such as missing users, duplicate users, or objects that don't belong in the sector.

STATUS
Tentatively fixed on production 3.3 server.

DISCUSSION
When you warp from one sector to another, you leave one stream of "object update" packets and enter a new stream of packets. At the moment of changeover, however, it was possible, due to packet loss or reordering, that the server had sent out some packets from the old sector which the client had not yet received, yet the client did receive the "you are entering a new sector" message. Thus a few objects added, updated, or deleted from the old sector would conflict with objects added, updated, or deleted in the new sector. The client would then wait indefinitely for an expected world object such as an asteroid, or it would see someone who warped into the previous sector appear to warp into the new sector.

The fix is to have the server ensure that the client has acknowledged everything it has sent before sending a "you are entering a new sector" message. However, the initial implementation of this fix contained a rather serious bug: it forgot to make the client leave the old sector before waiting for all data to be acknowledged, effectively waiting forever for people with slow connections who were in busy sectors. This also put the character into a "limbo" state on the server, allowing one to do the standard "double your money" tricks.
Mar 29, 2004 a1k0n link
(updated status: my new new fix is in place, which I hope works this time)
Mar 29, 2004 Zeplin link
Seems to work great, tested this morning, And get no more errors in the gates =)
Mar 29, 2004 mr_spuck link
yep ... works for me now :)
Mar 29, 2004 alienb1212 link
This is cool, could you explain more common bugs like this more often, if you have the time?