ID:137387
 
When a game crashes, the DreamDaemon dies (this is expected), but when I restart DreamDaemon, the log file fills up with the following error:

Dream Daemon FAILED to open port XXXX!

The game still works with no apparent problems, but is there a way to resolve this issue without rebooting the entire system?

BTW: I use the same port number everytime due to firewall settings.
CableMonkey wrote:
When a game crashes, the DreamDaemon dies (this is expected),

Hmm, I wouldn't think a crashed game should totally take down DreamDaemon - unless there's a bug in it or the system libraries it's using.

Dream Daemon FAILED to open port XXXX!

Most likely because the process died without closing the network port, leaving it in an "opened" state as far as the OS is concerned. I don't know the exact timeout, but I'll bet that waiting a few minutes should clear it up. This is assuming that the DreamDaemon process has really died.

Still, you may want to get Dantom to look into it if it's a recurring problem. Perhaps if nothing else, DreamDaemon can try to trap certain errors (segfault, etc) and at least exit gracefully, closing the network port etc before dying.
In response to Air Mapster
When a game crashes, the DreamDaemon dies (this is expected),

Hmm, I wouldn't think a crashed game should totally take down DreamDaemon - unless there's a bug in it or the system libraries it's using.

This must be a bug in DreamDaemon. I will recompile the latest version (which does contain some crash fixes) today.

Dream Daemon FAILED to open port XXXX!

Most likely because the process died without closing the network port, leaving it in an "opened" state as far as the OS is concerned.

Yes. This must depend on the linux version though, because on my system, I believe it allows immediate re-use of the port (because I specify that this should be allowed when I open the port). I will test that and see what I can find.

It also might be a good idea to return a specific error code in this case so an outside script can detect the problem and sleep for a little while before retrying.

--Dan

If you can open up two or more ports, then here is another solution:

DreamDaemon myworld.dmb any -ports 1234,5678,9123

Just list the ports (and you can put ranges like 1234-1238) and it will find one that is available and use it.

[edit] Oh wait, I suppose that doesn't do you any good for players who are trying to connect to a known port! Hmm. You really need to use the host server in this case, because it routes players into whatever the current port happens to be. Well, that'll be available in the linux release, so you can try that if you still have problems.
In response to Dan
ok, that will be cool. I'll watch out for the update.