UnicodeDecodeError: 'utf8' codec can't decode byte 0xfa in position 3: invalid start byte

Bug #1815517 reported by Ken VanDine
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
turnip
Fix Released
Critical
William Grant

Bug Description

The git repository mirror for gedit fails to scan.

https://code.launchpad.net/~gnome3-team/gedit/+git/gedit

Thanks!

Related branches

William Grant (wgrant)
affects: launchpad → turnip
Changed in turnip:
importance: Undecided → Critical
status: New → Triaged
Revision history for this message
William Grant (wgrant) wrote :

The author (but not the committer, oddly) of a number of old commits erroneously uses latin-1 despite not declaring an encoding. See https://git.launchpad.net/gedit/commit/?h=gnome-1-4-branch&id=304c65d91b8bdf47e070ead98a5a873bbc9ffc5a for an example.

Revision history for this message
William Grant (wgrant) wrote :
Download full text (3.9 KiB)

[2019-02-11 21:20:33 +0000] [14075] [ERROR] Error handling request
Traceback (most recent call last):
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 130, in handle
    self.handle_request(listener, req, client, addr)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/router.py", line 242, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/router.py", line 217, in invoke_subrequest
    response = handle_request(request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/tweens.py", line 46, in excview_tween
    response = view_callable(exc, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 385, in viewresult_to_response
    result = view(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/router.py", line 163, in handle_request
    response = view_callable(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 596, in __call__
    return view(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 329, in attr_view
    return view(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 305, in predicate_wrapper
    return view(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 355, in rendered_view
    result = view(context, request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/pyramid/config/views.py", line 501, in _requestonly_view
    response = view(request)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/env/local/lib/python2.7/site-packages/cornice/service.py", line 527, in wrapper
    response = view_()
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/turnip/api/views.py", line 33, in validate_path_decorator
    return func(self, self.repo_store, name)
  File "/srv/turnip/payloads/919c62ee918fc2c35e6e410226f9d6f1f8fd39ba/turnip/api/views.py", line 270, in collection_post
    commits = store.get_commit...

Read more...

Revision history for this message
William Grant (wgrant) wrote :

Looks like pygit2 0.27.3 solves this as part of the fix for Colin's https://github.com/libgit2/pygit2/issues/839. We're currently running 0.27.2.

https://github.com/libgit2/pygit2/commit/ccbb82e6dfaf3d26479986e4a1f36ee48dc40b84 removes the explicit strict error handling from signatures and commit messages. That returns to the default behaviour where if no encoding is specified in the commit it will assume UTF-8 but with errors="replace".

William Grant (wgrant)
Changed in turnip:
assignee: nobody → William Grant (wgrant)
status: Triaged → In Progress
William Grant (wgrant)
Changed in turnip:
status: In Progress → Fix Committed
William Grant (wgrant)
Changed in turnip:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.