All Cassini worker threads end up looking this way: ~22e!clrstack OS Thread Id: 0x348 (22) ESP EIP 096fcb54 7c90e4f4 [HelperMethodFrame_1OBJ: 096fcb54] System.Threading.WaitHandle.WaitOneNative (Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean) 096fcc00 792b687f System.Threading.WaitHandle.WaitOne(Int64, Boolean) 096fcc1c 792b6835 System.Threading.WaitHandle.WaitOne(Int32, Boolean) 096fcc30 6c3544fc System.Threading.ReaderWriterLockSlim.WaitOnEvent (System.Threading.EventWaitHandle, UInt32 ByRef, Int32) 096fcc68 6c353eaf System.Threading.ReaderWriterLockSlim.TryEnterUpgradeableReadLock (Int32) 096fcc84 6c353f48 System.Threading.ReaderWriterLockSlim.EnterUpgradeableReadLock() 096fcc88 042ce104 Castle.Core.Internal.SlimReaderWriterLock.EnterReadLock() 096fcc8c 06977f98 Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode (System.Type[], Castle.DynamicProxy.ProxyGenerationOptions) 096fce7c 06977f19 Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(System.Type, System.Type[], Castle.DynamicProxy.ProxyGenerationOptions) 096fce98 06977dab Castle.DynamicProxy.ProxyGenerator.CreateClassProxy (System.Type, System.Type[], Castle.DynamicProxy.ProxyGenerationOptions, System.Object[], Castle.Core.Interceptor.IInterceptor[]) 096fcec0 06977d36 Castle.DynamicProxy.ProxyGenerator.CreateClassProxy (System.Type, System.Type[], Castle.Core.Interceptor.IInterceptor[]) 096fcecc 06977a7d NHibernate.ByteCode.Castle.ProxyFactory.GetProxy (System.Object, NHibernate.Engine.ISessionImplementor) 096fcf1c 0697790b NHibernate.Tuple.Entity.AbstractEntityTuplizer.CreateProxy (System.Object, NHibernate.Engine.ISessionImplementor) 096fcf2c 069778d6 NHibernate.Persister.Entity.AbstractEntityPersister.CreateProxy (System.Object, NHibernate.Engine.ISessionImplementor) 096fcf44 0697698b NHibernate.Event.Default.DefaultLoadEventListener.CreateProxyIfNecessary (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType, NHibernate.Engine.IPersistenceContext) 096fcf68 06974a89 NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType) 096fcf98 0697485b NHibernate.Event.Default.DefaultLoadEventListener.OnLoad (NHibernate.Event.LoadEvent, NHibernate.Event.LoadType) 096fcfd4 069746da NHibernate.Impl.SessionImpl.FireLoad (NHibernate.Event.LoadEvent, NHibernate.Event.LoadType) 096fcfec 06974185 NHibernate.Impl.SessionImpl.InternalLoad (System.String, System.Object, Boolean, Boolean) 096fd010 0697405b NHibernate.Type.EntityType.ResolveIdentifier (System.Object, NHibernate.Engine.ISessionImplementor) 096fd038 06973f65 NHibernate.Type.EntityType.ResolveIdentifier (System.Object, NHibernate.Engine.ISessionImplementor, System.Object) 096fd054 0697646b NHibernate.Engine.TwoPhaseLoad.InitializeEntity (System.Object, Boolean, NHibernate.Engine.ISessionImplementor, NHibernate.Event.PreLoadEvent, NHibernate.Event.PostLoadEvent) 096fd0d0 06976272 NHibernate.Loader.Loader.InitializeEntitiesAndCollections (System.Collections.IList, System.Object, NHibernate.Engine.ISessionImplementor, Boolean) 096fd104 064ccfe1 NHibernate.Loader.Loader.DoQuery (NHibernate.Engine.ISessionImplementor, NHibernate.Engine.QueryParameters, Boolean) 096fd174 064ccc17 NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections (NHibernate.Engine.ISessionImplementor, NHibernate.Engine.QueryParameters, Boolean) 096fd1ac 06dc8c17 NHibernate.Loader.Loader.LoadEntity (NHibernate.Engine.ISessionImplementor, System.Object, NHibernate.Type.IType, System.Object, System.String, System.Object, NHibernate.Persister.Entity.IEntityPersister) 096fd1f8 06dc8a5a NHibernate.Loader.Entity.AbstractEntityLoader.Load (NHibernate.Engine.ISessionImplementor, System.Object, System.Object, System.Object) 096fd218 06dc8a23 NHibernate.Loader.Entity.AbstractEntityLoader.Load (System.Object, System.Object, NHibernate.Engine.ISessionImplementor) 096fd228 06dc88d0 NHibernate.Persister.Entity.AbstractEntityPersister.Load (System.Object, System.Object, NHibernate.LockMode, NHibernate.Engine.ISessionImplementor) 096fd24c 06dc87de NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType) 096fd27c 06974e9d NHibernate.Event.Default.DefaultLoadEventListener.DoLoad (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType) 096fd2b4 06974b77 NHibernate.Event.Default.DefaultLoadEventListener.Load (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType) 096fd2dc 06974a9b NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad (NHibernate.Event.LoadEvent, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Engine.EntityKey, NHibernate.Event.LoadType) 096fd30c 0697485b NHibernate.Event.Default.DefaultLoadEventListener.OnLoad (NHibernate.Event.LoadEvent, NHibernate.Event.LoadType) 096fd348 069746da NHibernate.Impl.SessionImpl.FireLoad (NHibernate.Event.LoadEvent, NHibernate.Event.LoadType) 096fd360 06dc8500 NHibernate.Impl.SessionImpl.Get(System.String, System.Object) 096fd398 06dc848d NHibernate.Impl.SessionImpl.Get(System.Type, System.Object) 096fd3a8 06dc7d9f Castle.ActiveRecord.ActiveRecordBase.FindByPrimaryKey (System.Type, System.Object, Boolean) 096fd3f8 06dc7cfe Castle.ActiveRecord.ActiveRecordMediator`1 [[System.__Canon, mscorlib]].FindByPrimaryKey(System.Object, Boolean) ...my code here... 096fd76c 06980981 DynamicClass.lambda_method (System.Runtime.CompilerServices.ExecutionScope, System.Web.Mvc.ControllerBase, System.Object[]) 096fd778 036cad22 System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc.ControllerBase, System.Object[]) 096fd784 036ca8c0 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (System.Reflection.MethodInfo, System.Collections.Generic.IDictionary`2<System.String,System.Object>) 096fd7a4 036ca7d8 System.Web.Mvc.ControllerActionInvoker +<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() 096fd7b8 036ca6c0 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter, System.Web.Mvc.ActionExecutingContext, System.Func`1<System.Web.Mvc.ActionExecutedContext>) 096fd7f4 036ca62d System.Web.Mvc.ControllerActionInvoker +<>c__DisplayClassc +<>c__DisplayClasse.<InvokeActionMethodWithFilters>b__b() 096fd7fc 036ca6c0 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter, System.Web.Mvc.ActionExecutingContext, System.Func`1<System.Web.Mvc.ActionExecutedContext>) 096fd838 036ca62d System.Web.Mvc.ControllerActionInvoker +<>c__DisplayClassc +<>c__DisplayClasse.<InvokeActionMethodWithFilters>b__b() 096fd840 036ca6c0 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter, System.Web.Mvc.ActionExecutingContext, System.Func`1<System.Web.Mvc.ActionExecutedContext>) 096fd87c 036ca62d System.Web.Mvc.ControllerActionInvoker +<>c__DisplayClassc +<>c__DisplayClasse.<InvokeActionMethodWithFilters>b__b() 096fd884 036ca6c0 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter, System.Web.Mvc.ActionExecutingContext, System.Func`1<System.Web.Mvc.ActionExecutedContext>) 096fd8c0 036ca62d System.Web.Mvc.ControllerActionInvoker +<>c__DisplayClassc +<>c__DisplayClasse.<InvokeActionMethodWithFilters>b__b() 096fd8c8 036ca4b2 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters (System.Reflection.MethodInfo, System.Collections.Generic.IDictionary`2<System.String,System.Object>, System.Collections.Generic.IList`1<System.Web.Mvc.IActionFilter>) 096fd8e8 036c9401 System.Web.Mvc.ControllerActionInvoker.InvokeAction (System.Web.Mvc.ControllerContext, System.String) 096fd92c 036c8e91 System.Web.Mvc.Controller.ExecuteCore() 096fd958 036c8be8 System.Web.Mvc.ControllerBase.Execute (System.Web.Routing.RequestContext) 096fd964 036c8bb8 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute (System.Web.Routing.RequestContext) 096fd96c 036c7fac System.Web.Mvc.MvcHandler.ProcessRequest (System.Web.HttpContextBase) 096fd9ac 036c7f28 System.Web.Mvc.MvcHandler.ProcessRequest (System.Web.HttpContext) 096fd9c0 036c7ee8 System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest (System.Web.HttpContext) 096fd9c8 660ad8f6 System.Web.HttpApplication +CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () 096fd9fc 6608132c System.Web.HttpApplication.ExecuteStep (IExecutionStep, Boolean ByRef) 096fda3c 6608c3a3 System.Web.HttpApplication +ApplicationStepManager.ResumeSteps(System.Exception) 096fda8c 660808ac System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest (System.Web.HttpContext, System.AsyncCallback, System.Object) 096fdaa8 66083e1c System.Web.HttpRuntime.ProcessRequestInternal (System.Web.HttpWorkerRequest) 096fdadc 66083ac3 System.Web.HttpRuntime.ProcessRequestNoDemand (System.Web.HttpWorkerRequest) 096fdaec 66654d17 System.Web.HttpRuntime.ProcessRequest (System.Web.HttpWorkerRequest) 096fdb00 036c37a9 Microsoft.VisualStudio.WebHost.Request.Process() 096fdb18 036c344e Microsoft.VisualStudio.WebHost.Host.ProcessRequest (Microsoft.VisualStudio.WebHost.Connection) 096fdd64 79e71b4c [GCFrame: 096fdd64] 096fdd80 79e71b4c [GCFrame: 096fdd80] 096fdef4 79e71b4c [ContextTransitionFrame: 096fdef4] 096fdfe8 79e71b4c [GCFrame: 096fdfe8] 096fdfcc 79e71b4c [GCFrame: 096fdfcc] 096ff24c 79e71b4c [CustomGCFrame: 096ff24c] 096ff260 79e71b4c [CustomGCFrame: 096ff260] 096ff274 79e71b4c [CustomGCFrame: 096ff274] 096ff288 79e71b4c [CustomGCFrame: 096ff288] 096ff29c 79e71b4c [CustomGCFrame: 096ff29c] 096ff2b0 79e71b4c [CustomGCFrame: 096ff2b0] 096ff2c4 79e71b4c [CustomGCFrame: 096ff2c4] 096ff690 79e71b4c [TPMethodFrame: 096ff690] Microsoft.VisualStudio.WebHost.Host.ProcessRequest (Microsoft.VisualStudio.WebHost.Connection) 096ff6a0 036c2775 Microsoft.VisualStudio.WebHost.Server.OnSocketAccept (System.Object) 096ff6b4 792c9dff System.Threading._ThreadPoolWaitCallback.WaitCallback_Context (System.Object) 096ff6bc 792e019f System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 096ff6d4 792ca363 System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal (System.Threading._ThreadPoolWaitCallback) 096ff6e8 792ca1f9 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback (System.Object) 096ff878 79e71b4c [GCFrame: 096ff878]
Hope this helps, Thanks On Jan 7, 1:16 pm, "Ayende Rahien" <[email protected]> wrote: > Can you break into cassini when it is hanging and produce the stack traces? > > On Wed, Jan 7, 2009 at 2:08 PM, Yuriy Ostapenko <[email protected]> wrote: > > > Sorry for bringing bad news, but the issue still remains in the latest > > version :( > > > I now used JMeter to run queries against one of my controller methods > > with several worker threads each running 100 samples. > > The method is executing fairly complex NHibernate Criteria API based > > query against a product catalog database. > > It works fine with both DynamicProxy from rev. 5471 and with LinFu > > ByteCode provider. > > Using the latest DynamicProxy causes some JMeter worker threads to > > hang until Cassini or IIS restart (I tried both), > > while other threads can successfully execute all samples up to the > > last one. > > > Thanks > > > On Jan 7, 6:50 am, hammett <[email protected]> wrote: > > > I've just double checked the changes. The ThreadSafeDictionary looks a > > > bit suspicious. I've removed it and updated the code that used to use > > > it to lock the access to the dictionary. Please give it a try again. > > > > On Tue, Jan 6, 2009 at 4:43 AM, hammett <[email protected]> wrote: > > > > Ok, I will re-review the commit and worst case scenario I'll revert it. > > > > Thanks > > > > > On Tue, Jan 6, 2009 at 4:37 AM, Yuriy Ostapenko <[email protected]> > > wrote: > > > > >> Didn't dig too much really, but threads stop executing at different > > > >> points that involve proxied calls. > > > >> I guess they are getting into some deadlock. > > > >> The same method calls can execute 5 times in a row and then get > > > >> blocked, next time it's a completely different method call... no > > > >> system really, > > > >> but probably, since NHibernate uses DynamicProxy more extensively than > > > >> I do with Windsor, it happens mostly inside actual queries, > > > >> so using LingFu for NHibernate helps making those locks occur way less > > > >> often. > > > > >> If you can point me at what other info might be useful, please do so. > > > > >> Thanks > > > > >> On Jan 6, 1:25 pm, hammett <[email protected]> wrote: > > > >>> Please expand on "some really weird locking issues all over the > > place" > > > > >>> On Tue, Jan 6, 2009 at 4:06 AM, Yuriy Ostapenko <[email protected]> > > wrote: > > > > >>> > Hello all, > > > > >>> > Today I updated to the latest Castle trunk. > > > >>> > After that my project gone crazy - seems like some really weird > > > >>> > locking issues all over the place. > > > >>> > Please note I use Windsor all over the place and NHibernate uses it > > as > > > >>> > well (I use it through AR). > > > >>> > Not sure if this issue only occurs within a web context, but this > > is > > > >>> > 99% sure a fault of this patch. > > > >>> > I tried NHibernate.ByteCode.LingFu and it works way better this way > > > >>> > but threads sometimes still seem to get lost when Windsor proxies > > are > > > >>> > used. > > > >>> > Then i simply rolled (only) DynamicProxy stuff to rev. 5471 and > > > >>> > everything is ok now. > > > >>> > Has anyone else experienced issues similar to mine and can confirm > > > >>> > this? > > > > >>> > Thanks > > > >>> > On Jan 4, 2:52 am, Staxxx <[email protected]> wrote: > > > >>> >> I don't have time to work on this any time soon, but this may be > > helpful??? > >http://weblogs.asp.net/mschwarz/archive/2007/06/05/how-to-create-silv... > > > > >>> >> On Sat, Jan 3, 2009 at 5:21 PM, Staxxx <[email protected]> wrote: > > > > >>> >> > Yes, that's a good start... It would be Silverlight 2.0, but I'm > > not sure > > > >>> >> > how to use csc w/ Silverlight (yet). > > > > >>> >> > Thanks > > > > >>> >> > On Sat, Jan 3, 2009 at 5:08 PM, Jonathon Rossi < > > [email protected]> wrote: > > > > >>> >> >> At work, we're just using MSBuild to build the silverlight > > projects files > > > >>> >> >>> etc... How do you want them to build? > > > > >>> >> >> Just about all of castle is build with csc. We have net-2.0, > > net-3.5 and > > > >>> >> >> mono-1.0 directories in the build output, maybe a > > silverlight-1.0 directory > > > >>> >> >> (if this is actually targeting 1.0). The build scripts would > > also need to > > > >>> >> >> run the unit tests for the Core and DP2. I can't remember how > > the scripts > > > >>> >> >> are written to know how hard it would be to just be able to > > build Core and > > > >>> >> >> DP2 when doing a silverlight build. > > > > >>> >> >> Is that what you meant by "how do you want them to build"? > > > > >>> >> >> -- > > > >>> >> >> Jonathon Rossi > > > > >>> -- > > > >>> Cheers, > > > >>> hammetthttp://hammett.castleproject.org/ > > > > > -- > > > > Cheers, > > > > hammett > > > >http://hammett.castleproject.org/ > > > > -- > > > Cheers, > > > hammetthttp://hammett.castleproject.org/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Development List" 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/castle-project-devel?hl=en -~----------~----~----~----~------~----~------~--~---
