ES /docs

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_entity early-return 조건에서 self.editing.untrashed?self.editing&.untrashed? (1 라인). line 42 의 stale-clear 로직이 이미 동일 패턴을 사용하고 있어 orphan 케이스가 자연스럽게 재배정 경로로 흐름.
  • spec/models/concerns/finalization/editing_entity_spec.rb — orphan editing_id 회귀 방지 스펙 추가. Editing.where(id: ...).delete_all 로 하드 삭제를 시뮬레이션한 뒤 assign_editing_to_editing_entity 가 예외 없이 새 Editing 을 생성하는지 검증.

검증#

  • 정적: ruby -c OK, bundle exec srb tc OK, bundle exec rubocop 0 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 병합 후 자동 삭제