From d1bfba2204a1af5188b2314694bf3d3b1077b38d Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 29 Nov 2018 16:18:29 -0800 Subject: [PATCH] ircd::db: Remove critical assertion here and add note. --- ircd/db.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ircd/db.cc b/ircd/db.cc index 985b3afb1..fdfa148b8 100644 --- a/ircd/db.cc +++ b/ircd/db.cc @@ -8419,7 +8419,6 @@ ircd::db::row::row(database &d, // and reserve() it with one worst-case size of all possible columns. // Then we resize it to this specific call's requirements and copy the // column pointers. On sane platforms only one allocation ever occurs. - const ctx::critical_assertion ca; thread_local std::vector handles; assert(column_count <= d.columns.size()); handles.reserve(d.columns.size()); @@ -8430,6 +8429,9 @@ ircd::db::row::row(database &d, return ptr->handle.get(); }); + // This has been seen to lead to IO and block the ircd::ctx; + // specifically when background options are aggressive and shortly + // after db opens. throw_on_error { d.d->NewIterators(options, handles, &iterators)