Thanks Cameron, great to hear! I’ll schedule this topic to close after
another month, if it is closed and another issue comes up feel free to
open another one
Could you see what your records say about email for the first post
please? It should have message-id <discourse/post/72724@discuss.python.org>
but that message-id does not show in my mail filer logs here.
Followup. It looks like Discourse truncated my header paste. I’ll put them in here via the web forum instead of via email:
It might be a display issue. The raw text shown when I edit this post has the full headers. I’ve uploaded them as a file. I think. - Cameron hdrs.txt (2.7 KB)
Yes thank you Cameron, my bad I forgot to reply, I’ve just been swamped with other work this week and I also had a day off midweek. I have a reminder set to go through this on Monday and respond properly then.
Confirmed that is the correct Message-ID in our email logs for python. I think maybe what has happened in this case is that the OP was posted under the “Packaging” category and then not long after changed to the “Python Help” category, which could have affected the sending of emails. It looks like only 5 people were emailed for the OP, and 30 were emailed (including you) for the second post. Maybe just keep an eye out and see if this happens again and we can see if a pattern develops – there are many short circuits in our email system to prevent emails being sent in certain cases, and we may have just run into one here.
[quote=“Cameron Simpson, post:94, topic:233499,
username:cameron-simpson”]
It should have message-id <discourse/post/72724@discuss.python.org>
but that message-id does not show in my mail filer logs here.
[/quote]
Confirmed that is the correct Message-ID in our email logs for python.
Good.
I think maybe what has happened in this case is that the OP was posted
under the “Packaging” category and then not long after changed to the
“Python Help” category, which could have affected the sending of
emails. It looks like only 5 people were emailed for the OP, and 30
were emailed (including you) for the second post. Maybe just keep an
eye out and see if this happens again and we can see if a pattern
develops – there are many short circuits in our email system to
prevent emails being sent in certain cases, and we may have just run
into one here.
That’s interesting. I’ve got mailing list mode turned on, and AFAIK the
Packaging category isn’t muted for me. Should I not have received an
email for the OP?
Is it fruitful to use me as a known unemailed case to examine the short
circuits?
Sorry, that was me. I removed the timer after I read your post asking for it to be turned off. I popped a little Like in as an acknowledgement, but it may have been too subtle a nod.
Too subtle for me. As you might guess from the thread I’m an email-first user.
But also, I read Snowcrash and didn’t notice the main character’s name was a pun. So you’re fighting an uphill battle with me if you’re going to use subtlety
I am using this one as an example now. So far nothing has jumped out at me from stepping through the code. No one got an email for the OP of that topic according to our EmailLog table but it’s not clear why, since if I run through the same steps as discourse/app/jobs/regular/notify_mailing_list_subscribers.rb at 23ac0cf8f1f5d7aede3991c6947530dc1af7f7a2 · discourse/discourse · GitHub and stop short of sending the emails, it looks like the correct thing will happen. There are no records for the OP in SkippedEmailLog either. I suppose it’s possible that the job failed and then failed on every subsequent retry, but I doubt that.
I’ve just tweaked some things on our hosting for python to allow me to see more detailed logging information for these jobs. Please keep an eye out and let me know if you notice this happening again within the next couple of weeks, hopefully I will be able to hunt down the issue.
[quote=“Cameron Simpson, post:102, topic:233499,
username:cameron-simpson”]
And another example where I received the second post and not the OP.
[/quote]
I am using this one as an example now. So far nothing has jumped out at me from stepping through the code. No one got an email for the OP of that topic according to our EmailLog table but it’s not clear why, since if I run through the same steps as discourse/app/jobs/regular/notify_mailing_list_subscribers.rb at 23ac0cf8f1f5d7aede3991c6947530dc1af7f7a2 · discourse/discourse · GitHub and stop short of sending the emails, it looks like the correct thing will happen. There are no records for the OP in SkippedEmailLog either. I suppose it’s possible that the job failed and then failed on every subsequent retry, but I doubt that.
Right. I can’t see anything wrong with that code either, unless there
are weird issues with the NOT EXISTS stuff. But it looks ok to my
naive eye.
I’ve just tweaked some things on our hosting for python to allow me to see more detailed logging information for these jobs. Please keep an eye out and let me know if you notice this happening again within the next couple of weeks, hopefully I will be able to hunt down the issue.
Thank you. I’ll keep you posted as I see new items.
The timing coincidence (this and the preceeding instance are both this morning, after a period of apparent quiet) makes me wonder if we’re not looking at a plain old “should this go out?” logic bug but some wider circumstance where that doesn’t work, eg a restart of the Discourse instance or some other resource issue.
Similar grep of the reply message-id and then the in-reply-to (OP) message-id:
Thanks for giving these two examples Cameron. It definitely could be something like that, perhaps something to do with our background jobs in Sidekiq erroring or having something else happen to them since they are stored in Redis.
Confirmed there is no EmailLog record for your user in that topic for the OP. Nothing more is standing out to me so far though, this is a very frustrating bug to track down the cause of.
Unfortunately this was only for 1 month so it since turned off again via an automated system, I just turned our detailed logging on again for 3 months then we can see if any more examples come in for Python that I can look at.