johnmaguire / Cardinal

A Python IRC bot, designed to make adding functionality quick and simple. (est. 2013)
MIT License
100 stars 38 forks source link

Cardinal choking on non-UTF8 strings since Python 3 upgrade #176

Closed johnmaguire closed 3 years ago

johnmaguire commented 3 years ago
cardinal_1  | Unhandled Error
cardinal_1  | Traceback (most recent call last):
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/python/log.py", line 103, in callWithLogger
cardinal_1  |     return callWithContext({"system": lp}, func, *args, **kw)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/python/log.py", line 86, in callWithContext
cardinal_1  |     return context.call({ILogContext: newCtx}, func, *args, **kw)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/python/context.py", line 122, in callWithContext
cardinal_1  |     return self.currentContext().callWithContext(ctx, func, *args, **kw)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/python/context.py", line 85, in callWithContext
cardinal_1  |     return func(*args,**kw)
cardinal_1  | --- <exception caught here> ---
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
cardinal_1  |     why = selectable.doRead()
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/internet/tcp.py", line 243, in doRead
cardinal_1  |     return self._dataReceived(data)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/internet/tcp.py", line 249, in _dataReceived
cardinal_1  |     rval = self.protocol.dataReceived(data)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/protocols/tls.py", line 330, in dataReceived
cardinal_1  |     self._flushReceiveBIO()
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/protocols/tls.py", line 295, in _flushReceiveBIO
cardinal_1  |     ProtocolWrapper.dataReceived(self, bytes)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/protocols/policies.py", line 120, in dataReceived
cardinal_1  |     self.wrappedProtocol.dataReceived(data)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/words/protocols/irc.py", line 2631, in dataReceived
cardinal_1  |     basic.LineReceiver.dataReceived(self, data)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/protocols/basic.py", line 572, in dataReceived
cardinal_1  |     why = self.lineReceived(line)
cardinal_1  |   File "/usr/src/app/cardinal/bot.py", line 169, in lineReceived
cardinal_1  |     super(CardinalBot, self).lineReceived(line)
cardinal_1  |   File "/usr/local/lib/python3.9/site-packages/twisted/words/protocols/irc.py", line 2637, in lineReceived
cardinal_1  |     line = line.decode("utf-8")
cardinal_1  | builtins.UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 360: unexpected end of data
cardinal_1  |
cardinal_1  | 2020-11-18 19:25:47,395 - cardinal.bot - INFO - Connection lost ([Failure instance: Traceback: <class 'UnicodeDecodeError'>: 'utf-8' codec can't decode byte 0xc2 in pos
ition 360: unexpected end of data
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/python/log.py:86:callWithContext
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/python/context.py:122:callWithContext
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/python/context.py:85:callWithContext
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/internet/posixbase.py:627:_doReadOrWrite
cardinal_1  | --- <exception caught here> ---
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/internet/posixbase.py:614:_doReadOrWrite
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/internet/tcp.py:243:doRead
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/internet/tcp.py:249:_dataReceived
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/protocols/tls.py:330:dataReceived
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/protocols/tls.py:295:_flushReceiveBIO
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/protocols/policies.py:120:dataReceived
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/words/protocols/irc.py:2631:dataReceived
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/protocols/basic.py:572:dataReceived
cardinal_1  | /usr/src/app/cardinal/bot.py:169:lineReceived
cardinal_1  | /usr/local/lib/python3.9/site-packages/twisted/words/protocols/irc.py:2637:lineReceived
cardinal_1  | ]), reconnecting in 10 seconds.