This is related to WT-3105. There are a few general issues to discuss regarding thread groups that I'd like to discuss with alexander.gorrod.
- The fix in
WT-3105means we always call wt_thread_group_start_one and wt_thread_group_stop_one with wait=false. They are currently the only callers of those functions. Should we remove the wait arg and just always do a try lock? - Should the thread group shrink code hold the thread group lock across the thread join call? That seems that is a potential problem area in general.
- The way eviction works is that threads are started/stopped by a thread within the group. If/when we expand the use of thread groups to, say, async or LSM it seems that will continue to be the case (as opposed to some other outside-the-group thread manipulating the group). The latest hang in
WT-3105is general to this question.