Bug #2930
open'objcache' causes panic during 'nfs_readdir'
0%
Description
'vkernel' with '/home' file system mounted from host produces the following panic when trying to read a directory with 10s of 1000s of files. Increasing memory to the 'vkernel' avoids the issue.
panic: NFS node: malloc limit exceeded
cpuid = 0
Trace beginning at frame 0x80291f70a0
panic() at 0x4bc587
panic() at 0x4bc587
kmalloc() at 0x4b87aa
objcache_malloc_alloc() at 0x4af344
objcache_get() at 0x4afba5
nfs_nget_nonblock() at 0x5f7ab4
Debugger("panic")
CPU0 stopping CPUs: 0x0000000000000000
stopped
Stopped at 0x6ab941: movb $0,0x1165564(%rip)
Updated by tofergus over 8 years ago
It seems that 'nfs' creats an 'objcache_create_simple' for the 'NFS Node' structures, however, 'objcache_simple' does not seem to allow 'kmalloc' to return NULL and thus, we 'panic'.
Unclear to me how this should be resolved. It would seem that 'objcache_simple' should set 'M_NULLOK' to allow and propagate the NULL return but I would need a much better understanding of all subsystems before guessing where and how that should happen.