Skip to content

[wie-2026-09-22-lgt-object-reference-gate-adopt-p0] fix(jvm): GC 도달성 순회가 호스트 오류를 Result 로 전파한다 - #95

Merged
Jun025 merged 1 commit into
mainfrom
wie-2026-09-22-lgt-object-reference-gate-adopt-p0
Sep 23, 2026
Merged

Jun025 merged 1 commit into
mainfrom
wie-2026-09-22-lgt-object-reference-gate-adopt-p0

Conversation

@Jun025

@Jun025 Jun025 commented Sep 23, 2026

Copy link
Copy Markdown
Owner

무엇을

  • jvm/src/garbage_collector.rs: determine_garbage·find_reachable_objects·find_static_reachable_objects·find_all_fields → Result.
    get_field·get_static_field·배열 load 의 .unwrap() 3곳 → ? · 불변식 .unwrap() 2곳(as_array_instance, 슈퍼클래스 get_class) → JavaError::Unraisable.
  • Jvm::collect_garbage: determine_garbage(..)? (서명 Result<usize> 불변).
  • 오류 시 순회 중단 · 해제 0 (읽지 못한 객체가 유일 참조를 쥐고 있을 수 있으므로 건너뛰지 않는다).

왜

wie 제안 2026-09-22-lgt-object-reference-gate#p0 의 나머지 절반. 변종은 #94(JavaError::Unraisable)에서 끝났고, 이 PR 없이는 호스트가 올린 오류가 GC 경로에서 다시 패닉이 된다.

파열 범위

공개 API 변경 0 (mod garbage_collector 비공개) · 새 JavaError 변종 0 → match 파열 0.

검증

  • DoD 10명령 전건 rc=0.
  • 새 시험 jvm/tests/test_gc_host_error.rs ok ↔ get_field(..)? 를 .unwrap() 으로 되돌리면 panicked at jvm/src/garbage_collector.rs:103:55 FAILED.

상세 docs/worklog/2026-09-24-gc-walk-propagates-host-errors.md.

🤖 Generated with Claude Code

…순회가 호스트 오류를 Result 로 전파한다

find_reachable_objects 등 순회 4함수를 Result 로 바꿔 get_field·get_static_field·load 의
.unwrap() 3곳을 ? 로, 내부 불변식 unwrap 2곳을 JavaError::Unraisable 로 바꿨다.
오류가 나면 순회를 중단하고 아무것도 해제하지 않는다. collect_garbage 서명 불변 · 새 변종 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jun025
Jun025 merged commit e0e7868 into main Sep 23, 2026
13 checks passed
@Jun025
Jun025 deleted the wie-2026-09-22-lgt-object-reference-gate-adopt-p0 branch September 23, 2026 21:29
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.

1 participant