error on sitetrack_id: 21354 - undefined method `untrashed?' for nil
Summary: undefined method `untrashed?' for nil in CreateSitetrackEditingEntitiesWorker
결과#
orphan editing_id (참조 대상 Editing 이 삭제된 상태) 에서 발생하던 NoMethodError 를 safe navigation 도입으로 해소. Jira TSLA-13643, tesla PR 88959 생성 완료 (validation APPROVED, 재시도 없음).
Pull Requests#
| Repo | PR | Branch |
|---|---|---|
| tesla | https://dev.azure.com/cupix/tesla/_git/tesla/pullrequest/88959 | feature/TSLA-13643 |
변경 내용#
app/models/concerns/finalization/editing_entity.rb—_do_assign_editing_to_editing_entityearly-return 조건에서self.editing.untrashed?→self.editing&.untrashed?(1 라인). line 42 의 stale-clear 로직이 이미 동일 패턴을 사용하고 있어 orphan 케이스가 자연스럽게 재배정 경로로 흐름.spec/models/concerns/finalization/editing_entity_spec.rb— orphanediting_id회귀 방지 스펙 추가.Editing.where(id: ...).delete_all로 하드 삭제를 시뮬레이션한 뒤assign_editing_to_editing_entity가 예외 없이 새 Editing 을 생성하는지 검증.
검증#
- 정적:
ruby -cOK,bundle exec srb tcOK,bundle exec rubocop0 offenses (2 files inspected). - Pre-push hook: rspec (changed files only) Passed.
- Blind validator subagent (attempt 1): APPROVED — 차단 이슈 없음.
후속 트랙 (RCA 링크)#
- RCA H5 (orphan editing_id 를 만든 상위 시나리오 —
_trash_empty_victim_editings/ purge 파이프라인이 참조하는EditingEntity.editing_id를 함께 nil 로 셋하는지 여부) 는 이번 PR 범위 밖. 별도 조사 필요. - 진단용 warn 로그(
editing_id present but editing nil) 추가 및 static analysis 룰 도입은 단기/장기 개선안으로 남김.
Cleanup#
bash
cd $REPOS_DIR/tesla
git worktree remove /home/ec2-user/error-sweeper/.worktrees/725fbb66-a1d4-4df0-a4a0-19508633ecf4/tesla
git branch -D feature/TSLA-13643 # local branch, remote는 PR 병합 후 자동 삭제