CONTAP-722960: Node panic with page fault in get_nc_cookie_lock during directory rename
Issue
- One or more nodes panic with a page fault in the WAFL exempt domain while
processing a rename operation. The panic string is similar to:page fault (supervisor read data, page not present) on VA 0x8
cs:rip 0x20:0xffffffff8f018e22 rflags 0x10246
in SK process wafl_exempt14 on release 9.18.1P4 (C)
- The instruction pointer and the SK thread number (for example
{}wafl_exempt14{}) vary between occurrences. The core backtrace contains the following frames, from the faulting frame outwards:get_nc_cookie_lock (lookup_info=0x0, findflags=(W_FIND_LOAD_DIR_IN_CHUNKS | W_FIND_ADD_TRANSIENT_ENT)) prod/common/wafl/dir.c
wafl_dir_name_unlock prod/common/wafl/dir.c
wafl_add_dir_entry_int prod/common/wafl/dir.c
wafl_add_dir_entry_modify prod/common/wafl/dir.c
wafl_add_sdir_entry_int prod/common/wafl/sdir_common.c
wafl_spinnp_rename_local prod/common/wafl/ng/rename.c
wafl_spinnp_rename prod/common/wafl/ng/rename.c
wafl_process_one_msg_int prod/common/wafl/wp1m_impl.c
- The distinguishing signature is the combination of
{}VA 0x8{},get_nc_cookie_lockwith{}lookup_info=0x0{}, and awafl_spinnp_renamecaller. - After a panic, if storage failover is configured, the partner takes over and replays the NVRAM log. Because the queued rename is re-driven during replay, the surviving node can panic with the same signature, which may result in a dual-node outage.
