Jump to content

  •  

Bug Tracker Migration

June 3rd
Good news everyone! The staff has decided that it is time to slowly kill off this Bug Tracker. We will begin the process of slowly migrating from this Bug Tracker over to our Github Issues which can be found here: https://github.com/HerculesWS/Hercules/issues

Over the next couple of days, I will be closing off any opportunity to create new reports. However, I still will keep the opportunity to reply to existing Bug Reports. Doing this will allow us to slowly fix any bug reports we have listed here so that we can easily migrate over to our Issue Tracker.

Update - June 7th 2015: Creating new bug posts has been disabled. Please use our https://github.com/HerculesWS/Hercules/issues tracker to post bugs. Users are still able to reply to existing bug posts.

- Administration

Issue Information

Issue Confirmations

  • Yes (0)No (0)
Photo

inifnite timer loops

Posted by Hercules Bot on 24 December 2009 - 05:56 PM

Originally posted by theultramage
http://www.eathena.w...er&showbug=3967

If a timer function specifies a timeout of 0ms and calls itself, you will get an infinite loop. The timer code will forever keep processing this timer function, making the server freeze. Should we add some sort of safeguard/failsafe to let the server continue operating in such a case?

Additionally, if the timer function A pushes some other timer function B onto the timer heap before pushing a copy of itself, the timer heap will behave like a stack, processing the newest entry. This produces an ever-growing array of B timer entries. The infinite loop will go on until the process runs out of allocable memory.

Ind 
changed status to: Done

I think this sort of low-level baby sitting doesn't really help, it's a source-level coding error if this happens -- and hardly worth the overhead of checking this, if it happens its a one-time thing which you can debug with gdb or similar, then never again.