-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AttributeError: 'NoneType' object has no attribute 'readexactly' #115
Comments
I got this error while trying to debug a connection issue by restarting rabbitmq. On the producer side, I was getting channel closed errors, but on the consumer side, I received large amounts of these. |
Arf, py35. Could be why we've never seen this before. Any chance either of you could try your use case with 3.4 to confirm the impact? Cheers |
Python 3.5 StreamReaderProtocol sets self._stream_reader to None in connection_close:
The code needs to check if self._stream_reader is None (or infer that the connection has been closed some other way). I think this issue will be triggered by the task in run()/dispatch_frame() waiting for data to be read from the socket, and then the connection dies. If the self.worker task (which is where the read_frame exception happens) would be cancelled on connection close, this would be avoided for example. It's also something that should be done to avoid warnings from asyncio, as now the task is left running indefinitely (though it dies on its own to that same exception when the transport is closed, the task is just never cleaned up). |
In my local version, I've added this before any code where
and then added code to catch the exception where those methods are used, though I don't seem to have caught it everywhere it shows up. If anyone could help with letting me know if that's the proper way to check for it, and if so, at what level of the code I should catch them (in .protocol? outside the package where I use it?) I would really appreciate it. This, or some other way to handle the error, should also be added to the code here once it's been tested. |
I actually only added this exception catching to
after the |
…asionally, this leads to endless exception throw. This fix may close issue Polyconseil#115.
Protocol.reader in Python3.5 is set to None by the connection_lost method. Occasionally, this leads to endless exception throws. This fix may close issue #115.
So this issue may still happen further along in the same function (there's another call to Thanks |
Protocol.reader in Python3.5 is set to None by the connection_lost method. Occasionally, this leads to endless exception throws. This fix may close issue Polyconseil#115.
Hi! When you plan to release this bugfix? |
This Error occur randomly, but it does occure many times. And because this error pollute logs, I can't locate the cause of this error.
Sorry for that I can't make reproduce this time. Just let you know about it.
The text was updated successfully, but these errors were encountered: