Changed-lines coverage: PR changed C/C++ lines covered by tests: 96.87% (340/351) Uncovered changed code (with context): ================================================================================ src/Common/AsyncLoader.cpp ================================================================================ --- uncovered block 534-538 --- 532 | p.max_threads = value; 533 | if (!is_running) >> 534 | return; 535 | for (size_t i = 0; canSpawnWorker(p, lock) && i < p.ready_queue.size(); i++) 536 | { 537 | if (!spawn(p, lock)) >> 538 | break; // The pool is saturated, do not retry for every queued job 539 | } 540 | } --- uncovered block 806-806 --- 804 | job_lock.unlock(); // Avoid reverse locking order 805 | prioritize(job, worker_pool); >> 806 | job_lock.lock(); 807 | } 808 | ================================================================================ src/Common/tests/gtest_async_loader.cpp ================================================================================ --- uncovered block 40-40 --- 38 | if (ProfileEvents::getName(e) == "AsyncLoaderSpawnFailures") 39 | return e; >> 40 | return ProfileEvents::end(); 41 | }(); 42 | --- uncovered block 1749-1761 --- 1747 | // Fill the global thread pool's queue while it can run nothing, so the next request for a 1748 | // thread fails immediately rather than waiting. Only this child process is affected. >> 1749 | GlobalThreadPoolLimits limits; >> 1750 | limits.submitWithoutStarting(1); >> 1751 | GlobalThreadPool::instance().scheduleOrThrow([] {}, {}, /* wait_microseconds = */ 0); 1752 | 1753 | // A pool whose workers have all yet to start needs this spawn to succeed, so the fault 1754 | // injector is bypassed and the failure cannot be dropped. >> 1755 | AsyncLoaderTest t(16); >> 1756 | auto task = t.schedule({makeLoadJob({}, "job", [] (AsyncLoader &, const LoadJobPtr &) {})}); >> 1757 | t.loader.unpause(); // Spawns, and must not return 1758 | 1759 | // Reached only if the failure was swallowed. Exiting successfully reports that to the parent, 1760 | // whereas draining would be impossible here and would hang instead. >> 1761 | std::_Exit(0); 1762 | }; 1763 | WARNING: Failed to get start time for [Print Uncovered Code] - start time and duration won't be set --- Coverage counts --- Lines : baseline 968,055/1,115,811 -> current 968,302/1,116,184 (delta +247 / +373) Functions : baseline 819,090/890,583 -> current 818,972/890,661 (delta -118 / +78) Branches : baseline 320,829/405,256 -> current 320,964/405,362 (delta +135 / +106)