DirtyCardQueueSet::get_completed_buffer sets _process_completed to false if the number of completed buffers is not greater than the requested stop_at value. The effect of this is to put the primary concurrent refinement thread into a state where it appears to be inactive (pt->is_active() will be false), even though the thread may be (and likely is) still actually active. For example, if a high numbered refinement thread were to hit its (high) stop_at limit, the flag would be set false inappropriately.
This can cause PtrQueueSet::enqueue_complete_buffer to unnecessarily notify that primary thread (via the shared cbl_mon). It also might be possible for the primary thread to block waiting for work when there is already work available. (Though circumstances and timing for that seem pretty unlikely. And it would unblock on the next buffer enqueue.)
This behavior appears to be a day1-G1 bug.
This can cause PtrQueueSet::enqueue_complete_buffer to unnecessarily notify that primary thread (via the shared cbl_mon). It also might be possible for the primary thread to block waiting for work when there is already work available. (Though circumstances and timing for that seem pretty unlikely. And it would unblock on the next buffer enqueue.)
This behavior appears to be a day1-G1 bug.