His test case still works, can anyone confirm? Op donderdag 27 maart 2014 08:44:40 UTC+1 schreef cremor: > > Hi Roman, > > Is there still a leak in the latest master trunk even after the fix for > NH-3579? If yes, please create a new Jira issue and GitHub pull request. > > On Friday, January 24, 2014 2:30:38 PM UTC+1, Roman Kvasov wrote: >> >> Hi Alexander, >> >> I think you forgot big chunk of leak, NhLinqExpression leak reference to >> constants that used in linq expression. >> If linq query reference for object it end up in cache and object not >> released. >> I wrote simple task case for demostration >> https://github.com/radiy/nhibernate-core/blob/master/src/NHibernate.Test/Linq/ExpressionSessionLeakTest.cs#L23 >> . >> I made over version of fix >> https://github.com/radiy/nhibernate-core/commit/82706daafcbfe4ec32aca94a51bbbb16369fe83e >> . >> Please review. >> >> >> 2014/1/21 Alexander I. Zaytsev <[email protected]> >> >>> Hi all, >>> >>> I've made a pull request with a fix. >>> >>> https://github.com/nhibernate/nhibernate-core/pull/248 >>> >>> Please review. >>> >>> Best Regards, >>> Alexander >>> >>> >>> 2014/1/21 Oskar Berggren <[email protected]> >>> >>>> >>>> 2014/1/20 Lauri Kotilainen <[email protected]> >>>> >>>>> >>>>> >>>>> On Saturday, January 18, 2014 11:44:53 PM UTC+2, Oskar Berggren wrote: >>>>>> >>>>>> >>>>>> Unfortunately, even with that patch applied, the unit test in my >>>>>>> other post fails -- even though a heap inspection with WinDBG confirms >>>>>>> that >>>>>>> the session is no longer rooted and is eligible for collection. >>>>>>> >>>>>> >>>>>> My attempts with dubious knowledge of Windbg seems to confirm that >>>>>> the test itself did indeed maintain a reference to the SessionImpl >>>>>> instance, as a local variable in the stack fram of >>>>>> IsGarbageCollected<TObject>(ref TObject @object, Action<TObject> >>>>>> useObject). I don't know how to explain that, given that the test code >>>>>> attempted to nullify the reference. >>>>>> >>>>> >>>>> The second GC.Collect() pass fixed that for me, like Gunnar suggested. >>>>> I'll take another look at it soon-ish to see if your modified test still >>>>> behaves the way I think it should. >>>>> >>>> >>>> I added a bunch more, plus some other GC.xxx() methods, didn't help. >>>> >>>> >>>> >>>>> My first attempt at a fix actually was to discard the _expression >>>>> reference. However, that didn't work -- IIRC because the results of the >>>>> translation maintained another reference to the expression. Changing that >>>>> would have had a considerably bigger change footprint, one that I wasn't >>>>> comfortable with. >>>>> >>>> >>>> I later tried that too and discovered that Translate() is actually >>>> called twice and apparently produces different output on the second go. I >>>> haven't yet figured out what input data (or how) is modified to achieve >>>> this effect. >>>> >>>> >>>> /Oskar >>>> >>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "nhibernate-development" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> -- >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "nhibernate-development" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >>
-- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
