내 애플리케이션이 중단 없이 절전 모드로 전환됩니다. 프로세스가 중단되었습니다 linkat
.
❯ sudo cat /proc/1308028/syscall
265 0xffffffffffffff9c 0x7fbd9f32a120 0xffffffffffffff9c 0x7fbd9f395930 0x400 0x7fbd9f3c1c70 0x7ffff745b7c0 0x7fbda231b1fd
❯ sudo cat /proc/1308028/stack
[<0>] cv_wait_common+0xaa/0x130 [spl]
[<0>] txg_wait_synced_impl+0xcb/0x110 [zfs]
[<0>] txg_wait_synced+0x10/0x40 [zfs]
[<0>] zfs_link+0x611/0x740 [zfs]
[<0>] zpl_link+0xa2/0x120 [zfs]
[<0>] vfs_link+0x278/0x3b0
[<0>] do_linkat+0x2f7/0x320
[<0>] __x64_sys_linkat+0x5a/0x70
[<0>] do_syscall_64+0x3e/0x90
[<0>] entry_SYSCALL_64_after_hwframe+0x6e/0xd8
근본 원인은 불량 HDD일 수 있지만, 이 경우처럼 애플리케이션이 모두 영원히 중단될 가능성이 있으므로 동기식 IO를 피해야 하는 애플리케이션이 있는지 궁금합니다. 아니면 ZFS가 모든 API에 기본 시간 초과를 추가하는 역할을 담당하며 어디에서나 시간 초과가 있는 파일 시스템을 사용해야 합니까?
(+그리고 재부팅하지 않고 이 상태를 종료할 수도 있나요?)
답변1
내가 찾았어이 GitHub 문제이므로 이는 커널 제한 사항이 아닌 것 같습니다.
ZFS는 적절한 시간 초과와 함께 비동기 구현을 사용할 수 있지만 이제는 동기 구현을 사용합니다.