Repository navigation
shop is not working #501
Description
Activity
@Seungjun-bob
Thanks for reporting the issue!not working for me either.
진행 상황
#501을 Shop UI 문제로만 보지 않고 API write 경로까지 추적해봤습니다.
현재 확인된 내용은 다음과 같습니다.
api.gitanimals.org의 일반 read API와 DB 연결은 정상입니다.- 반면 Gotcha / Shop / Auction write 요청은 모두 Netx Saga를 공통으로 사용합니다.
- 운영 500 응답 시간이 Netx의 결과 대기 timeout과 일치합니다.
- 일반 Saga: 약 10초
- 상품 등록: 코드에서
sagaSync(100000, ...)을 사용해 약 100초
- 최근 Gotcha 500이 증가하는 동안 point decrease와 Render persona 지급 호출 수는 증가하지 않아, downstream API보다 Saga 처리/결과 경로 앞단에서 막히는 것으로 확인했습니다.
- Netx의
AbstractSagaListener는 오류 후 자동 재구독하지만RedisStreamSagaListener가 하나의StreamReceiver인스턴스를 계속 재사용하고 있었습니다. receiver 자체가 연결 장애 후 stale/terminal 상태가 되면 재구독해도 같은 receiver를 다시 쓰는 구조입니다.
이 부분을 수정하는 Netx PR을 생성했습니다.
- fix: recreate Redis stream receiver after listener failure devxb/Netx#157
- 재구독 시 새로운 Redis
StreamReceiver를 생성하도록 수정 - 첫 receiver 오류 후 두 번째 receiver가 생성되는 회귀 테스트 추가
patched Netx를
gitanimals-api에 로컬 연결한 뒤 깨끗한 Redis에서 다음 테스트를 각각 검증했습니다.GotchaFacadeV3Test— BUILD SUCCESSFULRegisterProductFacadeTest— BUILD SUCCESSFULBuyProductFacadeTest— BUILD SUCCESSFUL
Netx 수정이 merge/release되면
gitanimals-api의 Netx 버전을 올리는 단계가 남습니다.
Progress
I traced #501 beyond the Shop UI and into the API write path.
Current findings:
- normal read APIs and DB connectivity on
api.gitanimals.orgare healthy - Gotcha / Shop / Auction writes all share the Netx Saga path
- production 500 durations match Netx result timeouts
- normal Saga: about 10 seconds
- product registration: about 100 seconds because it explicitly uses
sagaSync(100000, ...)
- while new Gotcha 500 responses increased, point-decrease and Render persona calls did not, which places the failure before downstream write calls
AbstractSagaListenerresubscribes after errors, butRedisStreamSagaListenerkept reusing the sameStreamReceiver; if the receiver itself becomes stale/terminal after a connection failure, the restart path reuses the same broken receiver
I opened a Netx fix for this behavior:
- fix: recreate Redis stream receiver after listener failure devxb/Netx#157
- recreate the Redis
StreamReceiveron resubscription - add regression coverage verifying a new receiver is created after the previous one fails
I also wired the patched Netx into
gitanimals-apilocally and verified the following against clean Redis instances:GotchaFacadeV3Test— BUILD SUCCESSFULRegisterProductFacadeTest— BUILD SUCCESSFULBuyProductFacadeTest— BUILD SUCCESSFUL
After the Netx fix is merged/released, the remaining step is updating the Netx version used by
gitanimals-api.추가 진행 상황
근본 수정과 API 적용 준비를 분리해서 마무리했습니다.
- Netx 수정 PR:
devxb/Netx#157- listener 재구독 시 stale
StreamReceiver를 재사용하지 않고 새 receiver를 생성 - 관련
RedisStreamSagaListenerTest통과 - 버전
0.5.1준비
- listener 재구독 시 stale
- API 적용 브랜치:
oosuhada/gitanimals-api:fix/issue-501-shop- commit
749c7da—build: upgrade netx to 0.5.1 - 로컬 0.5.1 artifact를 연결해 dependency resolution 및 clean compile 성공
- commit
운영 장애도 아직 지속 중입니다.
- Gotcha 500: 199 → 204
- Gotcha 성공: 4,025에서 그대로
- Auction 신규 등록: 2026-08-22 이후 여전히 없음
- API process는 재시작되지 않은 동일 인스턴스
현재 남은 병목은
devxb/Netx#157merge와 Netx0.5.1Maven Central release입니다. 0.5.1이 공개되면 준비해둔 API 브랜치로 별도 PR을 생성하면 됩니다.
Additional progress
The root fix and the API integration step are now prepared separately.
- Netx fix PR:
devxb/Netx#157- recreates the Redis
StreamReceiveron listener resubscription instead of reusing a stale receiver RedisStreamSagaListenerTestpasses- prepares version
0.5.1
- recreates the Redis
- API integration branch:
oosuhada/gitanimals-api:fix/issue-501-shop- commit
749c7da—build: upgrade netx to 0.5.1 - verified dependency resolution and clean compilation against a local 0.5.1 artifact
- commit
The production incident is still active:
- Gotcha 500 count: 199 → 204
- Gotcha success count: still 4,025
- no new Auction registrations since 2026-08-22
- the API process is still the same long-running instance
The remaining blocker is merging
devxb/Netx#157and publishing Netx0.5.1to Maven Central. Once 0.5.1 is available, the prepared API branch can be opened as a separate PR.- Netx 수정 PR:
안녕하세요
Watchdog 장애로 레디스 커넥션이 끊겨서 발생한 이슈로 해소되었습니다.이용해주셔서 감사드립니다
I can not buy items