수정 충돌: 다른 사용자가 해당 게시물을 수정하여 변경 사항을 더 이상 저장할 수 없습니다

방금 생성한 게시물을 수정하려고 하면 다음과 같은 오류가 발생합니다:

그 게시물은 다른 사용자가 수정하여 더 이상 변경 사항을 저장할 수 없습니다

예:

“수정 저장” 버튼도 "수정 덮어쓰기"로 이름이 바뀝니다.

이 문제는 금요일에 “2.8.0.beta2”( 4681c670c0 )로 업데이트한 이후부터 발생하기 시작했습니다.

참고로, 저는 매주 업데이트를 하므로 이 문제는 2021년 6월 4일(금)과 2021년 6월 11일(금) 사이에 발생한 새로운 문제입니다.

메타 사이트에서도 같은 문제가 발생합니다(스크린샷 참고).

이 패턴을 파악할 수 없습니다. 매번 발생하는 것이 아니라 가끔씩만 발생하거든요 :thinking:

다른 사용자들도 이 문제를 보고했습니다.

9개의 좋아요

5개의 좋아요

정확히 같은 문제인 것 같습니다 :+1:

1개의 좋아요

방금 여기서 다시 일어났어요!

2개의 좋아요

팀에서 몇몇 분들이 같은 문제를 확인했습니다. 인지하고 있으며 조사 중입니다.

9개의 좋아요

네, 오늘 이걸 하나 받았어요. @nbianca가 확인해 줄 거예요.

3개의 좋아요

Error message when editing posts 주제는 이 주제와 중복됩니다.

1개의 좋아요

네, 그러면 FIX: Update raw and cooked immediate after edit - Pull Request #13387 - discourse/discourse - GitHub @nbianca 로 완전히 수정된 건가요?

9개의 좋아요

네, 알려진 모든 문제가 수정되었습니다.

8개의 좋아요

훌륭해요, 감사합니다!

5개의 좋아요

이제 병합되었습니다. 20~30분 내에 여기에 배포될 것입니다.

10개의 좋아요

불행히도 아직 수정되지 않았습니다. 내 사용자들은 여전히 ‘수정 내역 덮어쓰기’ 메시지를 받고 있으며, 방금 제가 직접 확인했습니다. 현재 2.8.0.beta2( 0f9d31a85e ) 버전을 실행 중입니다.

다른 사안으로, 첫 번째 스크린샷을 meta.discourse에 업로드하려고 할 때 오류가 발생했습니다.

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "uploads_pkey"

다시 시도하니 정상적으로 작동했습니다.

1개의 좋아요

저도 여전히 Meta에서 이 문제를 재현할 수 있습니다.

5개의 좋아요

@nbianca 이 문제를 분리해내는 데 매우 어려웠지만, 100% 재현 가능한 방법을 찾았습니다.

다음 텍스트로 게시글을 작성해 보세요:

hello world 123 hello world

반드시 마지막 world 단어 뒤에 공백이 하나 있음을 확인하세요.

world를 입력한 뒤 SPACE를 누릅니다.

그런 다음 게시글을 편집하여 끝에 몇 글자를 추가해 보세요.

우리의 내부 로직이 앞뒤 공백을 제거(stripping)하는 과정에서 게시글이 변경되었음을 감지하는 알고리즘이 오류를 일으키는 것 같습니다.

10개의 좋아요

이 기능을 오랫동안 테스트했지만, 공백을 추가하는 것에 대해서는 생각하지 못했습니다. 내용보다 타이밍에 집중하고 있었거든요.

위 PR은 서버가 원본(raw)을 반환하도록 하고, 이를 사용하여 게시물 레코드를 업데이트하게 합니다.

14개의 좋아요

무엇이었는지 생각하면, 찾았다는 게 정말 인상 깊네요. 지금까지 수정은 잘된 것 같으니, 다시 한번 모두 감사드립니다.

1개의 좋아요

죄송합니다, @nbianca 님. 아직 수정되지 않았습니다. @sam 님이 지적한 정확한 시퀀스가 여전히 버그를 유발합니다. 2.8.0.beta2 ( 0c42a29dc4 )를 실행 중입니다.

사실 방금 meta.discourse에서 이 게시물을 편집하던 중 오류가 발생했습니다.

이 부분에 대해 특별히 한 것이 있나요? 게시글을 작성한 후 바로 수정을 시도했나요, 아니면 잠시 기다린 후(페이지를 새로고침한 후) 수정을 시도했나요?

이전과 마찬가지로 게시글에 공백이 있었나요?

1개의 좋아요

제 사이트에서 테스트할 때는 Sam의 지시에 따랐습니다. 하지만 여기서는 태그를 편집하려고 했더니 오류가 발생했습니다.

음, try.discourse.org에서 쉽게 재현할 수 있습니다 .. 게시글을 작성한 후 편집해서 문자를 추가하면

그 게시글은 다른 사용자가 편집했기 때문에 변경 사항을 더 이상 저장할 수 없습니다.

라는 메시지가 표시됩니다.

이 코드 경로가 이렇게 쉽게 깨지고 수정하기도 이렇게 어려우니 조금 걱정됩니다 :cry:

6개의 좋아요