You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gordon Sim (JIRA)" <ji...@apache.org> on 2011/05/10 16:17:47 UTC

[jira] [Commented] (QPID-3218) AttributeError: 'NoneType' object has no attribute 'write_cmds'

    [ https://issues.apache.org/jira/browse/QPID-3218?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031201#comment-13031201 ] 

Gordon Sim commented on QPID-3218:
----------------------------------

I believe what is happening here is that a session_dectahed can result in the SessionState being removed from the attachments map, but the Engine.attach() method will proceed regardless of that fact and may then hit these types of errors on any linking/unlinking work. This certainly explains my case above and could explain the original trace. It would however most likely be accompanied by some error in the broker logs.

Suggested fix:

{noformat}
Index: qpid/messaging/driver.py
===================================================================
--- qpid/messaging/driver.py	(revision 1097458)
+++ qpid/messaging/driver.py	(working copy)
@@ -828,8 +828,9 @@
     self._closing = True
 
   def attach(self, ssn):
+    if ssn.closed: return
     sst = self._attachments.get(ssn)
-    if sst is None and not ssn.closed:
+    if sst is None:
       for i in xrange(0, self.channel_max):
         if not self._sessions.has_key(i):
           ch = i
{noformat}

> AttributeError: 'NoneType' object has no attribute 'write_cmds'
> ---------------------------------------------------------------
>
>                 Key: QPID-3218
>                 URL: https://issues.apache.org/jira/browse/QPID-3218
>             Project: Qpid
>          Issue Type: Bug
>          Components: Python Client
>    Affects Versions: 0.7
>         Environment: OS=RHEL6 
> python-qpid-0.7.946106-12.el6.noarch
> qpid-cpp-client-0.7.946106-5.el6.x86_64
> qpid-cpp-server-0.7.946106-5.el6.x86_64
> qpid broker on main server and all the nodes are
> vm's with bridged configuration in a single network.
>            Reporter: Jeff Ortel
>         Attachments: test.py
>
>
> 2011-04-19 22:05:07,321 [ERROR][asynctaskreplyqueue] __fetch() @ consumer.py:90 - asynctaskreplyqueue
> Traceback (most recent call last):
>   File "/usr/lib/python2.6/site-packages/gofer/messaging/consumer.py", line 86, in __fetch
>     return self.receiver.fetch(timeout=self.WAIT)
>   File "<string>", line 6, in fetch
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 994, in fetch
>     self._ecwait(lambda: self.linked)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 50, in _ecwait
>     result = self._ewait(lambda: self.closed or predicate(), timeout)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 957, in _ewait
>     result = self.session._ewait(lambda: self.error or predicate(), timeout)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 550, in _ewait
>     result = self.connection._ewait(lambda: self.error or predicate(), timeout)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 194, in _ewait
>     self.check_error()
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 187, in check_error
>     raise self.error
> InternalError: Traceback (most recent call last):
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 496, in dispatch
>     self.engine.dispatch()
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 791, in dispatch
>     self.attach(ssn)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 834, in attach
>     self.link(rcv, self._in, rcv.source)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 885, in link
>     dir.do_unlink(sst, lnk, _lnk)
>   File "/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 261, in do_unlink
>     sst.write_cmds(cmds, action)
> AttributeError: 'NoneType' object has no attribute 'write_cmds'

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org