Skip to content
Permalink
Browse files
Server::step throw is never catched. Replace it with an errorstream +…
… assert

This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()
  • Loading branch information
nerzhul committed Mar 16, 2015
1 parent 16b961b commit 5f8e48c63baf12930430d5d8fc07495021599e61
Showing 1 changed file with 6 additions and 3 deletions.
@@ -479,10 +479,13 @@ void Server::step(float dtime)
JMutexAutoLock lock(m_step_dtime_mutex);
m_step_dtime += dtime;
}
// Throw if fatal error occurred in thread
// Assert if fatal error occurred in thread
std::string async_err = m_async_fatal_error.get();
if(async_err != ""){
throw ServerError(async_err);
if(async_err != "") {
errorstream << "UNRECOVERABLE error occurred. Stopping server. "
<< "Please fix the following error:" << std::endl
<< async_err << std::endl;
assert(false);
}
}

2 comments on commit 5f8e48c

@ShadowNinja
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

assert is a no-op in release builds. Use abort, or better yet proper error handling.

@nerzhul
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was reverted and a better fix was pushed and provided, thanks anyway :)

Please sign in to comment.