]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
parsearchive, mail: use repr() to get a human readable exception
authorDaniel Axtens <dja@axtens.net>
Wed, 18 Sep 2019 06:17:28 +0000 (16:17 +1000)
committerStephen Finucane <stephen@that.guru>
Wed, 18 Sep 2019 10:00:22 +0000 (11:00 +0100)
Currently if we have particular types of error in mail parsing
in parsearchive or parsemail, we print exc.message, which doesn't
always work:

  Traceback (most recent call last):
    File ".../patchwork/management/commands/parsearchive.py", line 90, in handle
      obj = parse_mail(msg, options['list_id'])
    File ".../patchwork/parser.py", line 961, in parse_mail
      raise ValueError("Missing 'Message-Id' header")
  ValueError: Missing 'Message-Id' header

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "manage.py", line 11, in <module>
      execute_from_command_line(sys.argv)
    File ".../django/core/management/__init__.py", line 381, in execute_from_command_line
      utility.execute()
    File ".../django/core/management/__init__.py", line 375, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File ".../django/core/management/base.py", line 323, in run_from_argv
      self.execute(*args, **cmd_options)
    File ".../django/core/management/base.py", line 364, in execute
      output = self.handle(*args, **options)
    File ".../patchwork/management/commands/parsearchive.py", line 100, in handle
      logger.warning('Invalid mail: %s', exc.message)
  AttributeError: 'ValueError' object has no attribute 'message'

repr(exc) will work. Use it.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Stephen Finucane <stephen@that.guru>
(cherry picked from commit 319b6f9d750c220d47c1044246d4e97fd500c6d4)

patchwork/management/commands/parsearchive.py
patchwork/management/commands/parsemail.py

index 4e2bb46ac3b51f06b045b23f9ec73aa3885366ab..51951cb46ab8b596230757244cab72d5c876ecab 100644 (file)
@@ -97,7 +97,7 @@ class Command(BaseCommand):
                 logger.warning('Duplicate mail for message ID %s', exc.msgid)
             except (ValueError, Exception) as exc:
                 errors += 1
-                logger.warning('Invalid mail: %s', exc.message)
+                logger.warning('Invalid mail: %s', repr(exc))
 
             if (i % 10) == 0:
                 self.stdout.write('%06d/%06d\r' % (i, count), ending='')
index 9098047d290c422b720ac767a2c6504991b3c0de..f31f533e3536365aafab30ce3765e2fba3f499bb 100644 (file)
@@ -84,6 +84,6 @@ class Command(base.BaseCommand):
             logger.warning('Duplicate mail for message ID %s', exc.msgid)
         except (ValueError, Exception) as exc:
             logger.exception('Error when parsing incoming email: %s',
-                             exc.message,
+                             repr(exc),
                              extra={'mail': mail.as_string()})
             sys.exit(1)