Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug 1215226] Don't fail silently when sending emails. #2681

Merged
merged 1 commit into from Oct 15, 2015

Conversation

mythmon
Copy link
Contributor

@mythmon mythmon commented Oct 15, 2015

Cyliang pointed out that we make sending email fail silently. That sounds like a bad thing, and makes it really hard to track down when we aren't sending notifications to users.

r?

@willkg
Copy link
Member

willkg commented Oct 15, 2015

As penance for writing that code, I will review it.

for msg in messages:
conn.send_messages([msg])
finally:
conn.close()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I'm pretty sure you don't need the conn.close() because it will close automatically when the function ends and things get cleaned up.

Other than that, I think this looks good. Depending on what happens next, we might want to create message retrying. If we do that, then we're going to want to keep track of which messages succeeded and which failed. We might find that .send_messages() should be in a try/except block so that if we hit a failure, we skip just one message rather than that message and the rest in the list. I don't know offhand, though. I think this is good for now, but we might want to file a followup bug to hone it next week depending on what happens.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've always been told that I shouldn't rely on implicit destruction in Python. I looked into this a bit more and it would probably be fine in this case. I can switch it back.

I definitely agree we should add re-send logic at some point in the stack. I wanted to see what happened with this before we made too many decisions though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I'm r+ on this, but not near a computer to merge it.

Can someone green-button this for me?
On Oct 15, 2015 4:58 PM, "Mike Cooper" notifications@github.com wrote:

In kitsune/sumo/email_utils.py
#2681 (comment):

@@ -22,11 +22,13 @@ def send_messages(messages):
if not messages:
return

  • conn = mail.get_connection(fail_silently=True)

- conn.open()

  • for msg in messages:
  •    conn.send_messages([msg])
    
  • try:
  •    conn = mail.get_connection()
    
  •    conn.open()
    
  •    for msg in messages:
    
  •        conn.send_messages([msg])
    
  • finally:
  •    conn.close()
    

I've always been told that I shouldn't rely on implicit destruction in
Python. I looked into this a bit more and it would probably be fine in this
case. I can switch it back.

I definitely agree we should add re-send logic at some point in the stack.
I wanted to see what happened with this before we made too many decisions
though.


Reply to this email directly or view it on GitHub
https://github.com/mozilla/kitsune/pull/2681/files#r42179538.

mythmon pushed a commit that referenced this pull request Oct 15, 2015
[Bug 1215226] Don't fail silently when sending emails.
@mythmon mythmon merged commit 865dd04 into mozilla:master Oct 15, 2015
@mythmon mythmon deleted the email-dont-fail-silently branch October 15, 2015 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants