Bug 1388338

Summary: unhandled exception when sending emails to alert recipients
Product: Red Hat Enterprise Linux 7 Reporter: Milos Malik <mmalik>
Component: setroubleshootAssignee: Petr Lautrbach <plautrba>
Status: CLOSED NOTABUG QA Contact: Milos Malik <mmalik>
Severity: low Docs Contact:
Priority: low    
Version: 7.3CC: lvrabec, mgrepl, mmalik, plautrba
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1388335 Environment:
Last Closed: 2017-03-24 13:08:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Milos Malik 2016-10-25 07:06:54 UTC
+++ This bug was initially created as a clone of Bug #1388335 +++

Description of problem:
* traceback happens when email alerts are enabled and local mail servers are down
* SELinux denials are analyzed as expected, but email alerts are not sent

Version-Release number of selected component (if applicable):
setroubleshoot-server-3.2.27.2-3.el7.x86_64
setroubleshoot-3.2.27.2-3.el7.x86_64
setroubleshoot-plugins-3.0.64-2.1.el7.noarch

How reproducible:
* always

Steps to Reproduce:
0. echo "root@localhost filter_type=never" >> /var/lib/setroubleshoot/email_alert_recipients
1. stop all local mail servers
2. trigger an SELinux denial
3. look into journal or /var/log/messages

Actual results:
Oct 25 02:49:49 unused-4-245 setroubleshoot: Exception during AVC analysis: [Errno 111] Connection refused

Expected results:
 * all exceptions are handled

Comment 1 Petr Lautrbach 2017-03-24 13:03:31 UTC
I'd say that exceptions are handled by the code. They are caught and resent to syslog: 

```
    def run(self):
        while True:
            try:
                avc, report_receiver = self.queue.get()
                self.analyze_avc(avc, report_receiver)
            except Exception as e:
                syslog.syslog(syslog.LOG_ERR, "Exception during AVC analysis: %s" % e)
            except ValueError as e:
                syslog.syslog(syslog.LOG_ERR, "Exception during AVC analysis: %s" % e)
```


Milos, is this acceptable for you?

Comment 2 Milos Malik 2017-03-24 13:07:39 UTC
Yes, it is.