|
From: Anton (JIRA) <nh...@gm...> - 2011-06-01 07:35:55
|
LockMode hash differs in x86 and 64bit OS
-----------------------------------------
Key: NH-2755
URL: http://216.121.112.228/browse/NH-2755
Project: NHibernate
Issue Type: Bug
Components: Core
Affects Versions: 3.2.0Beta2
Reporter: Anton
Priority: Major
When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
session.Lock(this, lockMode)
It is caused by generating and storing hash code upon creating instance of LockMode.
LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Anton (JIRA) <nh...@gm...> - 2011-06-01 07:39:55
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21247#action_21247 ]
Anton commented on NH-2755:
---------------------------
Here is callstack:
Server stack trace:
в NHibernate.Persister.Entity.AbstractEntityPersister.GetLocker(LockMode lockMode) в D:\Projects\NHibernate.trunk\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:строка 1730
в NHibernate.Persister.Entity.AbstractEntityPersister.Lock(Object id, Object version, Object obj, LockMode lockMode, ISessionImplementor session) в D:\Projects\NHibernate.trunk\src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:строка 1734
в NHibernate.Event.Default.AbstractLockUpgradeEventListener.UpgradeLock(Object entity, EntityEntry entry, LockMode requestedLockMode, ISessionImplementor source) в D:\Projects\NHibernate.trunk\src\NHibernate\Event\Default\AbstractLockUpgradeEventListener.cs:строка 71
в NHibernate.Event.Default.DefaultLockEventListener.OnLock(LockEvent event) в D:\Projects\NHibernate.trunk\src\NHibernate\Event\Default\DefaultLockEventListener.cs:строка 55
в NHibernate.Impl.SessionImpl.FireLock(LockEvent lockEvent) в D:\Projects\NHibernate.trunk\src\NHibernate\Impl\SessionImpl.cs:строка 2520
в NHibernate.Impl.SessionImpl.Lock(Object obj, LockMode lockMode) в D:\Projects\NHibernate.trunk\src\NHibernate\Impl\SessionImpl.cs:строка 767
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-01 11:47:57
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21248#action_21248 ]
Fabio Maulo commented on NH-2755:
---------------------------------
and the exception message ?
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Anton (JIRA) <nh...@gm...> - 2011-06-01 12:05:55
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21249#action_21249 ]
Anton commented on NH-2755:
---------------------------
It is in issue description :)
"LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister"
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-01 13:03:57
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21250#action_21250 ]
Fabio Maulo commented on NH-2755:
---------------------------------
What you are doing is pass the NH's LockMode serializaed instance between 2 different machines, right ?
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Anton (JIRA) <nh...@gm...> - 2011-06-01 13:46:00
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21251#action_21251 ]
Anton commented on NH-2755:
---------------------------
Yes, LockMode just passes from client to server PC, client is x86, server is 64bit.
When using client 64bit and server 64bit - everything ok.
Stored hashcode in instance of LockMode differs at 86/64
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-06-01 14:58:57
|
[ http://216.121.112.228/browse/NH-2755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21252#action_21252 ]
Fabio Maulo commented on NH-2755:
---------------------------------
Well... that is not the only one place where NH store the hash code at ctor.
> LockMode hash differs in x86 and 64bit OS
> -----------------------------------------
>
> Key: NH-2755
> URL: http://216.121.112.228/browse/NH-2755
> Project: NHibernate
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.2.0Beta2
> Reporter: Anton
> Priority: Major
>
> When using LockMode over remoting between PCs with x86 and 64bit operating systems there is different result in GetHashCode.
> It leads to error "LockMode Upgrade not supported by NHibernate.Persister.Entity.SingleTableEntityPersister " when I pass LockMode.Upgrade from x86 to 64bit to do
> session.Lock(this, lockMode)
> It is caused by generating and storing hash code upon creating instance of LockMode.
> LockMode constructor uses a XOR (^) operand to generate and store hash code, and it has different behavior depends on OS type (x84, 64bit)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|