The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=8321d0da2ce294d83acc564f2c71fc3a023eb621

commit 8321d0da2ce294d83acc564f2c71fc3a023eb621
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-08-29 20:14:58 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-08-30 15:07:21 +0000

    kern/kern_thread.c: improve assert in thread_single_end()
    
    The process might be stopped, which is handled by the loop that
    unsuspends threads.  But the condition is not tolerated in the assert,
    which insists that all threads must be unsuspended always.
    
    Reported and tested by: pho
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D52293
---
 sys/kern/kern_thread.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c
index 50b040132396..3180c66cb42b 100644
--- a/sys/kern/kern_thread.c
+++ b/sys/kern/kern_thread.c
@@ -1694,8 +1694,10 @@ thread_single_end(struct proc *p, int mode)
                                thread_unlock(td);
                }
        }
-       KASSERT(mode != SINGLE_BOUNDARY || p->p_boundary_count == 0,
-           ("inconsistent boundary count %d", p->p_boundary_count));
+       KASSERT(mode != SINGLE_BOUNDARY || P_SHOULDSTOP(p) ||
+           p->p_boundary_count == 0,
+           ("pid %d proc %p flags %#x inconsistent boundary count %d",
+           p->p_pid, p, p->p_flag, p->p_boundary_count));
        PROC_SUNLOCK(p);
        wakeup(&p->p_flag);
 }

Reply via email to