위키 페이지에 대한 동시 편집은 예상치 못한 동작을 유발할 수 있습니다. 제 경우, 두 게시물 간의 quoted_posts 관계가 잘못 설정됩니다.
이것은 quoted_posts가 사용될 때 다른 문제를 일으킬 수 있습니다. 예를 들어 User#refresh_avatar에서 quoted_posts가 누락되면 모든 인용 게시물을 다시 생성(rebake)할 수 없게 됩니다.
가능한 원인
이 커밋에서 도입된 경고는 게시물의 동시 편집을 방지하기에 충분하지 않습니다. 이는 체크가 원자적(atomic)이지 않기 때문입니다. 이는 드문 상황이지만 여전히 발생할 수 있습니다.
PostRevisor#revise!는 QuotedPost.extract_from(@post)를 호출하며, 게시물에 인용이 하나도 없으면 모든 quoted_posts를 삭제합니다. 두 개의 편집이 동시에 PostRevisor#revise!를 호출할 때, 하나는 인용 게시물을 추가하고 다른 하나는 인용 게시물을 추가하는 경우, 게시물 내용은 인용이 있는 편집으로 끝나고 quoted_post 관계는 인용이 없는 편집에 의해 파괴될 수 있습니다.