Hello, Thanks for your report.
On 24/01/25(Fri) 10:37, K R wrote: > >Synopsis: kernel panic: "anon->an_lock == NULL || > >rw_write_held(anon->an_lock)" failed > >Category: kernel amd64 > >Environment: > System : OpenBSD 7.6 > Details : OpenBSD 7.6-current (GENERIC.MP) #515: Wed Jan > 22 02:25:16 MST 2025 > > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > Architecture: OpenBSD.amd64 > Machine : amd64 > >Description: > > The machine is a Dell PowerEdge R450 with 128GB of RAM. It panics > under heavy RAM usage. With 7.6-release + syspatches, it would just > freeze, not panic. Under 7.6-current now it panics with the assertion > shown above. Panic screen attached below. > > Please let me know if you need more specific commands at the ddb prompt. I don't need more informations. Please find a fix below. The panic is due to an incorrect unlock in error path. Can you confirm the fix works for you? Thanks, Martin Index: uvm/uvm_pdaemon.c =================================================================== RCS file: /cvs/src/sys/uvm/uvm_pdaemon.c,v diff -u -p -r1.133 uvm_pdaemon.c --- uvm/uvm_pdaemon.c 27 Dec 2024 12:04:40 -0000 1.133 +++ uvm/uvm_pdaemon.c 24 Jan 2025 16:06:19 -0000 @@ -848,7 +848,6 @@ uvmpd_scan_inactive(struct uvm_pmalloc * anon->an_page = NULL; p->uanon = NULL; - rw_exit(anon->an_lock); uvm_anfree(anon); /* kills anon */ pmap_page_protect(p, PROT_NONE); anon = NULL;
