Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9588 - main/trunk/pym/portage/elog
Date: Sat, 29 Mar 2008 03:40:36
Message-Id: E1JfRvl-0008Nl-AD@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-03-29 03:40:32 +0000 (Sat, 29 Mar 2008)
3 New Revision: 9588
4
5 Modified:
6 main/trunk/pym/portage/elog/mod_mail_summary.py
7 Log:
8 Bug #215240 - Use an alarm signal to implement a 60 second timeout in
9 finalize() in case send_mail() blocks indefinitely.
10
11
12 Modified: main/trunk/pym/portage/elog/mod_mail_summary.py
13 ===================================================================
14 --- main/trunk/pym/portage/elog/mod_mail_summary.py 2008-03-29 03:29:24 UTC (rev 9587)
15 +++ main/trunk/pym/portage/elog/mod_mail_summary.py 2008-03-29 03:40:32 UTC (rev 9588)
16 @@ -51,8 +51,19 @@
17
18 mymessage = portage.mail.create_message(myfrom, myrecipient, mysubject,
19 mybody, attachments=items.values())
20 +
21 + def timeout_handler(signum, frame):
22 + raise PortageException("Timeout in finalize() for elog system 'mail_summary'")
23 + import signal
24 + signal.signal(signal.SIGALRM, timeout_handler)
25 + # Timeout after one minute in case send_mail() blocks indefinitely.
26 + signal.alarm(60)
27 +
28 try:
29 - portage.mail.send_mail(mysettings, mymessage)
30 + try:
31 + portage.mail.send_mail(mysettings, mymessage)
32 + finally:
33 + signal.alarm(0)
34 except PortageException, e:
35 writemsg("%s\n" % str(e), noiselevel=-1)
36
37
38 --
39 gentoo-commits@l.g.o mailing list