Linux 커널에서는 다음 취약점이 해결되었습니다. xprtrdma: 초기 종료 경로에서 re_receive를 감소시킵니다. rpcrdma_post_recvs() 작업 요청 생성에 실패한 경우 (예를 들어 메모리 할당 실패로 인해) 또는 일찍 종료됩니다. 반환하기 전에 ep->re_receive를 줄여야 합니다. 그렇지 않으면 우리는 re_received는 결코 0에 도달하지 않으므로 rpcrdma_xprt_drain()을 중지하고 완료가 트리거되지 않습니다. 메모리 사용량이 높은 시스템에서는 이런 현상이 나타날 수 있습니다.
Linux 커널에서는 다음 취약점이 해결되었습니다.
xprtrdma: 초기 종료 경로에서 re_receive를 감소시킵니다.
rpcrdma_post_recvs() 작업 요청 생성에 실패한 경우 (예를 들어 메모리 할당 실패로 인해) 또는 일찍 종료됩니다. 반환하기 전에 ep->re_receive를 줄여야 합니다. 그렇지 않으면 우리는 re_received는 결코 0에 도달하지 않으므로 rpcrdma_xprt_drain()을 중지하고 완료가 트리거되지 않습니다.
메모리 사용량이 높은 시스템에서는 다음과 같이 나타날 수 있습니다. 중단된 작업:
정보: kworker/u385:17:8393 작업이 122초 이상 차단되었습니다.
오염됨: G SE 6.19.0 #3
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs"는 이 메시지를 비활성화합니다.
작업:kworker/u385:17 상태:D 스택:0 pid:8393 tgid:8393 ppid:2 task_flags:0x4248060 플래그:0x00080000
작업 대기열: xprtiod xprt_autoclose [sunrpc]
통화 추적:
<과제>
__일정+0x48b/0x18b0
? ib_post_send_mad+0x247/0xae0 [ib_core]
일정+0x27/0xf0
Schedule_timeout+0x104/0x110
__wait_for_common+0x98/0x180
? __pfx_schedule_timeout+0x10/0x10
wait_for_completion+0x24/0x40
rpcrdma_xprt_disconnect+0x444/0x460 [rpcrdma]
xprt_rdma_close+0x12/0x40 [rpcrdma]
xprt_autoclose+0x5f/0x120 [sunrpc]
process_one_work+0x191/0x3e0
작업자_스레드+0x2e3/0x420
? __pfx_worker_thread+0x10/0x10
k스레드+0x10d/0x230
? __pfx_kthread+0x10/0x10
ret_from_fork+0x273/0x2b0
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 75.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 75.00 |
VPI 공식 vpi-v1 기준