ID:64131
 
Resolved
Fixed in 442
BYOND Version:437
Operating System:Windows Vista Home Basic
Web Browser:Google Chrome
Video Card:
Component:Dream Daemon
Game/Hub:
Status: Resolved (442)

This issue has been resolved.
Descriptive Problem Summary:
When banning with Daemon, you can choose a time that it will unban them. Well, when it gets to that time.. Dream Daemon crashes. This is rather inconvenient, and I was wondering if I was doing something wrong or what? Also, when kicking people, it sets the ban to "End of this session" .. But, when I manually unban them, Daemon, again, crashes. It's done this for a while now.

Numbered Steps to Reproduce Problem:
Situation One(Kicking)
1. Kick the person from the game, via Dream Daemon
2. Go to the bans tab and unban them manually. They may need to try and reconnect, I'm not entirely sure.
3. It will crash

Situation Two(Timed Ban)
1. Ban the person from the game, via Dream Daemon
2. Go to the Bans tab and set their as "At this time:", then set it for whatever time.
3. Wait for that time to come around, and Dream Daemon will crash.


Expected Results:
Dream Daemon SHOULD let me unban that person that I kicked and let them connect, but it won't. And it should just unban the person at the predetermined time, but it crashes instead.

Actual Results:
It crashes.

Does the problem occur:
Every time, without fail.
In Other Games: Yes, even in one that I made as a chat room type thing with my friends that has no ban code in it.
On other computers? Not sure, haven't tried.
In other user accounts? Don't know.

When does the problem NOT occur?
When I don't set an unban time for someone and when I don't kick them.

Workarounds:
None as far as I know.
I can confirm that this bug also happens on my install of Vista Home Premium AND ON WINDOWS XP HOME SP3! This is *not* a Vista problem!

With some testing between my Laptop (running Vista) and Desktop (running XP) I've found the conditions to cause the bug to be:

-Running Vista OR Windows XP
-Hosting with Dream Daemon
-Ban a key using Dream Daemon
-Set that ban to expire at a certain time
-Once the ban expires, have the banned key connect
-"dreamdaemon.exe has stopped working" or a variation thereof will appear on the host machine

Important notes:
-DD will not crash until the banned key connects after the ban expires
-It seems to happen regardless of whether the key was logged in at the time of the banning, or if the key has logged in since being banned.
-If DD is restarted and the ban (still expired) is in the list, when the key connects DD will crash again.


One potential workaround is to manually remove the banned keys from the list once the bans expire.
Bug and fix explained: A user joining a server after a matching ban had expired caused Dream Daemon to crash or possibly hit an infinite loop. This would also have impacted Dream Seeker where such expired bans already existed.