게시글을 이동할 때 500 에러가 발생하는 것을 확인했습니다. 게시글을 다른 주제로 이동한 뒤 원래 주제로 되돌리려 시도했을 때 에러를 재현할 수 있었습니다.
상세 내용은 다음과 같습니다:
SyntaxError: Unexpected token < in JSON at position 0
at Function.parse [as parseJSON] (<anonymous>)
at t (_application-1aa5dba826bc3ed623e07f37fc542db9746ecf4a5fcf6b519e5921036bface8d.js:12468)
at _application-1aa5dba826bc3ed623e07f37fc542db9746ecf4a5fcf6b519e5921036bface8d.js:34707
at f (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70136)
at T (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70309)
at E (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70295)
at y (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70231)
at t.invoke (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64637)
at e.t.flush (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64527)
at e.t.flush (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64731)
그동안 데이터베이스의 post_timings 테이블에서 원인을 찾았습니다. 이 테이블에는 사용자가 스레드에서 이미 읽은 게시물에 대한 정보가 저장됩니다. 저에게는 알 수 없는 상황에서, 서버가 이미 존재하는 항목을 테이블에 다시 쓰려고 시도하는 문제가 발생할 수 있습니다.
로그를 검색하다가 이 데이터베이스 테이블에 대한 단서를 찾았지만, 정확히 어떤 로그를 검색했는지 지금은 기억이 나지 않습니다…
제 경우에는 단순히 테이블의 내용을 삭제하는 것이 해결책이었습니다. 이로 인해 모든 사용자의 스레드 읽기 진행 상황이 초기화되었고, 일부 사용자는 브라우저에 캐시된 내용을 덮어 쓰기 위해 기존 스레드에 새로운 항목을 작성해야 했습니다. 제 포럼은 약 20명의 사용자만 있는 아주 작은 규모라, 더 많은 사용자를 가진 포럼에는 이 해결책이 적용되지 않을 것 같습니다
방금 로컬 환경에서 이 오류를 재현해 보았습니다. 게시물을 새 토픽으로 이동한 뒤 다시 원래 위치로 되돌리는 작업은 정상적으로 수행되었습니다.
여기서 언급된 커밋이 오류의 원인인지 단정할 수 없습니다. 해당 커밋은 post_timings 테이블을 변경하지 않으며, 우리가 개발 중인 실험적 기능(기본적으로 비활성화됨)의 일부입니다. 확실하게 확인하기 위해 해당 기능을 활성화한 상태에서 게시물을 이동해 보았지만, 이 경우에도 정상적으로 작동했습니다.