Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001764 [Resin] minor always 05-29-07 09:22 09-06-07 10:06
Reporter ferg View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version 3.1.1
Summary 0001764: jdbc store corruption
Description (rep by Jan Kriesten)


i'm getting the following exception using resin pro 3.1.1 / jdk 1.6 / mysql /
mysql-connector 5.0.6:

---8<---
[21:01:53.998] java.io.StreamCorruptedException: invalid type code: 00
[21:01:53.998] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
[21:01:53.998] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
[21:01:53.998] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
[21:01:53.998] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
[21:01:53.998] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
[21:01:53.998] at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
[21:01:53.998] at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
[21:01:53.998] at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
[21:01:53.998] at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
[21:01:53.998] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
[21:01:53.998] at com.caucho.server.session.SessionImpl.load(SessionImpl.java:962)
[21:01:53.998] at
com.caucho.server.session.SessionManager.load(SessionManager.java:1507)
[21:01:53.998] at
com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:301)
[21:01:53.998] at com.caucho.server.cluster.JdbcStore.load(JdbcStore.java:221)
[21:01:53.998] at
com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:268)
[21:01:53.998] at com.caucho.server.session.SessionImpl.load(SessionImpl.java:741)
[21:01:53.998] at
com.caucho.server.session.SessionManager.load(SessionManager.java:1444)
[21:01:53.998] at
com.caucho.server.session.SessionManager.getSession(SessionManager.java:1303)
[21:01:53.998] at
com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1455)
[21:01:53.998] at
com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1270)
[21:01:53.998] at
org.apache.wicket.protocol.http.AbstractHttpSessionStore.getSessionId(AbstractHttpSessionStore.java:179)
[21:01:53.998] at org.apache.wicket.Session.bind(Session.java:420)
---8<---

can anyone enlighten me, why this occurs?
Additional Information
Attached Files

- Relationships

- Notes
(0001964)
scruz
05-29-07 14:41

We get a similar exception every once in a while even when using cluster store:

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid type code: AC
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
 at java.util.HashMap.readObject(HashMap.java:1028)
 at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:853)
 at com.caucho.server.session.SessionManager.load(SessionManager.java:1329)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:282)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.load(SessionManager.java:1260)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1121)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)
 at _jsp._myJsp__jsp._jspService(_myJsp__jsp.java:25)
 at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
 at com.caucho.jsp.Page.pageservice(Page.java:570)
 at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:175)
 at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:299)
 at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
 at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:188)
 at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
 at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
 at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
 at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
 at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
 at com.caucho.util.ThreadPool.run(ThreadPool.java:433)
 at java.lang.Thread.run(Thread.java:619)

Other similar examples:

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid stream header: 05706172
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
 at com.caucho.server.cluster.ClusterObject$DistributedObjectInputStream.<init>(ClusterObject.java:468)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:280)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1124)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid type code: 6F
 at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1404)
 at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:650)
 at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:809)
 at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1565)
 at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
 at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
 at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:853)
 at com.caucho.server.session.SessionManager.load(SessionManager.java:1329)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:282)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1124)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid stream header: 00000000
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
 at com.caucho.server.cluster.ClusterObject$DistributedObjectInputStream.<init>(ClusterObject.java:468)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:280)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1124)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid stream header: 00062433
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
 at com.caucho.server.cluster.ClusterObject$DistributedObjectInputStream.<init>(ClusterObject.java:468)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:280)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1124)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)

com.caucho.server.cluster.ClusterObject.load java.io.StreamCorruptedException: invalid type code: 00
 at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2462)
 at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2497)
 at java.io.ObjectInputStream$BlockDataInputStream.skipBlockData(ObjectInputStream.java:2399)
 at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1895)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1872)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
 at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
 at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:853)
 at com.caucho.server.session.SessionManager.load(SessionManager.java:1329)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:282)
 at com.caucho.server.cluster.FileBacking.loadSelf(FileBacking.java:322)
 at com.caucho.server.cluster.ClusterStore.load(ClusterStore.java:408)
 at com.caucho.server.cluster.ClusterObject.load(ClusterObject.java:253)
 at com.caucho.server.session.SessionImpl.load(SessionImpl.java:692)
 at com.caucho.server.session.SessionManager.getSession(SessionManager.java:1124)
 at com.caucho.server.connection.AbstractHttpRequest.createSession(AbstractHttpRequest.java:1367)
 at com.caucho.server.connection.AbstractHttpRequest.getSession(AbstractHttpRequest.java:1179)

Some days are worse than others, but on average it happens about once or twice per day.
 
(0001965)
scruz
05-29-07 14:46

Sorry, I forgot some information. We have seen this on Resin Pro 3.0.19 and 3.0.23. We are using Sun JDK 1.6.0 Update 1 on RHEL4. The logs are writing to a local filesystem (not over NFS).
 
(0002118)
ferg
07-19-07 09:17

Proposed fix partially backed out.
 
(0002274)
ferg
09-06-07 10:06

I haven't been able to duplicate this exact situation, but have cleaned up the persistence code though code review.

If this problem exists, please switch to hessian serialization and report that stack trace (it may give better information than the java.io serialization gives):

<session-config serialization-type="hessian"/>
 

- Issue History
Date Modified Username Field Change
05-29-07 09:22 ferg New Issue
05-29-07 14:41 scruz Note Added: 0001964
05-29-07 14:46 scruz Note Added: 0001965
05-29-07 15:38 scruz Issue Monitored: scruz
06-21-07 16:02 ferg Assigned To  => ferg
06-21-07 16:02 ferg Status new => closed
06-21-07 16:02 ferg Resolution open => fixed
06-21-07 16:02 ferg Fixed in Version  => 3.1.2
07-19-07 09:17 ferg Note Added: 0002118
07-19-07 09:17 ferg Status closed => assigned
09-06-07 10:06 ferg Note Added: 0002274
09-06-07 10:06 ferg Status assigned => closed
09-06-07 10:06 ferg Fixed in Version 3.1.2 => 3.1.3


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
36 total queries executed.
29 unique queries executed.
Powered by Mantis Bugtracker