control: severity -1 grave control: tag -1 pending I can reproduce the issue here and find it quite remarkable that nothing has been done about this bug (or about the package at all for that matter) in over a year.
So, I am preparing an NMU to DELAYED/2. Feel free to cancel or reschedule, whatever. Debdiff attached. Cheers, -Hilko
diff -Nru rss2email-3.9/debian/changelog rss2email-3.9/debian/changelog --- rss2email-3.9/debian/changelog 2015-11-23 22:02:41.000000000 +0100 +++ rss2email-3.9/debian/changelog 2017-04-22 00:29:25.000000000 +0200 @@ -1,3 +1,11 @@ +rss2email (1:3.9-2.1) unstable; urgency=medium + + * Non-maintainer upload. + * Add upstream patch to deal with "OrderedDict mutated during iteration" + error (Closes: #833114) + + -- Hilko Bengen <ben...@debian.org> Sat, 22 Apr 2017 00:29:25 +0200 + rss2email (1:3.9-2) unstable; urgency=medium * Bump Standards-Version to 3.9.6 (no changes needed) diff -Nru rss2email-3.9/debian/patches/833114.patch rss2email-3.9/debian/patches/833114.patch --- rss2email-3.9/debian/patches/833114.patch 1970-01-01 01:00:00.000000000 +0100 +++ rss2email-3.9/debian/patches/833114.patch 2017-04-22 00:14:16.000000000 +0200 @@ -0,0 +1,49 @@ +From 60870d9ff7f23441919df79d710ad49ecbcedf73 Mon Sep 17 00:00:00 2001 +From: "W. Trevor King" <wk...@tremily.us> +Date: Wed, 25 Feb 2015 10:07:34 -0800 +Subject: [PATCH] feed: Don't pop from extra_headers while iterating over it + +Avoid: + + Traceback (most recent call last): + ... + for k,v in extra_headers.items(): + File "/.../Python-3.5.0a1/Lib/_collections_abc.py", line 503, in __iter__ + for key in self._mapping: + File "/.../Python-3.5.0a1/Lib/collections/__init__.py", line 112, in __iter__ + yield curr.key + AttributeError: 'NoneType' object has no attribute 'key' + +from continuing to iterate on items() after popping a key. This +worked in Python 3.4 but no longer works in Python 3.5. In any case, +mutating an object while iterating over it is always a bit +questionable, so rephrase to find the keys in one pass, and then +remove them after the iteration completes. + +Reported-by: Raniere Silva <rani...@ime.unicamp.br> +Signed-off-by: W. Trevor King <wk...@tremily.us> +--- + rss2email/feed.py | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/rss2email/feed.py b/rss2email/feed.py +index ec5c4f6..f2750ef 100644 +--- a/rss2email/feed.py ++++ b/rss2email/feed.py +@@ -470,9 +470,10 @@ class Feed (object): + ('X-RSS-URL', self._get_entry_link(entry)), + ('X-RSS-TAGS', self._get_entry_tags(entry)), + )) +- for k,v in extra_headers.items(): # remove empty tags, etc. +- if v is None: +- extra_headers.pop(k) ++ # remove empty tags, etc. ++ keys = {k for k, v in extra_headers.items() if v is None} ++ for key in keys: ++ extra_headers.pop(key) + if self.bonus_header: + for header in self.bonus_header.splitlines(): + if ':' in header: +-- +2.11.0 + diff -Nru rss2email-3.9/debian/patches/series rss2email-3.9/debian/patches/series --- rss2email-3.9/debian/patches/series 2015-11-23 22:02:34.000000000 +0100 +++ rss2email-3.9/debian/patches/series 2017-04-22 00:14:46.000000000 +0200 @@ -4,3 +4,4 @@ sslv3.patch dont-overwrite-config.patch prettify.patch +833114.patch