PowerScale: узел вызывает панику со стеком: Ошибка утверждения Ядро:pdm_update_membership+0x10b2
Summary: Несколько узлов вызывают панику со стеком: Ошибка утверждения Ядро:pdm_update_membership+0x10b2
Symptoms
Несколько узлов вызывают панику со стеком:
2022-03-03T14:40:11.340255-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: panic @ time 1646335137.652, thread 0xfffffe8ffa3b8080: Assertion Failure
2022-03-03T14:40:11.340297-05:00 <5.3> (id12) syslogd: sendto: Network is unreachable
2022-03-03T14:40:11.340317-05:00 <5.3> syslogd: last message repeated 1 times
2022-03-03T14:40:11.340322-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: time = 1646335137
2022-03-03T14:40:11.340334-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: cpuid = 15, TSC = 0xc868113bb278f
2022-03-03T14:40:11.340340-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: Panic occurred in module kernel loaded at 0xffffffff80200000:
2022-03-03T14:40:11.340347-05:00 <0.7> (id12) /boot/kernel.amd64/kernel:
2022-03-03T14:40:11.340353-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: Stack: --------------------------------------------------
2022-03-03T14:40:11.340359-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:isi_assert_halt+0x2e
2022-03-03T14:40:11.340365-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:pdm_update_membership+0x10b2
2022-03-03T14:40:11.340371-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:pdm_get_painted_domids+0x568
2022-03-03T14:40:11.340377-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:pdm_member_generate_entry+0xda
2022-03-03T14:40:11.340383-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:pdm_member_get_membership_entry+0x1b7
2022-03-03T14:40:11.340390-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:pdm_member_init_operation+0x16d
2022-03-03T14:40:11.340396-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:ifm_init_operation+0xb7
2022-03-03T14:40:11.340402-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:txn_i_include_vnode_to_list+0xc0
--
2022-03-03T14:40:11.340440-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:VOP_RENAME_APV+0x9b
2022-03-03T14:40:11.340446-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:isi_kern_renameat+0x37e
2022-03-03T14:40:11.340452-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:sys_enc_renameat+0x27
2022-03-03T14:40:11.340458-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: kernel:amd64_syscall+0x380
2022-03-03T14:40:11.340464-05:00 <0.7> (id12) /boot/kernel.amd64/kernel: --------------------------------------------------
2022-03-03T14:40:11.340471-05:00 <0.3> (id12) /boot/kernel.amd64/kernel: *** FAILED ASSERTION !domid_vec_empty(new_domids) && !pdm_is_non_ifs_vec(new_domids) ==> new_domids->domids[0] == PDM_ROOT_DOMID @ /b/mnt/src/sys/ifs/pdm/pdm_core.c:660: Invalid membership: [ 1.000000074fc.0001 ]
Cause
Вызывается следующим дефектом: PSCALE-118595
Эта проблема связана с рабочим процессом ADS (альтернативные потоки данных). Альтернативные потоки данных — это структура данных, используемая в Windows, в которой хранятся метаданные типа сведений о файле, например комментариев к файлу. Он не существует во FreeBSD (которая является базовой файловой системой OneFS в Isilon), но OneFS поддерживает его, и он рассматривается как файл в OneFS.
Как определить, подвержен ли кластер риску возникновения этой проблемы?
Возникновение этого дефекта в полевых условиях встречается редко.
Чтобы это условие гонки сработало, должны выполняться ВСЕ следующие условия:
Кластер работает под управлением версии OneFS ниже 9.4.0.0.
Файл имеет несколько родительских элементов (жестко связанных файлов).
К файлу должен быть прикреплен ADS.
Данные файла находятся в облачном хранилище (локальные данные на диске отсутствуют).
Переименование одной из родительских ссылок на другой домен (например, в другое расположение снимка).
Resolution
Постоянное решение.
Выполните модернизацию до одной из следующих версий OneFS или более поздней, которая включает исправление:OneFS 9.4.0.0PATCH: [9.3.0.5_GA-RUP_2022-03] PSP-1956PATCH: [9.2.1.10_GA-RUP_2022-03] PSP-2075PATCH: [9.1.0.14_GA-RUP_2021-12] PSP-1722
Обходной путь в этом сценарии будет сложным. Необходимо удалить затронутые файлы из CloudPools и сделать их доступными только локально. Лучше обновить и устранить проблему напрямую.