looks like a zope.transaction issue to me, or at least one where they'd have to 
show me how they need to use the Session.  They seem to be calling upon 
session.transaction.prepare() directly at a time when that session.transaction 
is no longer associated with the parent session.   You'd need to take it up 
with the zope.transaction folks first.




On Jun 25, 2013, at 5:49 AM, Pau Tallada <[email protected]> wrote:

> Hi!
> 
> I think I've stepped on the same or similar bug.
> 
> I have a software which uses zodb transactions to synchronize operations in 
> two databases. In the end, the two databases are the same (we are using the 
> exact same postgresql connection url for both). The software runs fine if 
> only one instance is launched.
> 
> But... if I launch more than one instance at a time, there is a great 
> possibility that I get an Exception like this:
> 
> Traceback (most recent call last):
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/brownthrower/dispatcher/static/__init__.py",
>  line 238, in _run_job
>     transaction.commit()
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/transaction/_manager.py",
>  line 111, in commit
>     return self.get().commit()
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/transaction/_transaction.py",
>  line 280, in commit
>     reraise(t, v, tb)
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/transaction/_transaction.py",
>  line 271, in commit
>     self._commitResources()
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/transaction/_transaction.py",
>  line 417, in _commitResources
>     reraise(t, v, tb)
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/transaction/_transaction.py",
>  line 394, in _commitResources
>     rm.tpc_vote(self)
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/zope/sqlalchemy/datamanager.py",
>  line 153, in tpc_vote
>     self.tx.prepare()
>   File 
> "/nfs/pau/PAUdm/codes/tonello/ENV/packaging_test/lib/python2.6/site-packages/sqlalchemy/orm/session.py",
>  line 313, in prepare
>     if self._parent is not None or not self.session.twophase:
> AttributeError: 'NoneType' object has no attribute 'twophase'
> 
> I'm completely lost on this :(
> 
> Any clues?
> 
> BTW, sessions are created like this:
> 
>     engine = create_engine('postgresql://foo')
>     
>     session_maker = scoped_session(sessionmaker(
>         bind = engine,
>         twophase = True,
>         extension = ZopeTransactionExtension()
>     ))
> 
> Thank you very much in advance :)
> 
> Pau.
> 
> 2013/2/20 Michael Bayer <[email protected]>
> you'd have to illustrate a working example of the code that causes that.
> 
> 
> On Feb 20, 2013, at 6:18 AM, Christian Démolis <[email protected]> 
> wrote:
> 
>> Hi,
>> 
>> AttributeError: 'NoneType' object has no attribute 'twophase'
>> 
>> 
>> 243.
>> 244.
>> 245.
>> 246.
>> 247.
>> 248.
>> 
>> 249.
>> 250.
>> 251.
>> 252.
>> 
>>                         "Session already has a Connection associated for the 
>> "
>>                         "given Connection's Engine")
>> 
>> 
>> 
>>             else:
>>                 conn = bind.contextual_connect()
>> 
>> 
>> 
>> 
>>         if self.session.twophase and self._parent is None:
>> 
>> 
>> 
>> 
>>             transaction = conn.begin_twophase()
>>         elif self.nested:
>> 
>> 
>> 
>>             transaction = conn.begin_nested()
>>         else:
>> 
>> Anybody understand this error ?
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  
> 
> 
> 
> -- 
> ----------------------------------
> Pau Tallada Crespí
> Dep. d'Astrofísica i Cosmologia
> Port d'Informació Científica (PIC)
> Tel: +34 93 586 8233
> ----------------------------------
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to