Yeah... an actual case of "select is broken". Who would have thought.

Jira issue:
https://nhibernate.jira.com/browse/NH-3579

Pull request:
https://github.com/nhibernate/nhibernate-core/pull/244

I based the patch off the master branch -- figured that someone else will 
be a better judge of what to backport to earlier versions.

-Lauri

On Monday, December 16, 2013 1:15:21 PM UTC+2, Gunnar Liljas wrote:
>
> It's troubling that the leak occurred in the first place.
>
> /G
>
>
> 2013/12/15 Lauri Kotilainen <[email protected] <javascript:>>
>
>> Which part is troubling? The part about the leak or the part about having 
>> the query plan cache end up constructing the expression?
>>
>> If it's the latter, I did try other approaches too. I don't really like 
>> heavy ctors either, but the QPC and NhLinqExpressions are used in a variety 
>> of ways, and all the alternatives I could think of ended up causing 
>> breakage all over the place. This might be due to the fact that I don't 
>> have a very good mental map of the dependencies yet, though.
>>
>> I'll file an issue soon-ish with the changes you proposed to the test. 
>>
>> -Lauri
>>
>> On Friday, December 13, 2013 2:41:36 PM UTC+2, Gunnar Liljas wrote:
>>
>>> So far it looks OK, although it's a bit troubling that the query plan 
>>> cache does this. I'm not a big fan of heavy constructors, but in this case 
>>> it makes some sense. 
>>>
>>> I think you can make your test behave correctly (i.e fail when it 
>>> should) by adding a second pass of GC.Collect()
>>>
>>> A JIRA issue and an accompanying unit test (for now, remove the 
>>> dependency on SQLite) would be nice.
>>>
>>> /G
>>>
>>>
>>> 2013/12/12 Gunnar Liljas <[email protected]>
>>>
>>>> Great work, Lauri!
>>>>
>>>> I'll do some tests tomorrow, just to give you feedback.
>>>>
>>>> /G
>>>>
>>>>
>>>>
>>>> 2013/12/11 Lauri Kotilainen <[email protected]>
>>>>
>>>> Hi,
>>>>>
>>>>> I originally posted the description of this issue to the nhusers list:
>>>>>
>>>>> https://groups.google.com/d/topic/nhusers/v_6WCod79XE/discussion
>>>>>
>>>>> and I won't waste bits by pasting the entire description here unless 
>>>>> it's deemed necessary. Anyway, I think I have a patch that fixes the 
>>>>> session leak, but I don't understand the big picture well enough to 
>>>>> evaluate whether or not it's a safe change. Essentially, what I did was 
>>>>> move most of the code from NhLinqExpression.Translate to the 
>>>>> NhLinqExpression constructor and eliminated the _expression field, making 
>>>>> it a local variable in the ctor. It didn't cause any test failures in the 
>>>>> master branch, and after I backported it to the 3.4.x branch and tested 
>>>>> with the problematic application, the leak is gone (according to ANTS 
>>>>> profiler).
>>>>>
>>>>> Here's the patch:
>>>>> https://gist.github.com/rytmis/3735cfc274e135aae753
>>>>>
>>>>> 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.
>>>>>
>>>>> What I would like to know at this point is whether the change is 
>>>>> likely to cause performance regressions or other unexpected side effects.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -Lauri
>>>>>
>>>>> -- 
>>>>>  
>>>>> --- 
>>>>> 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]<javascript:>
>> .
>> 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.

Reply via email to