diff --git a/NEWS b/NEWS index ebaa35404..be86b0f16 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ ver 0.23.4 (not yet released) +* fix crash or debug builds if startup fails ver 0.23.3 (2021/10/31) * protocol diff --git a/src/event/Loop.cxx b/src/event/Loop.cxx index 31049a057..cfc136a5c 100644 --- a/src/event/Loop.cxx +++ b/src/event/Loop.cxx @@ -52,6 +52,13 @@ EventLoop::EventLoop( EventLoop::~EventLoop() noexcept { +#if defined(HAVE_URING) && !defined(NDEBUG) + /* if Run() was never called (maybe because startup failed and + an exception is pending), we need to destruct the + Uring::Manager here or else the assertions below fail */ + uring.reset(); +#endif + assert(defer.empty()); assert(idle.empty()); #ifdef HAVE_THREADED_EVENT_LOOP