openid/python-openid

IOError Broken Pipe on log

Closed this issue · 1 comments

Hi guys, I've started encountering a Broken Pipe on our staging server when authenticating using python-openid. We're using a fork of django-openid-provider but the error itself comes from python-openid at the following line:

IOError: [Errno 32] Broken pipe
  File "django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "openid_provider/views.py", line 115, in openid_server
    return prep_response(request, orequest, oresponse, server)
  File "openid_provider/utils.py", line 116, in prep_response
    webresponse = server.encodeResponse(oresponse)
  File "openid/server/server.py", line 1626, in encodeResponse
    return self.encoder.encode(response)
  File "openid/server/server.py", line 1383, in encode
    response = self.signatory.sign(response)
  File "openid/server/server.py", line 1227, in sign
    signed_response.fields = assoc.signMessage(signed_response.fields)
  File "openid/association.py", line 520, in signMessage
    sig = self.getMessageSignature(signed_message)
  File "openid/association.py", line 496, in getMessageSignature
    return oidutil.toBase64(self.sign(pairs))
  File "openid/association.py", line 471, in sign
    kv = kvform.seqToKV(pairs)
  File "openid/kvform.py", line 57, in seqToKV
    err('Value has whitespace at beginning or end: %r' % (v,))
  File "openid/kvform.py", line 25, in err
    oidutil.log(formatted)
  File "openid/oidutil.py", line 109, in log
    sys.stderr.write(message)

Should sys.stderr be the write way to output this instead of logger.error?

This is a server running using Gunicorn+Django and being run from Supervisor. I'm assuming Supervisor is closing stderr as part of its logging.

This repo is being archived. Closing issue.