Danish special characters makes logging in difficult

Bug #454981 reported by Søren Bredlund Caspersen
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Moin OpenID module
Confirmed
Undecided
Unassigned

Bug Description

If you log out of the wiki and then navigate to a wiki page containing some of the Danish special characters and then try to log in again, you get an error message. The error is below, but the error should be reproducible.

Try for your self at:
https://wiki.ubuntu.com/DanishTeam/M%C3%B8der

 --> --> -->
UnicodeEncodeError

'ascii' codec can't encode character u'\xf8' in position 45: ordinal not in range(128)

If you want to report a bug, please save this page and attach it to your bug report.

    * Show debugging information
    * Report bug
    * Visit MoinMoin wiki

Traceback

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

   1.

      /var/lib/python-support/python2.5/MoinMoin/request/request_fcgi.py in __init__ (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, fcgRequest=<MoinMoin.support.thfcgi.Request instance at 0x186d200>, env={'DOCUMENT_ROOT': '/srv/wiki.ubuntu.com/www/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': '__utma=230736537.1444232135.1232556574.125589627..._utmb=230736537; __utmb=27501688; __utmc=27501688', 'HTTP_HOST': 'wiki.ubuntu.com', ...}, form=FieldStorage(None, None, [MiniFieldStorage('acti...ge('openid.sreg.timezone', 'Europe/Copenhagen')]), properties={})
         1. 26 self.fcgform = form
         2. 27 self._setup_vars_from_std_env(env)
         3. 28 RequestBase.__init__(self, properties)
         4. 29
         5. 30 except Exception, err:
          * global RequestBase = <class 'MoinMoin.request.RequestBase'>
          * RequestBase.__init__ = <unbound method RequestBase.__init__>
          * self = <MoinMoin.request.request_fcgi.Request object at 0x1e686d0>
          * properties = {}
   2.

      /var/lib/python-support/python2.5/MoinMoin/request/__init__.py in __init__ (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, properties={})
         1. 205 # set self.user even if _handle_auth_form raises an Exception
         2. 206 self.user = None
         3. 207 self.user = self._handle_auth_form(user_obj)
         4. 208 del user_obj
         5. 209 self.cfg.session_handler.after_auth(self, self.cfg.session_id_handler, self.user)
          * self = <MoinMoin.request.request_fcgi.Request object at 0x1e686d0>
          * self.user = None
          * self._handle_auth_form = <bound method Request._handle_auth_form of <Moin...equest.request_fcgi.Request object at 0x1e686d0>>
          * user_obj = None
   3.

      /var/lib/python-support/python2.5/MoinMoin/request/__init__.py in _handle_auth_form (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, user_obj=None)
         1. 610 return self.handle_auth(user_obj, attended=True, username=username,
         2. 611 password=password, login=login, logout=logout,
         3. 612 stage=stage, openid_identifier=oid)
         4. 613
         5. 614 def handle_auth(self, user_obj, attended=False, **kw):
          * stage = u'openid'
          * openid_identifier undefined
          * oid = None
   4.

      /var/lib/python-support/python2.5/MoinMoin/request/__init__.py in handle_auth (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, user_obj=<MoinMoin.user.User at 0x19204d0 name:u'soeren-b-c' valid:1>, attended=True, **kw={'login': True, 'logout': False, 'openid_identifier': None, 'password': None, 'stage': u'openid', 'username': None})
         1. 658 url = url.replace('%return', quote(nextstage))
         2. 659 self._auth_redirected = True
         3. 660 self.http_redirect(url)
         4. 661 return user_obj
         5. 662 msg = ret.message
          * self = <MoinMoin.request.request_fcgi.Request object at 0x1e686d0>
          * self.http_redirect = <bound method Request.http_redirect of <MoinMoin.request.request_fcgi.Request object at 0x1e686d0>>
          * url = u'/DanishTeam/M\xf8der/'
   5.

      /var/lib/python-support/python2.5/MoinMoin/request/__init__.py in http_redirect (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, url=u'http://wiki.ubuntu.com/DanishTeam/M\xf8der/')
         1. 1289 """
         2. 1290 url = self.getQualifiedURL(url)
         3. 1291 self.emit_http_headers(["Status: 302 Found", "Location: %s" % url])
         4. 1292
         5. 1293 def emit_http_headers(self, more_headers=[], testing=False):
          * self = <MoinMoin.request.request_fcgi.Request object at 0x1e686d0>
          * self.emit_http_headers = <bound method Request.emit_http_headers of <Moin...equest.request_fcgi.Request object at 0x1e686d0>>
          * url = u'http://wiki.ubuntu.com/DanishTeam/M\xf8der/'
   6.

      /var/lib/python-support/python2.5/MoinMoin/request/__init__.py in emit_http_headers (self=<MoinMoin.request.request_fcgi.Request object at 0x1e686d0>, more_headers=['Status: 302 Found', u'Location: http://wiki.ubuntu.com/DanishTeam/M\xf8der/'], testing=False)
         1. 1324 for header, trace in all_headers:
         2. 1325 if isinstance(header, unicode):
         3. 1326 header = header.encode('ascii')
         4. 1327 key, value = header.split(':', 1)
         5. 1328 lkey = key.lower()
          * header = u'Location: http://wiki.ubuntu.com/DanishTeam/M\xf8der/'
          * header.encode = <built-in method encode of unicode object at 0x2446e40>

UnicodeEncodeError

'ascii' codec can't encode character u'\xf8' in position 45: ordinal not in range(128)

    * args = ('ascii', u'Location: http://wiki.ubuntu.com/DanishTeam/M\xf8der/', 45, 46, 'ordinal not in range(128)')
    * encoding = 'ascii'
    * end = 46
    * message = ''
    * object = u'Location: http://wiki.ubuntu.com/DanishTeam/M\xf8der/'
    * reason = 'ordinal not in range(128)'
    * start = 45

System Details

    * Date: Sun, 18 Oct 2009 20:49:25 +0000
    * Platform: Linux titanium 2.6.24-24-server #1 SMP Tue Aug 18 16:51:43 UTC 2009 x86_64
    * Python: Python 2.5.2 (/usr/bin/python)
    * MoinMoin: Release 1.6.3 (release)

Revision history for this message
Lasse Havelund (lhavelund) wrote :

Confirmed. It's a major nuisance to have to navigate back to the front page of the wiki (or something else) to log in. Can has fix?

Changed in ubuntu-website:
status: New → Confirmed
Revision history for this message
Lasse Havelund (lhavelund) wrote :

Assigned to Launchpad-engineering, in the hopes that they a) are the correct assignee, or b) able to re-assign it to the OpenID development team of Launchpad.

Changed in ubuntu-website:
assignee: nobody → Canonical Launchpad Engineering (launchpad)
Matthew Nuzum (newz)
affects: ubuntu-website → moin-openid
Changed in moin-openid:
assignee: Canonical Launchpad Engineering (launchpad) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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