채널을 새로고침하거나 전환하지 않으면 채팅 메시지가 표시되지 않음

제 인스턴스의 트래픽은 매우 낮은 편으로, 크롤러를 제외하고 일일 페이지 뷰가 1,000회 미만입니다.

그러나 포럼 홈 페이지를 열고 아무 동작도 하지 않으면 최소 1개, 때로는 2~3개의 429 응답을 받습니다. 이는 아무것도 클릭하기 전에 발생하는 현상입니다.

메타에서 검색해 볼 수 있는 유일한 주제는 트래픽량이 높은 사이트와 관련된 것이므로, 여기서 일어나고 있는 상황을 설명하지는 못할 것 같습니다.

제 인스턴스는 공식 설치자를 사용하지만 서브폴더 구조로 설정되어 있습니다. 리버스 프록시에서 NGINX로의 실제 사용자 IP 설정에 문제가 있을 수도 있다고 생각했지만, 제 판단으로는 IP가 올바르게 보고되고 있는 것으로 보입니다(이것이 여전히 문제의 원인 후보라면 더 깊이 파고들어 조사할 수 있습니다).

이것 때문에 크게 걱정하지는 않지만, 채팅에서 채팅 메시지를 수정하면 업데이트된 내용이 즉시 표시되지 않는 문제가 때때로 발생하는데, 이것이 429 오류와 관련이 있는지 궁금합니다.

이 문제를 진단하는 방법에 대한 조언을 주시면 감사하겠습니다. 어떤 제안도 환영합니다!

감사합니다!

다른 곳에서 더 깊이 알아보기 전에, IP 관련 문제를 먼저 배제해 보시는 것이 좋습니다.

활성 사용자 계정에 보고된 IP 주소를 확인해 보셨나요?

프록시로 CloudFlare도 사용하고 계신가요?

Stephen님, 답변해 주셔서 감사합니다!

활성 사용자 계정에 보고된 IP 주소를 확인해 봤는데, 제 것을 포함해 모두 정상으로 보입니다. 다른 사람들의 IP는 서로 다르며 모두 브라질 내 서로 다른 지역에서 온 것으로, 이는 예상된 결과입니다. 데이터베이스와 로그를 살펴볼까 했지만, 이 테스트 결과로 보아 문제가 아닐 수 있다는 판단 하에 보류했습니다.

현재 CloudFlare를 프록시로 사용하지는 않지만, 과거에는 사용했습니다. templates/cloudflare.template.yml이 주석 처리되어 있는지 다시 한번 확인해 보았습니다.

이제 제 app.yml을 보니 templates/web.ratelimited.template.yml도 주석 처리되어 있네요… 레이트 리미팅을 피하기 위해 이 템플릿을 포함하는 것이 의미가 있을까요? :thinking: 그렇게 하면 안 되는 것 같은데, 맞나요? :smiling_face_with_tear:

429 응답 본문은 "You’ve performed this action too many times. Please wait 2 minutes before trying again."입니다.

1개의 좋아요

아직도 해당 문제가 발생하고 있습니다. 이제 Nginx가 아니라 Discourse가 이 문제를 처리하고 있다는 것을 이해했기 때문에, 다른 메시지 버스 관련 429 에러 주제에서 확인한 대로 DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS: 0.2 (기본값은 0.1)로 설정해 보았지만 아무런 변화가 없습니다. 이 한도를 완화할 수 있는 환경 변수에 대해 방향을 잡아 주시면 감사하겠습니다.

콘솔에서도 이 에러가 보입니다.

이 두 가지 문제 자체는 크게 걱정하지 않습니다. 여기서 진짜 문제는 채팅 메시지가 새로고침을 하거나 채널을 전환하지 않으면 표시되지 않는다는 점입니다. 개인 채팅에서 다른 채널로 전환했다가 다시 돌아와야만 비로소 새 메시지를 볼 수 있습니다.

1개의 좋아요

방금 대화한 내용과 같이, 이는 유니콘(Unicorn) 요청이 대기열에 쌓이면서 발생하는 문제입니다. @renato 님이 유니콘의 수를 조정하고 조사 결과를 보고할 예정입니다.

이것은 꽤 심각한 문제입니다. 정상적인 동작은 백오프(backoff) 기간이 지난 후 채팅이 자동으로 복구되어 마지막 정상 폴링 이후의 모든 메시지를 가져오는 것입니다. 그렇게 되지 않나요? 그렇다면 이는 매우 치명적인 버그입니다.

2개의 좋아요

감사합니다!

네, 그런 현상은 경험하지 못했습니다. 아마도 다른 문제일 수도 있고, 확신할 수 없습니다. 새 메시지가 있음을 나타내는 초록색 점은 보이지만 메시지 자체는 표시되지 않다가, 채널을 전환하면 새 메시지가 보이고 초록색 알림 점은 사라집니다.

현재 추가 워커를 포함해 다시 빌드 중이며 더 테스트해 볼 예정입니다. 이 문제가 계속 발생하면 가능한 한 많은 세부 정보를 수집해서 다시 보고하겠습니다.

1개의 좋아요

@Falco 보고드립니다. 콘솔과 네트워크 탭에서 여전히 429 오류가 표시되고 있습니다.

나 자신과 채팅을 하더라도 채팅 창이 업데이트되지 않는 문제를 재현할 수도 있습니다: 메시지를 보내면 메시지는 표시되지만 호버 컨트롤은 나타나지 않으며, 다른 채팅으로 이동했다가 다시 돌아오면 보낸 메시지를 편집할 수 있지만, 업데이트된 내용을 보려면 다시 나가야 합니다.

2개의 좋아요

현재 네트워크/실시간 업데이트 관련 부분을 대대적으로 리팩토링하고 있습니다. 다음 주쯤 머지할 예정이며, 이 작업이 여러분의 문제를 크게 개선할 수 있을 것 같습니다(완전히 무관한 다른 문제인 경우는 제외).

7개의 좋아요

이번 주에 리팩토링이 병합된 것 같은데, @renato는 개선점을 느끼셨나요?

2개의 좋아요

저희도 동일한 문제가 있는 것 같습니다. 매우 활발하게 채팅을 사용하는 많은 사용자들이 다른 사람이 보낸 메시지를 볼 수 없고, 새로고침을 해야만 자신의 메시지만 볼 수 있다고 보고하고 있습니다. 대시보드에서 프론트엔드 측면으로든, SSH를 통해든 이 문제를 해결할 수 있는 방법이 있을까요?