Dapr
v1.17.4Orchestration & ManagementDapr 1.17.4는 워크플로우 정확성, Pulsar OOM 위험, Placement 지연으로 인한 Actor 동결, Go 표준 라이브러리 보안 취약점 등 7개 버그를 수정했습니다.
securityGo 표준 라이브러리 CVE 패치 — 즉시 업그레이드 권장
Go 1.25.9는 archive/tar, crypto/tls, crypto/x509, html/template, 컴파일러에서 발견된 취약점을 수정합니다. Dapr의 모든 바이너리와 Docker 이미지가 패치된 툴체인으로 재빌드됐습니다. 설정 변경 없이 버전만 1.17.4로 올리면 됩니다.
breakingPulsar processMode 동작 변경 — 컴포넌트 설정 검토 필수
기존에 Pulsar 컴포넌트 YAML에 processMode를 설정했다면 그 값은 사실상 무시되고 있었습니다. 업그레이드 후에는 설정값이 실제로 적용됩니다. processMode: sync로 순서 보장을 기대했지만 실제로는 async 모드로 돌고 있었다면, 업그레이드 후 동작이 달라집니다. async 모드는 이제 maxConcurrentHandlers(기본값 100)로 동시성이 제한됩니다. 운영 배포 전 Pulsar 컴포넌트 메타데이터를 반드시 점검하고 처리량 동작을 테스트하세요.
enhancementPlacement 지연으로 인한 Actor·워크플로우 동결 위험 해소
Placement 전파 동결 버그는 롤링 업데이트 중 연쇄적인 헬스 체크 실패를 유발할 수 있었고, Kubernetes가 Pod를 비정상으로 판단해 재시작하면서 상황이 더 악화되는 패턴이었습니다. 1.17.4부터는 느린 피어 감지 시 치명적 종료 대신 재연결을 시도합니다. 롤링 업데이트 중 Actor 행(hang)이나 zombie daprd 프로세스를 경험한 적 있다면 이 버그가 원인이었을 가능성이 큽니다. 별도 설정 변경 없이 업그레이드만으로 적용됩니다.
주요 변경 (5)
- Pulsar pub/sub가 컴포넌트 YAML의 processMode를 올바르게 읽고 async 모드에서 동시성 한도를 적용 — 기존에는 고부하 시 Pod OOM 가능성 있었음
- 원격 앱이 오프라인 상태일 때 크로스 앱 워크플로우가 PENDING으로 무한 대기하던 문제 수정 — 디스패치별 2초 타임아웃과 사전 저장 로직 적용
- ContinueAsNew 고이벤트량 환경에서 이벤트 유실·중복 처리 수정 — 상태 스냅샷/복원과 inbox 교체로 두 가지 근본 원인 해결
- 느린 사이드카 하나가 전체 네임스페이스의 Actor·워크플로우 작업을 동결시키던 문제 수정 — Placement 타임아웃 시 재연결 로직으로 전환
- 멀티노드 클러스터에서 스케줄러 Pod 재시작 후 잡 트리거가 무관한 클러스터 이벤트 전까지 멈추던 문제 수정 — 커넥터별 독립 재시도 방식으로 변경