On Thu, Jan 12, 2023 at 10:21 AM Tobias Gierke
<tobias.gie...@voipfuture.com.invalid> wrote:

> Hi Martin,
>
> I wonder why people create images of plain text to paste it in text
> context (email) ... It just makes it hard to do anything with this text,
> e.g. to copy/paste the relevant part!
>
> Good point, will try to better myself ;)
>

You did it again! :-)

>
> In your first email the CacheKey says that the scope is o.a.w.Application,
> but here we see that it actually is
> com.vodecc.voipmng....PageWithLoginScreenLayout
>
> The heap dump I'm talking about in my first e-mail is from one of our
> largest customers and was provided to me by one of our support guys.
> Because the code is running inside a highly secured internal network (telco
> business), I cannot do any remote debugging there. So my debugger
> screenshots are taken on my local dev machine running the same GIT tag.
> There's only a single page in the whole application where those resources
> (except for the PNG image which is used elsewhere as well) are being used -
> and that is the application's login page.
>
> the "name" is "css/qrystal.css"
> and there are no locale/style/variation at all in the url (link's href),
> as expected
>
> I probably didn't explain this very well, the memory leak happens during
> processing of the "redirect to login page" AJAX request triggered when a
> user clicks a button on our "session expired" page (see below) and we
> perform an internal redirect to the login page.
>
>
> Does it help if you change the above to
setResponsePage(WicketLoginPage.class, p) ?

> also there is no page instance information in the css' href (pageId,
> renderCount, behaviorId)...
> the hashing 167344540504 is not related to the CacheKey
>
> I'd suggest you to put a conditional breakpoint at
> WicketFilter#processFilter() and see whether there are requests to url that
> contains both "o.a.w.Application" and "qrystal-login"
> If this does not break then do the same in CacheKey constructor
>
>
> 1.) Put a conditional breakpoint on "key.style != null" in
> CachingResourceStreamLocator#updateCache()
>
> As I've said before, we're never calling WebSession#setStyle() so this
> breakpoint should never trigger.
>
> 2.) After starting the application in debug mode, I enter the URL of a
> mounted,protected (=login required) page into the browser's navigation bar
> and am being redirected to our application's "Page expired/Login required"
> page with the AJAX button mentioned above.
>
> 3.) Clicking the AJAX button immediately makes the debugger stop at the
> "impossible" breakpoint
>
>
> 3.) Going up the call stack to the WicketFilter class shows that the
> request currently being processed is in fact the AJAX request triggered by
> the "Go to login page" button
>
>
> The "CacheKey.style" is "1.0" which matches what is present in the request
> URL.
>
> So the memory leak happens during rendering the response for "onclick"
> AJAX request, which is our login page.
>

I see!

Can you reproduce this in a quickstart ?

Reply via email to