<div dir="ltr">I think i got one half of it. The key in ExpressionFactory.cache was breaking the hashCode-equals contract, because LayeredRefinedAttributeDefinitionImpl breaks it by calling super.hashCode() and super happens to be ... java.lang.Object returning a magic number for every instance.<div><br></div><div>Please see <a href="https://github.com/Evolveum/midpoint/pull/60">https://github.com/Evolveum/midpoint/pull/60</a></div><div><br></div><div>Would still like to hear some comment on the second half - all users with their xml detail in a single result set in memory. Any idea where this may be comming from?</div><div><br></div><div>thanks</div><div>arnost</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-12-22 9:36 GMT+01:00 Radovan Semancik <span dir="ltr"><<a href="mailto:radovan.semancik@evolveum.com" target="_blank">radovan.semancik@evolveum.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 12/21/2017 03:14 PM, Arnošt Starosta - AMI Praha a.s. wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
There may be a memory leak in com.evolveum.midpoint.repo.<wbr>common.expression.ExpressionFa<wbr>ctory.cache, there are milions of Expressions cached there, see the attached screenshot. I can only guess this is not the desired behavior, there may a bug in ExpressionIdentifier.hashCode(<wbr>) or there is no eviction?<br>
</blockquote>
<br></span>
There is indeed no eviction. But, new expression should get into the cache only if expression code is changed. Which should be a very rare event in production environment. And development environments usually get restarted quite often, therefore we haven't run into any problems with this so far.<br>
Making efficient cache eviction is not easy. Time-based eviction may impact performance or won't be efficient at all if we do not get the parameters right. Size-based eviction, LRU and so on may get a bit complex and the impact is questionable. Therefore we have decided to keep things simple here.<br>
<br>
Still, there may be a bug that expressions are not properly reused from cache. Please use the usual channels to report a bug.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Radovan Semancik<br>
Software Architect<br>
<a href="http://evolveum.com" rel="noreferrer" target="_blank">evolveum.com</a><br>
<br>
______________________________<wbr>_________________<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a><br>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/mail<wbr>man/listinfo/midpoint</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10.3846px"></p><table style="font-family:Verdana,Arial,Helvetica,sans-serif;border-collapse:collapse;padding:0px;margin:0px;border-width:0px!important;border-style:solid!important;width:482px!important"><tbody><tr style="padding:0px;margin:0px;border:0px solid gray!important"><td style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;width:160px;vertical-align:bottom;padding:0px;border:0px solid gray!important"><p><span style="font-size:14px;font-weight:bold">Arnošt Starosta</span><br>solution architect<br><br>gsm: [+420] 603 794 932<br>e-mail: <a href="mailto:arnost.starosta@ami.cz" target="_blank">arnost.starosta@ami.cz</a></p></td><td style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-right:1px solid rgb(204,204,204);padding:0px;border-top:0px solid gray!important;border-bottom:0px solid gray!important;border-left:0px solid gray!important">   </td><td style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px solid gray!important">   </td><td style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;vertical-align:bottom;padding:0px;width:123px;border:0px solid gray!important"><p>AMI Praha a.s.<br>Pláničkova 11<br>162 00 Praha 6<br>tel.: [+420] 274 783 239<br>web: <a href="http://www.ami.cz/" target="_blank">www.ami.cz</a></p></td><td style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;border-right:1px solid rgb(204,204,204);padding:0px;border-top:0px solid gray!important;border-bottom:0px solid gray!important;border-left:0px solid gray!important">   </td><td style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;border:0px solid gray!important">   </td><td style="color:rgb(0,0,0);font-family:Arial,sans-serif;font-size:11px;margin:8px;border:0px solid gray!important;width:116px"><p><img src="http://www.ami.cz/images/podpis/ami_logo.gif" alt="AMI Praha a.s." style="border:0px"></p></td></tr><tr style="padding:0px;margin:0px;border:0px solid gray!important"><td colspan="7" style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:10px;padding:0px;width:480px;border:0px solid gray!important"><br><a href="http://www.ami.cz/reseni-a-sluzby/bezpecnost-dat/identity-management" target="_blank"><img src="http://www.ami.cz/images/podpis/AMI-podpis-IdM_1.png" alt="AMI Praha a.s." style="border:0px;width:480px!important;height:82px!important"></a></td></tr><tr style="padding:0px;margin:0px;border:0px solid gray!important"><td colspan="7" style="color:rgb(128,128,128);font-family:Arial,sans-serif;font-size:11px;padding:0px;border:0px solid gray!important"><br>Textem tohoto e-mailu podepisující neslibuje uzavřít ani neuzavírá za společnost AMI Praha a.s.<br>jakoukoliv smlouvu. Každá smlouva, pokud bude uzavřena, musí mít výhradně písemnou formu.<br><br></td></tr></tbody></table></div></div></div></div>
</div>