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 |