------------------------------------------------------------------------------ To reply, visit https://hellosplat.com/s/beanbag/tickets/4742/ ------------------------------------------------------------------------------
New ticket #4742 by fschlager For Beanbag, Inc. > Djblets Status: New Tags: Priority:Medium, Project:RBTools ------------------------------------------------------------------------------ Exception when reading UTF-8 encoded metadata of extension ============================================================================== # What version of Djblets are you using? 1.0.6 # Which module(s) have the problem? djblets/extensions/extension.py # What steps will reproduce the problem? 1. Install Review Board using pip 2. Install reviewbot-extension using pip 3. Try to access Review Board # What is the expected output? What do you see instead? I expect Djblets to be able to parse the UTF-8 encoded METADATA file of reviewbot-extension # What version of Python and Django? 2.7.12 # Please provide any additional information below. Djblets is reading all lines in reviewbot_extension-1.0.1.dist-info/METADATA and then tries to join them (djblets/extensions/extension.py line 439). This throws the following exception: ``` Environment: Request Method: GET Request URL: https://xxxxx.com/ Django Version: 1.6.11 Python Version: 2.7.12 Installed Applications: [u'corsheaders', u'django.contrib.admin', u'django.contrib.auth', u'django.contrib.contenttypes', u'django.contrib.sites', u'django.contrib.sessions', u'django.contrib.staticfiles', u'djblets', u'djblets.avatars', u'djblets.configforms', u'djblets.datagrid', u'djblets.extensions', u'djblets.features', u'djblets.feedview', u'djblets.forms', u'djblets.gravatars', u'djblets.integrations', u'djblets.log', u'djblets.pipeline', u'djblets.recaptcha', u'djblets.siteconfig', u'djblets.util', u'haystack', u'oauth2_provider', u'pipeline', u'reviewboard', u'reviewboard.accounts', u'reviewboard.admin', u'reviewboard.attachments', u'reviewboard.avatars', u'reviewboard.changedescs', u'reviewboard.diffviewer', u'reviewboard.extensions', u'reviewboard.hostingsvcs', u'reviewboard.integrations', u'reviewboard.notifications', u'reviewboard.oauth', u'reviewboard.reviews', u'reviewboard.scmtools', u'reviewboard.site', u'reviewboard.webapi', u'django_evolution'] Installed Middleware: [u'django.middleware.gzip.GZipMiddleware', u'reviewboard.admin.middleware.InitReviewBoardMiddleware', u'corsheaders.middleware.CorsMiddleware', u'django.middleware.clickjacking.XFrameOptionsMiddleware', u'django.middleware.common.CommonMiddleware', u'django.middleware.http.ConditionalGetMiddleware', u'django.middleware.locale.LocaleMiddleware', u'django.contrib.sessions.middleware.SessionMiddleware', u'django.contrib.auth.middleware.AuthenticationMiddleware', u'django.contrib.messages.middleware.MessageMiddleware', u'djblets.siteconfig.middleware.SettingsMiddleware', u'reviewboard.admin.middleware.LoadSettingsMiddleware', u'djblets.extensions.middleware.ExtensionsMiddleware', u'djblets.integrations.middleware.IntegrationsMiddleware', u'djblets.log.middleware.LoggingMiddleware', u'reviewboard.accounts.middleware.TimezoneMiddleware', u'reviewboard.admin.middleware.CheckUpdatesRequiredMiddleware', u'reviewboard.admin.middleware.X509AuthMiddleware', u'reviewboard.site.middleware.LocalSiteMiddleware', u'djblets.extensions.middleware.ExtensionsMiddlewareRunner', u'reviewboard.admin.middleware.ExtraExceptionInfoMiddleware'] Traceback: File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 88. response = middleware_method(request) File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/middleware.py" in process_request 45. self._check_expired() File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/middleware.py" in _check_expired 76. extension_manager.load(full_reload=True) File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/manager.py" in load 655. self._load_extensions(full_reload) File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/manager.py" in _load_extensions 725. entrypoint, ext_class) File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/extension.py" in create_from_entrypoint 399. metadata = cls._get_metadata_from_entrypoint(entrypoint, ext_class.id) File "/usr/local/lib/python2.7/dist-packages/djblets/extensions/extension.py" in _get_metadata_from_entrypoint 439. data = '\n'.join(lines) Exception Type: UnicodeDecodeError at / Exception Value: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128) ``` This can be hotfixed by converting METADATA to ASCII. ------------------------------------------------------------------------------ -- You received this message because you are subscribed to the Google Groups "reviewboard-issues" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/reviewboard-issues. For more options, visit https://groups.google.com/d/optout.
