Skip to content

fix: pod WebClient 응답 타임아웃 기본값 상향 - #420

Merged
yoon6yo merged 1 commit into
developfrom
bugfix/issue-419
Sep 6, 2026
Merged

fix: pod WebClient 응답 타임아웃 기본값 상향#420
yoon6yo merged 1 commit into
developfrom
bugfix/issue-419

Conversation

@yoon6yo

@yoon6yo yoon6yo commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • podWebClient의 responseTimeout 기본값을 300초 → 600초로 상향
  • 이미지 pull이 오래 걸리는 pod 생성 시 config-server 응답 전에 admin_be에서 먼저 타임아웃되는 문제 완화

Related

Closes #419

Summary by CodeRabbit

  • Bug Fixes
    • Increased the default response timeout for pod requests from 5 minutes to 10 minutes, helping prevent timeouts during longer-running operations.

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2ab4734f-9d83-417f-8d5e-cdb4f46753a9

📥 Commits

Reviewing files that changed from the base of the PR and between a477293 and 2974123.

📒 Files selected for processing (1)
  • src/main/java/DGU_AI_LAB/admin_be/global/config/WebClientConfig.java

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The podWebClient default response timeout increases from 300 seconds to 600 seconds. The configured value continues to control the HTTP client response timeout.

Changes

Pod WebClient timeout

Layer / File(s) Summary
Update response timeout default
src/main/java/DGU_AI_LAB/admin_be/global/config/WebClientConfig.java
The default config.pod-timeout-seconds value changes from 300 to 600 seconds.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: 🔵 Low · up to 29741

The default pod operation timeout increases from 300 to 600 seconds, which can reduce premature failures for slow image pulls but may keep stalled requests and shared connection capacity occupied longer. The PR is mergeable with explicit owner awareness of this bounded availability risk and follow-up if downstream slowness can exhaust request capacity.

Suggested reviewers: aapdo, saokiritoni

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: increasing the default pod WebClient response timeout.
Description check ✅ Passed The description explains the timeout change, the reason for the change, and the linked issue. It uses different headings from the repository template and omits a separate reference section, but it con…
Linked Issues check ✅ Passed The change implements issue #419 by increasing the podWebClient responseTimeout default from 300 seconds to 600 seconds to reduce premature admin_be timeouts during long image pulls.
Out of Scope Changes check ✅ Passed The pull request changes only the podWebClient default response timeout, which is directly within the scope of issue #419.
Full details: Description check

Explanation

The description explains the timeout change, the reason for the change, and the linked issue. It uses different headings from the repository template and omits a separate reference section, but it contains the required core information.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bugfix/issue-419

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@yoon6yo
yoon6yo merged commit 9cc01da into develop Sep 6, 2026
1 check passed
yoon6yo added a commit that referenced this pull request Sep 6, 2026
* fix: 계정 삭제 시 대상 farm 노드(node_name)를 config-server에 전달

config-server의 delete_user API에 node_name 파라미터가 추가됐는데(admin_infra
PR #138), admin_be가 이걸 실제로 안 넘기면 아무 효과가 없다. 4개 호출부를 각각
수정:

- RequestExpiryService(만료 정리), AdminUserService(관리자 수동 삭제, 유저
  탈퇴 시 일괄 정리): 이미 Request 엔티티에 있는 nodeName을 그대로 사용.
- AdminRequestCommandService의 승인 실패 보상 트랜잭션: 두 갈래로 나뉜다.
  ① Pod 생성 자체가 실패한 경우 — 성공한 CreatePodResponseDTO가 없어서 node를
  알 방법이 없었다. PodService.createPod의 에러 응답 파싱을 확장해 config-server가
  응답 바디에 넣어주는 node 필드(admin_infra PR #138에서 추가)를 꺼내
  PodCreationFailedException으로 들고 오도록 함.
  ② Pod는 성공했는데 이후 DB 반영이 실패한 경우 — 이미 성공 응답(node 포함)이
  있으므로 그대로 사용.

node를 못 구하면(파싱 실패 등) null로 넘어가고, config-server는 하위 호환으로
기존처럼 전체 farm을 훑는다 — 동작이 깨지지는 않고, 다만 좁혀지지 않을 뿐이다.

* fix: 관리자 events 조회 RBAC 누락 및 신청 취소 시 PROCESSING 상태 미차단 수정

admin-prod RBAC에 events 권한을 추가해 Pod 이벤트 조회 403을 수정하고, cancelRequest가 PROCESSING 상태를 못 막던 버그를 수정한다.

Fixes #466

* fix: 보상 트랜잭션 실패 알림을 관리자 farm/lab 채널로 라우팅 (#469)

계정/Pod 생성 실패 후 보상 트랜잭션(정리) 자체가 또 실패하면 고아 계정/Pod가
남을 수 있어 즉시 수동 정리가 필요한데, 지금까지는 관리자가 평소 안 보는
범용 에러 로그 채널로만 알림이 갔다. 요청의 서버 구분(FARM/LAB)을 이용해
"새로운 서버 사용 신청" 알림과 같은 관리자 채널로 보내도록 변경한다.

재조정 스케줄러가 트랜잭션 밖에서 resourceGroup(지연 로딩)에 접근하게 되어
LazyInitializationException이 나는 것도 함께 막는다 (JOIN FETCH 추가).

Fixes #468

* fix: pod WebClient 응답 타임아웃 기본값 300초 → 600초로 상향 (#420)

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@yoon6yo yoon6yo mentioned this pull request Sep 6, 2026
yoon6yo added a commit that referenced this pull request Sep 6, 2026
* feat: 관리자용 Pod 생성 진행 상태 조회 API 추가

* fix: 관리자 events 조회 RBAC 누락 및 신청 취소 시 PROCESSING 상태 미차단 수정

admin-prod RBAC에 events 권한을 추가해 Pod 이벤트 조회 403을 수정하고, cancelRequest가 PROCESSING 상태를 못 막던 버그를 수정한다.

Fixes #466

* fix: 보상 트랜잭션 실패 알림을 관리자 farm/lab 채널로 라우팅 (#469)

계정/Pod 생성 실패 후 보상 트랜잭션(정리) 자체가 또 실패하면 고아 계정/Pod가
남을 수 있어 즉시 수동 정리가 필요한데, 지금까지는 관리자가 평소 안 보는
범용 에러 로그 채널로만 알림이 갔다. 요청의 서버 구분(FARM/LAB)을 이용해
"새로운 서버 사용 신청" 알림과 같은 관리자 채널로 보내도록 변경한다.

재조정 스케줄러가 트랜잭션 밖에서 resourceGroup(지연 로딩)에 접근하게 되어
LazyInitializationException이 나는 것도 함께 막는다 (JOIN FETCH 추가).

Fixes #468

* fix: pod WebClient 응답 타임아웃 기본값 300초 → 600초로 상향 (#420)

* fix: 계정 삭제 시 대상 farm 노드(node_name)를 config-server에 전달 (#465)

* fix: 계정 삭제 시 대상 farm 노드(node_name)를 config-server에 전달

config-server의 delete_user API에 node_name 파라미터가 추가됐는데(admin_infra
PR #138), admin_be가 이걸 실제로 안 넘기면 아무 효과가 없다. 4개 호출부를 각각
수정:

- RequestExpiryService(만료 정리), AdminUserService(관리자 수동 삭제, 유저
  탈퇴 시 일괄 정리): 이미 Request 엔티티에 있는 nodeName을 그대로 사용.
- AdminRequestCommandService의 승인 실패 보상 트랜잭션: 두 갈래로 나뉜다.
  ① Pod 생성 자체가 실패한 경우 — 성공한 CreatePodResponseDTO가 없어서 node를
  알 방법이 없었다. PodService.createPod의 에러 응답 파싱을 확장해 config-server가
  응답 바디에 넣어주는 node 필드(admin_infra PR #138에서 추가)를 꺼내
  PodCreationFailedException으로 들고 오도록 함.
  ② Pod는 성공했는데 이후 DB 반영이 실패한 경우 — 이미 성공 응답(node 포함)이
  있으므로 그대로 사용.

node를 못 구하면(파싱 실패 등) null로 넘어가고, config-server는 하위 호환으로
기존처럼 전체 farm을 훑는다 — 동작이 깨지지는 않고, 다만 좁혀지지 않을 뿐이다.

* fix: 관리자 events 조회 RBAC 누락 및 신청 취소 시 PROCESSING 상태 미차단 수정

admin-prod RBAC에 events 권한을 추가해 Pod 이벤트 조회 403을 수정하고, cancelRequest가 PROCESSING 상태를 못 막던 버그를 수정한다.

Fixes #466

* fix: 보상 트랜잭션 실패 알림을 관리자 farm/lab 채널로 라우팅 (#469)

계정/Pod 생성 실패 후 보상 트랜잭션(정리) 자체가 또 실패하면 고아 계정/Pod가
남을 수 있어 즉시 수동 정리가 필요한데, 지금까지는 관리자가 평소 안 보는
범용 에러 로그 채널로만 알림이 갔다. 요청의 서버 구분(FARM/LAB)을 이용해
"새로운 서버 사용 신청" 알림과 같은 관리자 채널로 보내도록 변경한다.

재조정 스케줄러가 트랜잭션 밖에서 resourceGroup(지연 로딩)에 접근하게 되어
LazyInitializationException이 나는 것도 함께 막는다 (JOIN FETCH 추가).

Fixes #468

* fix: pod WebClient 응답 타임아웃 기본값 300초 → 600초로 상향 (#420)

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebClient pod-timeout-seconds 기본값 상향

1 participant