Skip to content

shop is not working #501

Description

@git-good-w

I can not buy items

Activity

  1. git-good-w commented on Aug 25, 2026

    @git-good-w
    CollaboratorAuthor

    @Seungjun-bob
    Thanks for reporting the issue!

  2. oosuhada commented on Aug 27, 2026

    @oosuhada

    not working for me either.

  3. oosuhada commented on Aug 27, 2026

    @oosuhada

    진행 상황

    #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을 생성했습니다.

    patched Netx를 gitanimals-api에 로컬 연결한 뒤 깨끗한 Redis에서 다음 테스트를 각각 검증했습니다.

    • GotchaFacadeV3Test — BUILD SUCCESSFUL
    • RegisterProductFacadeTest — BUILD SUCCESSFUL
    • BuyProductFacadeTest — 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.org are 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
    • AbstractSagaListener resubscribes after errors, but RedisStreamSagaListener kept reusing the same StreamReceiver; 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:

    I also wired the patched Netx into gitanimals-api locally and verified the following against clean Redis instances:

    • GotchaFacadeV3Test — BUILD SUCCESSFUL
    • RegisterProductFacadeTest — BUILD SUCCESSFUL
    • BuyProductFacadeTest — BUILD SUCCESSFUL

    After the Netx fix is merged/released, the remaining step is updating the Netx version used by gitanimals-api.

  4. oosuhada commented on Aug 27, 2026

    @oosuhada

    추가 진행 상황

    근본 수정과 API 적용 준비를 분리해서 마무리했습니다.

    • Netx 수정 PR: devxb/Netx#157
      • listener 재구독 시 stale StreamReceiver를 재사용하지 않고 새 receiver를 생성
      • 관련 RedisStreamSagaListenerTest 통과
      • 버전 0.5.1 준비
    • 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 성공

    운영 장애도 아직 지속 중입니다.

    • Gotcha 500: 199 → 204
    • Gotcha 성공: 4,025에서 그대로
    • Auction 신규 등록: 2026-08-22 이후 여전히 없음
    • API process는 재시작되지 않은 동일 인스턴스

    현재 남은 병목은 devxb/Netx#157 merge와 Netx 0.5.1 Maven 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 StreamReceiver on listener resubscription instead of reusing a stale receiver
      • RedisStreamSagaListenerTest passes
      • prepares version 0.5.1
    • 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

    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#157 and publishing Netx 0.5.1 to Maven Central. Once 0.5.1 is available, the prepared API branch can be opened as a separate PR.

  5. devxb commented on Aug 29, 2026

    @devxb
    Member

    안녕하세요
    Watchdog 장애로 레디스 커넥션이 끊겨서 발생한 이슈로 해소되었습니다.

    이용해주셔서 감사드립니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions