Home
Help
Register
Log in

Search

 
   Active Threads  

You are here: Home > ORM Profiler Section > Bugs & Issues> ORMProfiler freeze
 

Pages: 1
Bugs & Issues
ORMProfiler freeze
Page:1/1 

  Print all messages in this thread  
Poster Message
Fab
User



Location:

Joined on:
11-Aug-2017 18:27:28
Posted:
5 posts
# Posted on: 11-Aug-2017 18:35:09.  
Hello,

I was using v1.1 but updated to v1.5 to check that I still have the problem.

I've my webservice which made a wrong SQL call with more than 2100 characters.
So I start ORMProfiler to get the code stack trace, but can't log this query : As soon as this query is emitted, ORMProfiler just freeze and I've to kill it.

Do you see what could happen ?
I already had some freeze like this, but it was after a long period of profiling, not systematic and blocking like this one

Thank you
Fab

  Top
Fab
User



Location:

Joined on:
11-Aug-2017 18:27:28
Posted:
5 posts
# Posted on: 11-Aug-2017 18:41:04.  
After some retry I go an Exception popup: Fin de flux rencontrée avant la fin de l'analyse.

Quote:

ORM Profiler version 1.5. Build June 9th, 2017
-----[Core exception]--------------------
à System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
à System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
à System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
à SD.Tools.OrmProfiler.Shared.MessageSerializers.DeserializeMessage(Byte[] bMessage) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Shared\MessageSerializers.cs:ligne 25
à SD.Tools.OrmProfiler.Client.Core.ListenerBody.pipeServer_MessageReceived(Object sender, ContainerEventArgs`1 args) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Client.Core\Listener.cs:ligne 109
à SD.Tools.BCLExtensions.SystemRelated.EventExtensionMethods.RaiseEvent[T](EventHandler`1 handler, Object sender, T arguments) dans c:\Myprojects\VS.NET Projects\BCLExtensions_hg\SystemRelated\EventExtensionMethods.cs:ligne 62
à SD.Tools.OrmProfiler.Shared.NamedPipeStreamBase.OnMessageReceived(ContainerEventArgs`1 args) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Shared\NamedPipeStream\NamedPipeStreamBase.cs:ligne 110
à SD.Tools.OrmProfiler.Shared.NamedPipeStreamServer.Connection_MessageReceived(Object sender, ContainerEventArgs`1 args) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Shared\NamedPipeStream\NamedPipeStreamServer.cs:ligne 128
à SD.Tools.BCLExtensions.SystemRelated.EventExtensionMethods.RaiseEvent[T](EventHandler`1 handler, Object sender, T arguments) dans c:\Myprojects\VS.NET Projects\BCLExtensions_hg\SystemRelated\EventExtensionMethods.cs:ligne 62
à SD.Tools.OrmProfiler.Shared.NamedPipeStreamBase.OnMessageReceived(ContainerEventArgs`1 args) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Shared\NamedPipeStream\NamedPipeStreamBase.cs:ligne 110
à SD.Tools.OrmProfiler.Shared.NamedPipeStreamConnection.EndRead(IAsyncResult result) dans C:\Myprojects\VS.NET Projects\OrmProfilerv1.5\SD.Tools.OrmProfiler.Shared\NamedPipeStream\NamedPipeStreamConnection.cs:ligne 69
à System.IO.Pipes.PipeStream.AsyncPSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped)
à System.Threading._IOCompletionCallback.IOCompletionCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)


  Top
Otis
ORM Profiler Team



Location:
The Hague, The Netherlands
Joined on:
22-Aug-2011 10:26:38
Posted:
613 posts
# Posted on: 13-Aug-2017 09:17:42.  
Could you try to reproduce it with a small piece of code? We haven't seen this problem ourselves, so we don't know where exactly it halts.
Frans Bouma
ORM Profiler / LLBLGen Pro Lead Developer | Blog | Twitter
 
Top
Fab
User



Location:

Joined on:
11-Aug-2017 18:27:28
Posted:
5 posts
# Posted on: 13-Aug-2017 10:54:33.  
Would take me too much time to reprod in a separate app, sorry
I've debugged my code and the executed query is a query with more than 32000 parameters (a stupid list of period of 1 min instead of 1 week Wink

As the query don't reach SQL Server (I suppose it's blocked by the provider) I don't have the exact query, but it looks like

SELECT * FROM TIMESHEET
WHERE CONTRACT_ID = XX /* Guid */
AND CONTRACT_PERIOD IN (...list of +32000 datetime ...)

I could take a dump if you want ? So you can debug and see what's happening when it freeze.
I see the PDB are in the folder, so you should be able to debug. Or you can provide me a debug version.


  Top
Otis
ORM Profiler Team



Location:
The Hague, The Netherlands
Joined on:
22-Aug-2011 10:26:38
Posted:
613 posts
# Posted on: 14-Aug-2017 09:29:35.  
With that many parameters I think it's a matter of the deserializer is choking on the data. Which is kind of odd though, but it might only occur with that many parameters. We'll see if we can reproduce it with 32K parameters in a query, and if so, will see if there's a fix possible Regular Smiley (likely not, as the system hangs in the deserializer which is .NET framework code)
Frans Bouma
ORM Profiler / LLBLGen Pro Lead Developer | Blog | Twitter
 
Top
Fab
User



Location:

Joined on:
11-Aug-2017 18:27:28
Posted:
5 posts
# Posted on: 14-Aug-2017 10:50:23.  
Maybe the fix should be in the interceptor, which should avoid sending so many parameters ?

  Top
Otis
ORM Profiler Team



Location:
The Hague, The Netherlands
Joined on:
22-Aug-2011 10:26:38
Posted:
613 posts
# Posted on: 15-Aug-2017 10:18:07.  
Fab wrote:
Maybe the fix should be in the interceptor, which should avoid sending so many parameters ?

But what's too many? 2200 is 'legal' but might already cause a performance dip. The interceptor uses binary serialization which might bog down a bit on the load of many objects but on other areas there can too be a lot of objects (e.g. long/deep stack traces).
Frans Bouma
ORM Profiler / LLBLGen Pro Lead Developer | Blog | Twitter
 
Top
Fab
User



Location:

Joined on:
11-Aug-2017 18:27:28
Posted:
5 posts
# Posted on: 15-Aug-2017 12:28:41.  

The definition of "Too many" for me is : when the application crash, it's too many.

I'm not talking about a performance problem: when it was freezed I let it run for +30min (was gone in meeting), it never came back. For me, a performance problem means it's slow, but it work. Here it doesn't work (freeze forever or crash). So this is *my* definition of "too many" :-)

I already had "too many parameters" queries which didn't crash the profiler (this is a quite easy error when using llblgen, or any orm), so I think the interceptor should only send the first (i.e.) 2500 parameters and "forget" the other. Maybe with a count which tell the user exactly how many parameter, but this is a nice to have.

Most of time this kind of error is easily understood once we see a few parameter, we never need to check all the 2000+ parameters.


  Top
Otis
ORM Profiler Team



Location:
The Hague, The Netherlands
Joined on:
22-Aug-2011 10:26:38
Posted:
613 posts
# Posted on: 16-Aug-2017 09:00:52.  
Good point. We'll look into adding that Regular Smiley
Frans Bouma
ORM Profiler / LLBLGen Pro Lead Developer | Blog | Twitter
 
Top
Pages: 1  


Powered by HnD ©2002-2007 Solutions Design
HnD uses LLBLGen Pro

Version: 2.1.09082011 Final.