Strange behaviour....
"additional logging and metrics"... metrics about what ?
If you think that your modification can be useful to somebody else and you
prefer to have it maintained by the NH's team, would be nice if you can
share the issues and its patches in our issue tracker (
http://jira.nhforge.org/).

About this thread:
Is your app. multi tenant ?
how you are managing the sessionfactory ?
are you recreating the sessionfactory on the fly for some reason ?
are you creating mappings dynamically ?

2010/2/6 Seth Goldstein <[email protected]>

>
> We are using our own compiled version.  The source code is only very
> slightly modified to include additional logging and metrics.  In
> theory, it should behave no differently than the officially compiled
> version.  We could certainly plug the official version in and see what
> happens.  When we compile, it is compiled in Release, not Debug.
>
>
> On Feb 5, 7:01 pm, Fabio Maulo <[email protected]> wrote:
> > Only as curiosity...
> > are you using a custom NH's version compiled in debug ?
> >
> > 2010/2/5 Seth Goldstein <[email protected]>
> >
> >
> >
> >
> >
> > > Today, we starting seeing IndexOutOfRangeException in
> > > AccessOptimizer.SetPropertyValues.  Our code base in production hasn't
> > > changed for about a week now, and all of a sudden this exception
> > > started getting thrown.  We are unable to consistently reproduce the
> > > bug.  But it does happen on a somewhat frequent basis.  We currently
> > > use memcached version 1.4.1 for our nhibernate 2nd level cache.  The
> > > exception is:
> >
> > > Exception type: System.IndexOutOfRangeException     Exception message:
> > > Index was outside the bounds of the array.
> >
> > > The call stack is:
> >
> > > Stack trace:
> > > at (Object , Object[] , SetterCallback )
> > > at
> NHibernate.Bytecode.Lightweight.AccessOptimizer.SetPropertyValues(Object
> > > target, Object[] values) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Bytecode\Lightweight\AccessOptimizer.cs:line
> > > 32
> > > at
> > >
> NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(O­bject
> > > entity, Object[] values) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Tuple\Entity\PocoEntityTuplizer.cs:line
> > > 292
> > > at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValues(Object
> > > entity, Object[] values) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Tuple\Entity\PocoEntityTuplizer.cs:line
> > > 280
> > > at
> > >
> NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Objec­t
> > > obj, Object[] values, EntityMode entityMode) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Persister\Entity\AbstractEntityPersister.cs:line
> > > 3776
> > > at NHibernate.Cache.Entry.CacheEntry.Assemble(Object[] values, Object
> > > result, Object id, IEntityPersister persister, IInterceptor
> > > interceptor, ISessionImplementor session) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Cache\Entry\CacheEntry.cs:line
> > > 94
> > > at NHibernate.Cache.Entry.CacheEntry.Assemble(Object instance, Object
> > > id, IEntityPersister persister, IInterceptor interceptor,
> > > ISessionImplementor session) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Cache\Entry\CacheEntry.cs:line
> > > 72
> > > at
> > >
> NHibernate.Event.Default.DefaultLoadEventListener.AssembleCacheEntry(CacheE­ntry
> > > entry, Object id, IEntityPersister persister, LoadEvent event) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Event\Default\DefaultLoadEventListener.cs:line
> > > 464
> > > at
> > >
> NHibernate.Event.Default.DefaultLoadEventListener.LoadFromSecondLevelCache(­LoadEvent
> > > event, IEntityPersister persister, LoadType options) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Event\Default\DefaultLoadEventListener.cs:line
> > > 438
> > > at NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent
> > > event, IEntityPersister persister, EntityKey keyToLoad, LoadType
> > > options) in C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Event\Default\DefaultLoadEventListener.cs:line
> > > 304
> > > at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent
> > > event, IEntityPersister persister, EntityKey keyToLoad, LoadType
> > > options) in C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Event\Default\DefaultLoadEventListener.cs:line
> > > 103
> > > at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent
> > > event, LoadType loadType) in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Event\Default\DefaultLoadEventListener.cs:line
> > > 68
> > > at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType
> > > loadType) in C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Impl\SessionImpl.cs:line
> > > 2485
> > > at NHibernate.Impl.SessionImpl.ImmediateLoad(String entityName, Object
> > > id) in C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Impl\SessionImpl.cs:line
> > > 1361
> > > at NHibernate.Proxy.AbstractLazyInitializer.Initialize() in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Proxy\AbstractLazyInitializer.cs:line
> > > 70
> > > at NHibernate.Proxy.AbstractLazyInitializer.GetImplementation() in
> > > C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate\Proxy\AbstractLazyInitializer.cs:line
> > > 154
> > > at NHibernate.ByteCode.Castle.LazyInitializer.Intercept(IInvocation
> > > invocation) in C:\SourceCode\shamu\vendor\NHibernate\2.1.0.GA
> > > \src\NHibernate.ByteCode.Castle\LazyInitializer.cs:line
> > > 61
> > > at Castle.DynamicProxy.AbstractInvocation.Proceed()
> > > at TenantProxy1a719121d7ad431a94e33e6604a711fa.get_Id()
> >
> > > I've tracked it down to what I believe to be
> > > NHibernate\Bytecode\Lightweight\ReflectionOptimizer.cs
> > > in the GenerateSetPropertyValuesMethod method
> >
> > > The only way that exception could get thrown would be if there were
> > > more setters than getters which sounds outrageous.
> >
> > > Or the getters array is never initialized?
> >
> > > Any ideas?
> >
> > > Any other information that I can provide to further diagnose?
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "nhusers" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<nhusers%[email protected]>
> <nhusers%[email protected]<nhusers%[email protected]>
> ­>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/nhusers?hl=en.
> >
> > --
> > Fabio Maulo
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>
>


-- 
Fabio Maulo

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to