14 Day Free Trial - Eve Online

List your corp on this site. Just sign up to the site and you will be given access to post.
You will be able to add text upload a logo and add a link to your site if you have one.
Make sure to pick a relevant category for your corp.

fixing lag: module lag – why not all bugfixes are a good idea

Add comments

As we’re all too painfully aware, when a few hundred pod pilots get together and exchange ammunition, the dreaded “lag monster” often comes around. There are a number of distinct phenomena that are referred to as lag. It is important to distinguish between them, as they typically have different causes/solutions (even if the symptoms seem the same, like “my guns didn’t work”). This blog is about the type called “module lag,” in which modules start to respond very poorly – sometimes for minutes late. Specifically, this blog is about the bug that causes this for repeats/deactivations, and why it’s not fixed on Tranquility (TQ) yet.

At the Council of Stellar Management (CSM) summit in June, the CSM made an excellent presentation of the issues around fleet-fight lag, specifically about the issues of modules becoming ‘stuck’ and the workarounds used by players. This provided useful insight into a problem which, until recently, we’d never been able to reproduce in a development environment. This made the problem very tangible, and gave us a great symptom to begin digging into.

Like all the best bugs, this one has layers. We’ll start at the first thing we noticed when digging at it: the system responsible for telling the server when modules should be turned off or repeated would get minutes behind in processing when fleet fights happen while other systems remain reasonably responsive. This system, named Dogma, handles module activation/repeat/deactivation, as well as the actual effects of those modules. It also handles the various skill/ship modifiers you see in the game.

This sort of lopsided performance should be easily tweaked. Tasks on the EVE servers use a time-sharing technique called cooperative multitasking which, in short, means that a task has to willingly yield execution to other tasks, otherwise it will run forever. In this case, it would seem the part of Dogma handling module repeat and deactivation was being too nice – yielding execution too much.

Looking at the code some, a theory emerged as to why. There was an error case that stuck out as odd – if an effect was supposed to be stopped or repeated, but the effect system itself didn’t agree that it was time yet, the code would throw up its hands and give up. If that error case gets hit, the processing loop would yield to other systems early. A code comment was very reassuring though – this error was supposedly “rare.”

The “rare” error happened 1.5 million times in the month of June, 2010 on TQ.

More information can be found here.

Development News August 23rd 2010

Leave a Reply

Powered by Sweet Captcha
Verify your real existence,
Drag the film to the screen
  • captcha
  • captcha
  • captcha
  • captcha



14 Day Free Trial - Eve Online

www.Dust514-Fan.co.uk Website
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. has granted permission to www.eve-online-fan.co.uk to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, www.eve-online-fan.co.uk CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.

Theme courtesy of Podlogs.com | Pluggit.org.