Hi.

I spent a lot of time trying to insert an object in web application. It is absolutely impossible. Well, I decided to use another session for it. And I received another problem :?

Xtensive.Storage.DLL!Xtensive.Storage.EntityState.IsNotAvailable.get() Line 134 + 0x9 bytes C#
    Xtensive.Storage.DLL!Xtensive.Storage.EntityState.Entity.get() Line 92 + 0x9 bytes  C#
    Xtensive.Storage.DLL!Xtensive.Storage.Providers.SessionHandler.TryGetEntitySetState(Xtensive.Storage.Key key = {Xtensive.Storage.Internals.Key<System.Guid>}, Xtensive.Storage.Model.FieldInfo fieldInfo = Cannot evaluate expression because the current thread is in a stack overflow state.; Attributes = Cannot evaluate expression because the current thread is in a stack overflow state., out Xtensive.Storage.Internals.EntitySetState entitySetState = null) Line 263 + 0xa bytes C#
    Xtensive.Storage.DLL!Xtensive.Storage.Internals.Prefetch.EntitySetTask.RegisterQueryTask() Line 47 + 0x2e bytes C#
    Xtensive.Storage.DLL!Xtensive.Storage.Internals.Prefetch.Fetcher.RegisterAllEntitySetTasks(System.Collections.Generic.IEnumerable<Xtensive.Storage.Internals.Prefetch.GraphContainer> containers = {Xtensive.Core.Collections.SetSlim<Xtensive.Storage.Internals.Prefetch.GraphContainer>}) Line 70 + 0x32 bytes    C#
    Xtensive.Storage.DLL!Xtensive.Storage.Internals.Prefetch.Fetcher.ExecuteTasks(Xtensive.Core.Collections.SetSlim<Xtensive.Storage.Internals.Prefetch.GraphContainer> containers = {Xtensive.Core.Collections.SetSlim<Xtensive.Storage.Internals.Prefetch.GraphContainer>}) Line 31   C#
    Xtensive.Storage.DLL!Xtensive.Storage.Internals.Prefetch.PrefetchProcessor.ExecuteTasks() Line 85   C#
    Xtensive.Storage.DLL!Xtensive.Storage.Providers.SessionHandler.FetchInstance(Xtensive.Storage.Key key = {Xtensive.Storage.Internals.Key<System.Guid>}) Line 212 + 0xe bytes C#
>   Xtensive.Storage.DLL!Xtensive.Storage.EntityState.LoadState() Line 223 + 0x26 bytes C#
    Xtensive.Storage.DLL!Xtensive.Storage.TransactionalStateContainer<Xtensive.Core.Tuples.Tuple>.State.get() Line 28 + 0xe bytes   C#
    Xtensive.Storage.DLL!Xtensive.Storage.EntityState.Tuple.get() Line 53 + 0x9 bytes   C#

Updated at 02.11.2009 8:58:33

I added http://code.google.com/p/dataobjectsdot ... ail?id=460 , so this will be done ASAP. And... SMB is officially yours ;) I hope this will partially compensate the disappointment after fighting with own bugs...

SMB is mine? :shock: Are you kidding? Well, so be it.

This thread was imported from our support forum. The original discussion may contain more detailed answer. Original topic by buck.

asked Oct 30 '09 at 14:12

Editor's gravatar image

Editor
46156156157


One Answer:

Stack trace is really suspecious (recursion on prefetch)... We made a lot of complex changes to any fetch logic because of Prefetch API in v4.1, and I looks like there are still issues like this.

Can you send us the source code or its essential part? We'll try to eliminate all the problems on this weekend.

Concerning insertion: that's really strange, since both ASP.NET MVC and ASP.NET samples are doing this; http://liveui.net/ is also backed by DO4, although AFAIK it does not relies or our SessionManager. I don't know the details in your case (exception, stack trace, etc.), I so it's really difficult to advise anything...


I added http://code.google.com/p/dataobjectsdot ... ail?id=460 , so this will be done ASAP.

And... SMB is officially yours ;) I hope this will partially compensate the disappointment after fighting with own bugs...


Must be fixed in the latest nightly build - there was a bug leading to infinite recursion in TransactionalStateContainer-based types when there is no transaction. In our tests this is a rare case - normally we establish transaction boundaries manually; tests for auto transactions are separate & pretty limited. So that's the reason we didn't get it.

answered Oct 31 '09 at 03:20

Alex%20Yakunin's gravatar image

Alex Yakunin
29714412

Can you provide any other details? E.g. are there auto transactions? What actions lead to this sequence?

You can send us the code by e-mail or as private message, if it's not acceptable to share it here.

(Oct 31 '09 at 03:20) Alex Yakunin Alex%20Yakunin's gravatar image

That's really disappointing... Lots of tests, but there are bugs in pretty simple cases.

What's clear is that we need tests utilizing all the basic operations in randomized sequences. In the end this must allow to isolate most of bugs like this.

(Oct 31 '09 at 03:20) Alex Yakunin Alex%20Yakunin's gravatar image

Well, you really reported too many bugs in few days :oops:

(Oct 31 '09 at 03:20) Alex Yakunin Alex%20Yakunin's gravatar image

Btw, likely, the issue with stack overflow will be fixed tomorrow. At least we were able to reproduce some similar case.

(Oct 31 '09 at 03:20) Alex Yakunin Alex%20Yakunin's gravatar image

buck wrote: > Btw, likely, the issue with stack overflow will be fixed tomorrow. At least we were able to reproduce some similar case.

Still doesn't work (version 11/3/2009)

(Oct 31 '09 at 03:20) Editor Editor's gravatar image
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
toggle preview

powered by OSQA