PS: do you intercept yourself? Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau
2013/10/31 Romain Manni-Bucau <[email protected]>: > well it is normal it happens the second time since it was unserialized > once then it needs to be reserialized but when it has missing info I > think. > > That said now you see which beans are creating it, do you think you > can reproduce it? > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2013/10/31 <[email protected]>: >> It looks like OWB is trying to serialize just regular CDI bean(which is not >> an interceptor) as interceptor. Please note that it happens only when >> session is replicated second time. That bean(UserSettings) is in >> interceptors map of DefaultInterceptor handler with "null" key. >> There is screenshot of how it looks like in debugger: >> https://drive.google.com/file/d/0B1jOAi2N2uY8Wk5IdXZrb2J0ZTA/edit?usp=sharing >> >> >> -----Ursprüngliche Nachricht----- >> Von: Romain Manni-Bucau [mailto:[email protected]] >> Gesendet: Donnerstag, 31. Oktober 2013 06:51 >> An: [email protected] >> Betreff: Re: AW: Session replication in TomEE 1.6.0-SNAPSHOT >> >> to give some details it happens when an interceptor is not serializable (see >> last method of >> https://svn.apache.org/repos/asf/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DefaultInterceptorHandler.java) >> >> it should be easy to debug this method to see just the level upper which >> bean you deserialize and then identify the missing interceptor. >> >> can you try it? >> Romain Manni-Bucau >> Twitter: @rmannibucau >> Blog: http://rmannibucau.wordpress.com/ >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> Github: https://github.com/rmannibucau >> >> >> >> 2013/10/30 Romain Manni-Bucau <[email protected]>: >>> Hi >>> >>> In a war no idea, maybe active tomcat FINE logs >>> >>> Le 30 oct. 2013 19:14, <[email protected]> a écrit : >>> >>>> Hi! >>>> >>>> I have just tested replication in tomee-1.6.0-20131030.065404-219. >>>> OWB Bug seems to be fixed, but there is new one. >>>> The First replication works perfect, but after session migration to >>>> another node I've got following exeception: >>>> >>>> java.io.NotSerializableException: null is not serializable >>>> at >>>> org.apache.webbeans.intercept.DefaultInterceptorHandler.serializeInterceptor(DefaultInterceptorHandler.java:266) >>>> at >>>> org.apache.webbeans.intercept.DefaultInterceptorHandler.writeExternal(DefaultInterceptorHandler.java:183) >>>> at >>>> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1443) >>>> at >>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1414) >>>> at >>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> at >>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) >>>> at >>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) >>>> at >>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) >>>> at >>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> at >>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >>>> at >>>> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeExternal(DeltaRequest.java:392) >>>> at >>>> org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequest.java:285) >>>> at >>>> org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest.java:299) >>>> at >>>> org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java:143) >>>> at >>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate(AbstractReplicatedMap.java:426) >>>> at >>>> org.apache.catalina.ha.session.BackupManager.requestCompleted(BackupManager.java:121) >>>> at >>>> org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.java:539) >>>> at >>>> org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(ReplicationValve.java:526) >>>> at >>>> org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMessage(ReplicationValve.java:508) >>>> at >>>> org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(ReplicationValve.java:421) >>>> at >>>> org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:345) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) >>>> at >>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) >>>> at >>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) >>>> at >>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >>>> at java.lang.Thread.run(Thread.java:722) >>>> >>>> After that session replication stops working at all. Unfortunately I >>>> can't reproduce the issue with my sample application. Could you give >>>> me a clue how to reproduce this in simple app? >>>> >>>> Regards, >>>> Dmitry Volkov. >>>> >>>> -----Ursprüngliche Nachricht----- >>>> Von: Romain Manni-Bucau [mailto:[email protected]] >>>> Gesendet: Dienstag, 6. August 2013 12:18 >>>> An: [email protected] >>>> Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>>> >>>> Hi, >>>> >>>> that's an OWB issue (no link with clustering) >>>> >>>> i'll push it over OWB list. Thanks for the report. >>>> >>>> *Romain Manni-Bucau* >>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>> *Blog: >>>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com >>>> /> >>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>> *Github: https://github.com/rmannibucau* >>>> >>>> >>>> >>>> 2013/8/6 <[email protected]> >>>> >>>> > Hi >>>> > >>>> > There is the sample app: https://github.com/eiskonzept/tomee >>>> > Package the application and start two tomee instances with tomee >>>> > maven plugin (maven profiles "node1" and "node2"). Then open >>>> > /index.xhtml from application root. >>>> > >>>> > The issue can be reproduced when replicated CDI bean is intercepted >>>> > by CDI interceptor. >>>> > >>>> > >>>> > >>>> > -----Ursprüngliche Nachricht----- >>>> > Von: Romain Manni-Bucau [mailto:[email protected]] >>>> > Gesendet: Montag, 5. August 2013 10:10 >>>> > An: [email protected] >>>> > Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>>> > >>>> > Hi >>>> > >>>> > can you reproduce it in a sample? >>>> > >>>> > *Romain Manni-Bucau* >>>> > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>> > *Blog: **http://rmannibucau.wordpress.com/*< >>>> > http://rmannibucau.wordpress.com/> >>>> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>> > *Github: https://github.com/rmannibucau* >>>> > >>>> > >>>> > >>>> > 2013/8/5 <[email protected]> >>>> > >>>> > > I have tested replication with last 1.6.0-SNAPSHOT and got >>>> > > following >>>> > > exception: >>>> > > >>>> > > java.io.NotSerializableException: >>>> > > org.apache.webbeans.intercept.DefaultInterceptorHandler >>>> > > at >>>> > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >>>> > > at >>>> > > >>>> > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>>> > 1528) >>>> > > at >>>> > > >>>> > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) >>>> > > at >>>> > > >>>> > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.j >>>> > ava >>>> > :1416) >>>> > > at >>>> > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> > > at >>>> > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeExte >>>> > rna >>>> > l(DeltaRequest.java:392) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRequ >>>> > est >>>> > .java:285) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaRequest. >>>> > jav >>>> > a:299) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java: >>>> > 143) >>>> > > at >>>> > > >>>> > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate(Ab >>>> > str >>>> > actReplicatedMap.java:424) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.session.BackupManager.requestCompleted(Backu >>>> > pMa >>>> > nager.java:104) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve.j >>>> > ava >>>> > :539) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replication >>>> > Val >>>> > ve.java:526) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationM >>>> > ess >>>> > age(ReplicationValve.java:508) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage( >>>> > Rep >>>> > licationValve.java:421) >>>> > > at >>>> > > >>>> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve >>>> > .ja >>>> > va:345) >>>> > > at >>>> > > >>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.j >>>> > ava >>>> > :408) >>>> > > at >>>> > > >>>> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHt >>>> > tp1 >>>> > 1Processor.java:1023) >>>> > > at >>>> > > >>>> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.proces >>>> > s(A >>>> > bstractProtocol.java:589) >>>> > > at >>>> > > >>>> > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpo >>>> > int >>>> > .java:312) >>>> > > at >>>> > > >>>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecuto >>>> > r.j >>>> > ava:1110) >>>> > > at >>>> > > >>>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. >>>> > java:603) >>>> > > at java.lang.Thread.run(Thread.java:722) >>>> > > >>>> > > -----Ursprüngliche Nachricht----- >>>> > > Von: Romain Manni-Bucau [mailto:[email protected]] >>>> > > Gesendet: Freitag, 2. August 2013 16:15 >>>> > > An: [email protected] >>>> > > Betreff: Re: Session replication in TomEE 1.6.0-SNAPSHOT >>>> > > >>>> > > Hi, >>>> > > >>>> > > just commited sthg about it, not sure it is linked but i think so. >>>> > > >>>> > > *Romain Manni-Bucau* >>>> > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>> > > *Blog: **http://rmannibucau.wordpress.com/*< >>>> > > http://rmannibucau.wordpress.com/> >>>> > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>> > > *Github: https://github.com/rmannibucau* >>>> > > >>>> > > >>>> > > >>>> > > 2013/8/2 <[email protected]> >>>> > > >>>> > > > Hi! >>>> > > > >>>> > > > I have just tested session replication in TomEE 1.6.0-SNAPSHOT >>>> > > > and got following exception: >>>> > > > >>>> > > > java.io.NotSerializableException: >>>> > > > org.apache.tomee.catalina.cdi.SessionNormalScopeBeanHandler$1 >>>> > > > at >>>> > > > >>>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>>> > > 1528) >>>> > > > at >>>> > > > >>>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>>> > 149 >>>> > 3) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>>> > > .ja >>>> > > va >>>> > > :1416) >>>> > > > at >>>> > > > >>>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>>> > > 1528) >>>> > > > at >>>> > > > >>>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>>> > 149 >>>> > 3) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>>> > > .ja >>>> > > va >>>> > > :1416) >>>> > > > at >>>> > > > >>>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: >>>> > > 1528) >>>> > > > at >>>> > > > >>>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: >>>> > 149 >>>> > 3) >>>> > > > at >>>> > > > >>>> > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream >>>> > > .ja >>>> > > va >>>> > > :1416) >>>> > > > at >>>> > > > >>>> > > > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >>>> > > > at >>>> > > > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.writeEx >>>> > > ter >>>> > > na >>>> > > l(DeltaRequest.java:392) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.session.DeltaRequest.writeExternal(DeltaRe >>>> > > que >>>> > > st >>>> > > .java:285) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.session.DeltaRequest.serialize(DeltaReques >>>> > > t.j >>>> > > av >>>> > > a:299) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.session.DeltaSession.getDiff(DeltaSession.java: >>>> > > 143) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replicate( >>>> > > Abs >>>> > > tr >>>> > > actReplicatedMap.java:424) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.session.BackupManager.requestCompleted(Bac >>>> > > kup >>>> > > Ma >>>> > > nager.java:104) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.tcp.ReplicationValve.send(ReplicationValve >>>> > > .ja >>>> > > va >>>> > > :539) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendMessage(Replicati >>>> > > onV >>>> > > al >>>> > > ve.java:526) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicatio >>>> > > nMe >>>> > > ss >>>> > > age(ReplicationValve.java:508) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessag >>>> > > e(R >>>> > > ep >>>> > > licationValve.java:421) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve. >>>> > > ja >>>> > > va:345) >>>> > > > at >>>> > > > >>>> > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter >>>> > > .ja >>>> > > va >>>> > > :408) >>>> > > > at >>>> > > > >>>> > > org.apache.coyote.http11.AbstractHttp11Processor.process(Abstract >>>> > > Htt >>>> > > p1 >>>> > > 1Processor.java:1023) >>>> > > > at >>>> > > > >>>> > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.proc >>>> > > ess >>>> > > (A >>>> > > bstractProtocol.java:589) >>>> > > > at >>>> > > > >>>> > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEnd >>>> > > poi >>>> > > nt >>>> > > .java:310) >>>> > > > at >>>> > > > >>>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecu >>>> > > tor >>>> > > .j >>>> > > ava:1110) >>>> > > > at >>>> > > > >>>> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. >>>> > > java:603) >>>> > > > at java.lang.Thread.run(Thread.java:722) >>>> > > > >>>> > > > Tested application uses CDI, CODI and EJB 3.0 Stateless beans. >>>> > > > >>>> > > > Best regards, >>>> > > > Dmitry Volkov >>>> > > > >>>> > > > >>>> > > > >>>> > > >>>> >
