diff --git a/NEWS b/NEWS index e189a6b6e..5a3da39db 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,6 @@ ver 0.21.4 (not yet released) * database + - inotify: fix crash bug "terminate called after throwing ..." - upnp: implement "list ... group" * output - httpd: declare protocol "HTTP/1.1" instead of "ICY" diff --git a/src/db/update/InotifyQueue.cxx b/src/db/update/InotifyQueue.cxx index 5ce9a2e02..5dd97690a 100644 --- a/src/db/update/InotifyQueue.cxx +++ b/src/db/update/InotifyQueue.cxx @@ -39,7 +39,15 @@ InotifyQueue::OnDelay() noexcept while (!queue.empty()) { const char *uri_utf8 = queue.front().c_str(); - id = update.Enqueue(uri_utf8, false); + try { + id = update.Enqueue(uri_utf8, false); + } catch (...) { + FormatError(std::current_exception(), + "Failed to enqueue '%s'", uri_utf8); + queue.pop_front(); + continue; + } + if (id == 0) { /* retry later */ delay_event.Schedule(INOTIFY_UPDATE_DELAY);