일부 첫 게시글에 대해 메일링 리스트 모드 이메일이 전송되지 않음

Cameron, 좋은 소식 감사합니다! 한 달 후 이 주제를 닫도록 예정할게요. 이미 닫힌 상태이거나 다른 문제가 발생하면 자유롭게 새 주제를 열면 됩니다 :slight_smile:

내 불일치 사항 중 하나를 찾았을 수도 있습니다.

https://discourse.python.org/t/i-cant-install-libraries/20594/2 의 이메일은 받았지만, 첫 번째 게시물의 이메일은 받지 못했습니다. 받은 헤더를 아래에 첨부했습니다.

첫 번째 게시물의 이메일에 대해 기록을 확인해 주실 수 있을까요? 메시지 ID가 <discourse/post/72724@discuss.python.org>여야 하지만, 제 메일 필터 로그에는 해당 메시지 ID가 표시되지 않습니다.

감사합니다,
Cameron Simpson cs@cskk.id.au

두 번째 게시물의 헤더는 다음과 같습니다:

Return-Path: <incoming+verp-7a67e4e43670863710e0bebf82466d20@python1.discoursemail.com>
X-Original-To: cs@cskk.id.au
Delivered-To: cs@cskk.id.au
Received: from mx-out-01b.sea2.discourse.cloud (mx-out-01b.sea2.discourse.cloud [184.105.176.58])
         (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))
         (No client certificate requested)
         by mail.cskk.id.au (Postfix) with ESMTPS id 2F85142106
         for <cs@cskk.id.au>; Tue,  1 Nov 2022 02:06:11 +0000 (UTC)
Received: from localhost.localdomain (unknown [IPv6:2602:fd3f:3:207:0:242:ac11:b])
         by mx-out-01b.sea2.discourse.cloud (Postfix) with ESMTP id 66C61100455
         for <cs@cskk.id.au>; Tue,  1 Nov 2022 02:06:09 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=discoursemail.com;
         s=sea2; t=1667268369;
         bh=dqc9opBcaL3Sz5b7apIIcM2hRhdys9o0z9IGxAzk4i4=;
         h=Date:From:Reply-To:To:In-Reply-To:References:Subject:
         List-Unsubscribe:List-ID:List-Archive;
         b=nuQKrBE6H2us2CerZzzR2yDWOnGG7R4kRgmH21VHpzOh/onYgIPtSFsguZ1nDYXXr
         t/+2pfIXGpl/wRRPuAppWH7IOLzJt5bv/+QbAflcKduBbATnRoVnEokbVLRJjg7fmS
         vvYcR3BPcaWV5LbVhw3/9F32/XqDtyHvb04kS0lmS230xvEN+IVJ1F43fAq+OOfp2j
         xboY8fyRJJ245gCTO07Bx/AE5tdrJ5sFrOeTmlz0gn9NJaKYgQxEOxqtWSulX8IyT0
         erHwnaEg6prJFWjGtxrhiZfe5EtqMVop5XaTI4hbxD++9ndJIHS5rCNn9jjurwWB4u
         5UToaINnQoDsQ==
1개의 좋아요

추가로 말씀드립니다. Discourse가 헤더를 붙여넣을 때 잘린 것 같습니다.
이메일 대신 웹 포럼을 통해 여기에 올려두겠습니다:

표시 문제일 수도 있습니다. 이 게시물을 편집할 때 표시되는 원본 텍스트에는 전체 헤더가 포함되어 있습니다. 파일로 업로드했습니다. 아마도. - Cameron
hdrs.txt (2.7 KB)

1개의 좋아요

@martin 위의 게시물을 보셨나요? 첫 게시물이 이메일로 전달되지 않은 것 같습니다. - Cameron

1개의 좋아요

네, 카메론 감사합니다. 제 실수예요. 답장하는 걸 깜빡했어요. 이번 주에는 다른 일로 정신이 없었고, 주중에도 하루 쉬었거든요. 월요일에 이 내용을 다시 검토하고 제대로 답장하도록 알림을 설정해 두었습니다.

1개의 좋아요

걱정 마, 그냥 확인해 본 거야. - 카메론

2개의 좋아요

python의 이메일 로그에서 해당 Message-ID가 정확하다는 것을 확인했습니다. 이 경우 발생했을 수 있는 상황은, 원글(OP)이 “Packaging” 카테고리에 게시된 직후 “Python Help” 카테고리로 변경되었을 가능성이 있으며, 이로 인해 이메일 전송에 영향을 미쳤을 수 있습니다. 원글에는 5명에게만 이메일이 전송된 것으로 보이며, 두 번째 게시글에는 30명(질문자 포함)에게 이메일이 전송되었습니다. 혹시 이런 상황이 다시 발생하는지 주의를 기울여 보시고, 패턴이 형성되는지 확인해 보시기 바랍니다. 특정 경우 이메일 전송을 방지하기 위해 이메일 시스템에 여러 가지 단축 경로(short circuits)가 존재하며, 이번에는 그중 하나에 걸린 것일 수 있습니다.

1개의 좋아요

[quote=“Cameron Simpson, post:94, topic:233499,
username:cameron-simpson”]
메시지 ID가 <discourse/post/72724@discuss.python.org>여야 하는데,
이 메시지 ID가 제 메일 분류기 로그에 표시되지 않습니다.
[/quote]

python 이메일 로그에서 해당 Message-ID가 올바른 것임을 확인했습니다.

좋습니다.

이 경우 일어난 일은 아마도 OP(첫 번째 게시글)가 “Packaging” 카테고리에 게시된 후,
조금 후에 “Python Help” 카테고리로 변경되었을 가능성이 있으며, 이로 인해 이메일
발송에 영향을 미쳤을 수 있습니다. OP에 대해 이메일을 받은 사람은 5명뿐인 것
처럼 보이며, 두 번째 게시글에는 30명(여러분을 포함하여)에게 이메일이 발송되었습니다.
다시 발생하면 주의를 기울여 보시고 패턴이 형성되는지 확인해 보세요. 특정
경우에 이메일이 발송되지 않도록 방지하기 위해 우리 이메일 시스템에는 여러
단축 경로(short circuits)가 있으며, 여기서 그 중 하나에 걸린 것일 수 있습니다.

흥미롭네요. 저는 메일링 리스트 모드를 켜 놓았고, AFAIK(제가 아는 한) Packaging
카테고리가 저에게는 음소거되지 않았습니다. OP에 대한 이메일을 받지 못했어야
하나요?

저를 '이메일을 받지 못한 알려진 사례’로 사용하여 단축 경로를 조사하는 것이
유익할까요?

감사합니다,
Cameron Simpson cs@cskk.id.au

1개의 좋아요

두 번째 게시글은 받았지만 원본 글(OP)은 받지 못한 또 다른 예시입니다:

2개의 좋아요

또 다른 예시로, OP가 아니라 두 번째 게시글을 받은 경우입니다.

2개의 좋아요

그리고 또 다른 예시입니다: Why I can't do 'conda activate <env>' in JupyterLab? - Python Help - Discussions on Python.org 이 링크에서는 두 번째 게시글은 있지만 첫 번째 게시글은 없습니다. 참고로 원포스터(OP)의 게시글은 8월에 올라온 것입니다.

1개의 좋아요

그리고 또 다른 것: os.scandir should have an option to also yield the path itself - Ideas - Discussions on Python.org

이 스레드에는 6번 게시글만 가지고 있습니다.

… 그리고 @martin 이 토픽에 대한 자동 닫기를 취소해 주시겠어요?

2개의 좋아요

죄송합니다. 내부적으로 현재 일이 많아서요. 더 많은 예시를 보내주셔서 감사합니다. 이 예시들에서 패턴을 찾아보겠습니다.

메타(meta)의 이 토픽을 말씀하시는 건가요? 아니면 os.scandir should have an option to also yield the path itself - Ideas - Discussions on Python.org 에 링크하신 토픽을 말씀하시는 건가요? 둘 다 자동 종료 설정이 되어 있지 않은 것 같습니다.

실내에서 일이 많아 죄송합니다. 추가 예시를 보내 주셔서 감사합니다. 이 예시들에서 패턴을 찾아보겠습니다.

괜찮습니다. 서두를 필요도 없고요.

메타(meta)의 이 토픽을 말씀하시는 건가요?

메타의 이 스레드입니다. 어제(?)는 여기서 설정한 대로 2주 후 자동 닫힘이라고 표시되어 있었습니다:

하지만 지금은 자동 닫힘이 꺼져 있는 것 같으니 문제없습니다.

감사합니다,
Cameron Simpson cs@cskk.id.au

1개의 좋아요

죄송합니다, 제가 그랬습니다. :slightly_smiling_face: 여러분이 꺼달라고 요청하는 게시글을 읽은 후 타이머를 제거했습니다. 확인의 의미로 작은 '좋아요’를 눌렀지만, 너무 미묘한 신호였을지도 모르겠습니다. :slightly_smiling_face:

3개의 좋아요

저에게는 너무 은근했습니다. 이 스레드를 보시면 아시겠지만, 저는 이메일을 최우선으로 사용하는 사용자입니다.

게다가 저는 『스노크래시(Snow Crash)』를 읽었는데도 주인공의 이름이 말장난이라는 걸 알아차리지 못했습니다. 그러니 은근함을 사용하신다면, 저에게는 힘든 싸움이 되실 겁니다 :slight_smile:

감사합니다,
Cameron

5개의 좋아요

지금 이 사례를 예로 들어보고 있습니다. 코드를 단계별로 추적해 보았지만, 아직까지 눈에 띄는 문제가 발견되지 않았습니다. EmailLog 테이블에 따르면 해당 토픽의 OP에 대한 이메일이 아무에게도 전송되지 않았는데, 왜 그런지는 명확하지 않습니다. 이 링크의 코드와 동일한 단계를 실행하되 이메일 전송 직전에 멈추면 정상적인 동작이 이루어지는 것처럼 보이거든요. SkippedEmailLog에도 OP에 대한 기록이 없습니다. 잡(job)이 실패한 후 모든 재시도에서 실패했을 가능성은 있지만, 그렇게 생각하기는 어렵습니다.

최근 Python 호스팅 환경 설정을 일부 조정하여 해당 잡에 대해 더 상세한 로깅 정보를 확인할 수 있도록 했습니다. 향후 몇 주 동안 이 문제가 다시 발생하는지 주시해 주시고, 재발하는 경우 알려주시면 감사하겠습니다. hopefully 문제를 찾아낼 수 있기를 바랍니다.

1개의 좋아요

[quote=“Cameron Simpson, post:102, topic:233499,
username:cameron-simpson”]
그리고 또 다른 예로, OP(원문)이 아닌 두 번째 게시물을 받은 경우입니다.
[/quote]

지금 이 것을 예로 들고 있습니다. 코드를 단계별로 추적해 보았지만, 아직까지 눈에 띄는 문제가 없습니다. EmailLog 테이블에 따르면 해당 토픽의 OP에 대한 이메일을 받은 사람이 아무도 없는데, 왜 그런지 명확하지 않습니다. discourse/app/jobs/regular/notify_mailing_list_subscribers.rb at 23ac0cf8f1f5d7aede3991c6947530dc1af7f7a2 · discourse/discourse · GitHub 의 동일한 단계를 수행하되 이메일 전송 직전에 중단하면 정상적으로 동작할 것으로 보이기 때문입니다. SkippedEmailLog에도 OP에 대한 기록이 없습니다. 작업이 실패한 후 모든 재시도에서도 실패했을 가능성은 있지만, 그 가능성은 낮다고 봅니다.

네. NOT EXISTS 관련 부분에 이상한 문제가 없는 한, 저 역시 그 코드에서 잘못된 점을 찾을 수 없습니다. 제 무지한 눈에는 괜찮아 보입니다.

저희 Python 호스팅 설정을 일부 조정하여 이 작업들에 대해 더 자세한 로깅 정보를 볼 수 있게 했습니다. 향후 몇 주 안에 이 문제가 다시 발생하면 주의 깊게 지켜봐 주시고 알려주시면 감사하겠습니다. hopefully 문제를 찾아낼 수 있을 것입니다.

감사합니다. 새로운 항목이 발견되면 알려드리겠습니다.

감사합니다,
Cameron Simpson cs@cskk.id.au

1개의 좋아요

오늘 또 다른 예시입니다: Printing only duplicates from a list - Python Help - Discussions on Python.org

두 번째 게시글은 받았지만 첫 번째 게시글은 받지 못했습니다:

[~/var/log/mailfiler]fleet2*> agf discourse/post/78942@discuss.python.org *log
main.log
5551250:2022-12-24 08:25:19,937 Level 25 mailfiler: monitor: +spool:   +spool/new/1671830717.M998823P71474Q174.fleet2.l <discourse/post/78942@discuss.python.org>
5552015:2022-12-24 08:25:37,173 Level 25 mailfiler: monitor: +spool-in:   +spool-in/new/1671830719.#5973M944325P789 <discourse/post/78942@discuss.python.org>

spool-in.log
3606809:2022-12-24 08:25:37,173 Level 25   +spool-in/new/1671830719.#5973M944325P789 <discourse/post/78942@discuss.python.org>

spool.log
3243627:2022-12-24 08:25:19,937 Level 25   +spool/new/1671830717.M998823P71474Q174.fleet2.l <discourse/post/78942@discuss.python.org>
[~/var/log/mailfiler]fleet2*> agf discourse/post/78934@discuss.python.org *log
[~/var/log/mailfiler]fleet2*>

위 출력은 제 로그에서 두 번째 게시글의 메시지 ID를 검색한 결과를 보여줍니다. 그 후 첫 번째 게시글의 메시지 ID를 검색했지만, 해당 ID는 발견되지 않았습니다.

감사합니다,
Cameron

오늘 또 하나 발생했습니다: Serve HTML from extensionless URLs in http.server - #2 by Rosuav - Ideas - Discussions on Python.org

시점의 우연한 일치(이 사례와 직전 사례 모두 한동안의 침묵 이후 오늘 아침에 발생)를 보면, 단순한 “이것을 보낼까?” 로직 버그가 아니라, 해당 로직이 작동하지 않는 더 넓은 상황, 예를 들어 Discourse 인스턴스의 재시작이나 기타 리소스 문제일 수 있다는 의문이 듭니다.

답변 메시지 ID에 대한 유사한 grep, 그리고 그 다음 in-reply-to(OP) 메시지 ID:

[~/var/log/mailfiler]fleet2*> agf discourse/post/78998@discuss.python.org *log
main.log
5553805:2022-12-24 08:42:48,500 Level 25 mailfiler: monitor: +spool:   +spool/new/1671831759.M979332P32679Q9.fleet2.l <discourse/post/78998@discuss.python.org>
5553809:2022-12-24 08:42:48,522 Level 25 mailfiler: monitor: +spool-in:   +spool-in/new/1671831768.#6332M514534P789 <discourse/post/78998@discuss.python.org>

spool-in.log
3607754:2022-12-24 08:42:48,522 Level 25   +spool-in/new/1671831768.#6332M514534P789 <discourse/post/78998@discuss.python.org>

spool.log
3244519:2022-12-24 08:42:48,500 Level 25   +spool/new/1671831759.M979332P32679Q9.fleet2.l <discourse/post/78998@discuss.python.org>
[~/var/log/mailfiler]fleet2*> agf discourse/post/78967@discuss.python.org *log
[~/var/log/mailfiler]fleet2*>

감사합니다,
Cameron

2개의 좋아요

Cameron, 두 가지 예시를 알려주셔서 감사합니다. 확실히 그런 것일 수 있습니다. Redis에 저장되는 백그라운드 잡(Sidekiq)에서 오류가 발생하거나 다른 일이 일어나는 것과 관련이 있을 수도 있습니다.

해당 토픽의 OP(원문 작성자) 사용자에게 EmailLog 기록이 없음을 확인했습니다. 아직 다른 눈에 띄는 사항은 없으며, 원인을 파악하기가 매우 어려운 버그입니다.

불행히도 해당 설정은 1개월만 적용되어 자동화 시스템에 의해 다시 꺼져 있었습니다. 이제 3개월 동안 상세 로깅을 다시 켜 두었으니, Python 관련 추가 예시가 들어오는지 확인해 볼 수 있을 것입니다.

1개의 좋아요