OneFS. Сбой утверждения — критическая ошибка, возникающая при сбое декодирования атрибутов квот или моментальных снимков из блоков расширения после модернизации до OneFS 9.2.0.0 или 9.2.1.0
Сводка: На узлах может возникать паника с сообщением FAILED ASSERTION, если не удалось декодировать квоты или атрибуты снимков из блоков расширения после модернизации до OneFS 9.2.0.0 или 9.2.1.0. ...
Симптомы
На узлах может возникать паника с аналогичным или похожим стеком паники:
panic @ time 1622753124.594, thread 0xfffffe86de1deb00: Assertion Failure
time = 1622753124
cpuid = 3, TSC = 0x114d3cfdc35dc80
Panic occurred in module kernel loaded at 0xffffffff80200000:
Stack: --------------------------------------------------
kernel:isi_assert_halt+0x2e
kernel:ifm_get_quota_gov+0x188
kernel:quota_gov_need_update+0x141
kernel:quota_scan_file+0x188
kernel:_sys_ifs_quota_scan_file+0x1fd
kernel:amd64_syscall+0x380
--------------------------------------------------
*** FAILED ASSERTION decode @ /b/mnt/src/sys/ifs/ifm/ifm_dinode.c:3537: failed to decode quota governance attribute for lin 1:1797:9acf. On-disk format change?
или
panic @ time 1625264072.183, thread 0xfffffe8688a2c080: Assertion Failure
time = 1625264072
cpuid = 0, TSC = 0x395c9046b59119
Panic occurred in module kernel loaded at 0xffffffff80200000:
Stack: --------------------------------------------------
ядро:isi_assert_halt+0x2e
ядро:ifm_getsnapids+0xdd
ядро:validate_inode_snapid+0x4ad
ядро:revalidate_inode_contents+0x2cb
ядро:bam_update_inode_hint+0x14fd
ядро:bam_vget_stream_valid_pref_hint+0x11b
ядро:bam_vget_valid+0x21
ядро:bam_getparents+0x1ae
ядро:_sys_pctl2_lin_get_path_plus+0x6c3
ядро:amd64_syscall+0x380
--------------------------------------------------
НЕУДАЧНОЕ УТВЕРЖДЕНИЕ num_snapids * sizeof(snapids-snapids>[0]) == inattr_size(attr) @ /b/mnt/src/sys/ifs/ifm/ifm_dinode.c:2598:
Паника может возникать при выполнении заданий QuotaScan, SnapshotDelete, SmartPools или SmartPoolsTree.
При чтении или изменении атрибутов некоторых файлов с блоками расширения может также возникать ошибка ввода/вывода.
Причина
Версия индексного дескриптора модернизирована до версии 8, и также необходимо модернизировать версию блока расширения после модернизации до OneFS 9.2.0.0 (сборка B_9_2_0_002) или 9.2.1.0 (сборка B_9_2_1_002).
Однако из-за дефекта PSCALE-107686 некоторые блоки расширения не модернизируются и не могут быть правильно декодированы.
Разрешение
! Важное обновление от 21 июня 2021 г.!
Модернизация до версии OneFS 9.2.x доступна после следующего выпуска RUP.9.2.1.1_GA-RUP_2021-06_PSP-1313.tgz
9.2.0.1_GA-RUP_2021-06_PSP-1322.tgz
Для заказчиков, планирующих модернизацию до версии 9.2.x, модернизация до версии 9.2.1.1 или 9.2.0.1 входит в указанные выше RUP.
Заказчикам, которые выполнили модернизацию до OneFS 9.2.0.0 или 9.2.1.0, рекомендуется отключить следующие задания и оставить их отключенными до запуска IntegetityScan:
- AutoBalance
- AutoBalanceLin
- FilePolicy
- FlexProtect
- FlexProtectLin
- MultiScan
- MediaScan
- SetProtectPlus
- ShadowStoreProtect
- SmartPools
- SmartPoolsTree
- QuotaScan
- Upgrade
- Collect
Перед отключением этих заданий, получите копию текущего состояния задания (если некоторые задания ранее были отключены по другим причинам, их не нужно включать):
# isi job types list
Отключите указанные выше задания:
# for jobName in {AutoBalance,AutoBalanceLin,FilePolicy,FlexProtect,FlexProtectLin,MultiScan,MediaScan,SetProtectPlus,ShadowStoreProtect,SmartPools,SmartPoolsTree,QuotaScan,Upgrade,Collect}; do isi job types modify $jobName --enabled false --force; done
Если на узлах возникает паника, модуль заданий можно отключить до установки RUP:
# isi services -a isi_job_d disable
После установки RUP можно снова включить механизм работы:
# isi services -a isi_job_d enable
Перечисленные выше задания должны оставаться отключенными. Обратитесь за помощью в службу поддержки Isilon.
Важные примечания.
После отключения FlexProtect и FlexProtectLIN восстановление неисправных устройств невозможно. Если обнаружено какое-либо отключенное устройство (проверьте с помощью команды «isi_group_info»), как можно скорее обратитесь в службу поддержки ISILON.
Мы не можем переносить данные между уровнями или пулами узлов, так как задание SmartPools отключено. Необходимо внимательно следить за использованием емкости для каждого пула.
Если какой-либо из них скоро будет заполнен, как можно скорее обратитесь в службу поддержки ISILON.