Hi Wayne,

I think you are facing https://issues.apache.org/jira/browse/WICKET-6639
It is fixed in 7.14.0 and 8.4.0.

On Mon, May 20, 2019 at 6:48 PM Wayne W <waynemailingli...@gmail.com> wrote:

> Hi Sven,
>
> I'm having trouble replicating locally. We just saw it in production and
> then had to roll back as it was effecting customers.  The log is full of
> these:
>
> May 16, 2019 6:39:39 AM org.apache.catalina.session.StandardSession
> setAttribute
> SEVERE: Session binding event listener threw exception
> java.lang.NullPointerException
> at
>
> org.apache.wicket.page.PageStoreManager$SessionEntry.clear(PageStoreManager.java:351)
> at
>
> org.apache.wicket.page.PageStoreManager$SessionEntry.valueUnbound(PageStoreManager.java:340)
> at
>
> org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1496)
> at
>
> org.redisson.tomcat.RedissonSession.superSetAttribute(RedissonSession.java:257)
> at
>
> org.redisson.tomcat.RedissonSessionManager$2.onMessage(RedissonSessionManager.java:284)
> at
>
> org.redisson.tomcat.RedissonSessionManager$2.onMessage(RedissonSessionManager.java:251)
> at
> org.redisson.PubSubMessageListener.onMessage(PubSubMessageListener.java:79)
> at
>
> org.redisson.client.RedisPubSubConnection.onMessage(RedisPubSubConnection.java:78)
> at
>
> org.redisson.client.handler.CommandPubSubDecoder.lambda$enqueueMessage$0(CommandPubSubDecoder.java:184)
> at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at
>
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.lang.Thread.run(Thread.java:745)
>
>
> Then about 2 hours later a huge number of these started to appear in the
> logs:
>
> 2019-05-16 08:52:47,851 ERROR - Wicket-PageSavingThread
>
> org.apache.wicket.pageStore.DiskDataStore$SessionEntry.getFileChannel(DiskDataStore.java:434)
> 434 DiskDataStore              -
>
> /ec/var/tomcat/gc1/work2/ROOT/wicket.hub-filestore/5168/1931/547BB9E7E255B16D5B2864F42B4F9C28.gc1/data
> (No such file or directory)
> java.io.FileNotFoundException:
>
> /ec/var/tomcat/gc1/work2/ROOT/wicket.hub-filestore/5168/1931/547BB9E7E255B16D5B2864F42B4F9C28.gc1/data
> (No such file or directory)
> at java.io.RandomAccessFile.open0(Native Method)
> at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
> at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
> at
>
> org.apache.wicket.pageStore.DiskDataStore$SessionEntry.getFileChannel(DiskDataStore.java:428)
> at
>
> org.apache.wicket.pageStore.DiskDataStore$SessionEntry.savePage(DiskDataStore.java:346)
> at
> org.apache.wicket.pageStore.DiskDataStore.storeData(DiskDataStore.java:185)
> at
>
> org.apache.wicket.pageStore.AsynchronousDataStore$PageSavingRunnable.run(AsynchronousDataStore.java:355)
> at java.lang.Thread.run(Thread.java:745)
>
>
> Whats odd is that it effected some user but not others at all. When we
> rollback to 7.8.0 these go away. I'm not sure how I'm going to get the the
> bottom of this
>
>
>
>
> On Fri, May 17, 2019 at 11:03 PM Sven Meier <s...@meiers.net> wrote:
>
> > Hi,
> >
> > WICKET-6564 was about applications explicitly calling #clear() on the
> > PageStoreManager.
> > This doesn't has anything to do with session expiration.
> >
> > Could you please explain what issues you're facing? A quickstart would
> > be perfect, or at least some explanations how we're able to reproduce
> > the problem.
> >
> > Regards
> > Sven
> >
> >
> > Am 17.05.19 um 13:23 schrieb Wayne W:
> > > Hello Sven,
> > >
> > > the fix you did for WICKET-6564 (
> > >
> >
> https://git-wip-us.apache.org/repos/asf?p=wicket.git;a=commitdiff;h=7665dc5;hp=3a1602d308a366e00948dbf91dbd96bc40cae167
> > )
> > > doesn't work for us. Its causing lots of issues. We use redisson for
> > > managing our sessions in tomcat, so that we can failover without
> loosing
> > > user session.
> > >
> > > When a session attribute is updated redisson calls setAttribute on the
> > > session. Looking at the code for
> > > org.apache.catalina.session.StandardSession.setAttribute I see:
> > >
> > > // Replace or add this attribute
> > >
> > >          Object unbound = attributes.put(name, value);
> > >
> > >
> > >          // Call the valueUnbound() method if necessary
> > >
> > >          *if* (notify && (unbound != *null*) && (unbound != value) &&
> > >
> > >              (unbound *instanceof* HttpSessionBindingListener)) {
> > >
> > >              *try* {
> > >
> > >                  ((HttpSessionBindingListener) unbound).valueUnbound
> > >
> > >                      (*new* HttpSessionBindingEvent(getSession(),
> name));
> > >
> > >              } *catch* (Throwable t) {
> > >
> > >                  ExceptionUtils.*handleThrowable*(t);
> > >
> > >                  manager.getContext().getLogger().error
> > >
> > >                      (*sm*.getString("standardSession.bindingEvent"),
> t);
> > >
> > >              }
> > >
> > >          }
> > >
> > > The valueUnbound is call to notify the object its no longer in the
> > session.
> > > However looking at the change you did for
> > > PageStoreManager.valueUnbound its actually
> > > removing the session by calling clear()
> > >
> > > Doesn't seem correct?? or am I missing something?
> > >
> > >
> > >
> > > On Fri, May 10, 2019 at 1:43 PM Wayne W <waynemailingli...@gmail.com>
> > wrote:
> > >
> > >> Thanks Sven.
> > >>
> > >> On Thu, May 9, 2019 at 8:24 PM Sven Meier <s...@meiers.net> wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> we've had two fixed related to page stores (WICKET-6457, WICKET-6564)
> > so
> > >>> please upgrade to 7.13.0 first.
> > >>>
> > >>> Have fun
> > >>> Sven
> > >>>
> > >>>
> > >>> Am 09.05.19 um 21:10 schrieb Wayne W:
> > >>>> Hi,
> > >>>>
> > >>>> I've take a memory dump of one of our production instances and I'm
> > >>> seeing
> > >>>> about 500MB of memory consumed just by the DiskDataStore which
> doesn't
> > >>> seem
> > >>>> correct to me. Here is a screen shot:
> > >>>>
> > >>>
> >
> https://customerservices.glasscubes.com/share/s/qmvnvrdtm36amme6sdrqg4dp2g
> > >>>> I've highlighted the item - 524,288 items doesn't seem correct for
> > ~500
> > >>>> http sessions?. It seems to me that removeData(*final* String
> > >>> sessionId) is
> > >>>> probably not being called and clearing up the sessionEntryMap.
> Looking
> > >>> at
> > >>>> the call hierarchy I can see how Jetty calls it but I cannot see how
> > >>> tomcat
> > >>>> is calling it.
> > >>>>
> > >>>> Any ideas whats happening?
> > >>>> Wicket 7.8.0, Tomcat 8.0.32
> > >>>>
> > >>>> Thanks
> > >>>>
> > >>> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > >>> For additional commands, e-mail: users-h...@wicket.apache.org
> > >>>
> > >>>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
>

Reply via email to