Mantis - Resin
Viewing Issue Advanced Details
1470 minor always 11-21-06 15:49 11-30-06 12:28
ferg  
ferg  
normal  
closed 3.0.22  
fixed  
none    
none 3.0.23  
0001470: jdbcstore insert issue
(rep by Shane Cruz)

We are seeing problems with the JdbcStore with Resin Pro 3.0.22. It has always worked fine with previous versions, but we are seeing the following exception when we use the <save-mode>before-headers</save-mode> session configuration:
 
[18:54:33.814] com.caucho.log.EnvironmentLogger.log java.sql.SQLException: Duplicate key or integrity constraint violation message from server: "Duplicate entry 'www.mysite.edu_08080__MyApp;abcddb_nINlOW6ispYh' for key 1"
[18:54:33.814] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
[18:54:33.814] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
[18:54:33.814] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
[18:54:33.814] at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
[18:54:33.814] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1772)
[18:54:33.814] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1619)
[18:54:33.814] at com.caucho.sql.UserPreparedStatement.executeUpdate(UserPreparedStatement.java:117)
[18:54:33.814] at com.caucho.sql.UserPreparedStatement.executeUpdate(UserPreparedStatement.java:117)
[18:54:33.814] at com.caucho.server.cluster.JdbcStore.store(JdbcStore.java:335)
[18:54:33.814] at com.caucho.server.cluster.ClusterObject.store(ClusterObject.java:411)
[18:54:33.814] at com.caucho.server.session.SessionImpl.save(SessionImpl.java:861)
[18:54:33.814] at com.caucho.server.session.SessionImpl.saveBeforeHeaders(SessionImpl.java:838)
[18:54:33.814] at com.caucho.server.connection.AbstractHttpResponse.writeHeaders(AbstractHttpResponse.java:1558)
[18:54:33.814] at com.caucho.server.connection.ResponseStream.writeHeaders(ResponseStream.java:216)
[18:54:33.814] at com.caucho.server.connection.ResponseStream.writeNext(ResponseStream.java:401)
[18:54:33.814] at com.caucho.server.connection.ToByteResponseStream.flushByteBuffer(ToByteResponseStream.java:518)
[18:54:33.814] at com.caucho.server.connection.ToByteResponseStream.flushBuffer(ToByteResponseStream.java:424)
[18:54:33.814] at com.caucho.server.connection.ResponseStream.finish(ResponseStream.java:664)
[18:54:33.814] at com.caucho.server.connection.AbstractHttpResponse.finish(AbstractHttpResponse.java:1958)
[18:54:33.814] at com.caucho.server.connection.AbstractHttpResponse.finish(AbstractHttpResponse.java:1927)
[18:54:33.814] at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:482)
[18:54:33.814] at com.caucho.server.connection.AbstractHttpResponse.sendError(AbstractHttpResponse.java:440)
[18:54:33.814] at com.caucho.servlets.FileServlet.service(FileServlet.java:267)
[18:54:33.814] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
[18:54:33.814] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:209)
[18:54:33.814] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
[18:54:33.814] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[18:54:33.814] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[18:54:33.814] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
[18:54:33.814] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[18:54:33.814] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[18:54:33.814] at java.lang.Thread.run(Thread.java:595)
 
If I remove the save-mode configuration, we get a slightly different stack trace:
 
[14:46:55.236] com.caucho.log.EnvironmentLogger.log java.sql.SQLException: Duplicate key or integrity constraint violation message from server: "Duplicate entry 'www.mysite.edu_08080__MyApp;abcDSulG1TIm8gwmOdm' for key 1"
[14:46:55.236] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
[14:46:55.236] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
[14:46:55.236] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
[14:46:55.236] at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
[14:46:55.236] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1772)
[14:46:55.236] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1619)
[14:46:55.236] at com.caucho.sql.UserPreparedStatement.executeUpdate(UserPreparedStatement.java:117)
[14:46:55.236] at com.caucho.sql.UserPreparedStatement.executeUpdate(UserPreparedStatement.java:117)
[14:46:55.236] at com.caucho.server.cluster.JdbcStore.store(JdbcStore.java:335)
[14:46:55.236] at com.caucho.server.cluster.ClusterObject.store(ClusterObject.java:411)
[14:46:55.236] at com.caucho.server.session.SessionImpl.save(SessionImpl.java:861)
[14:46:55.236] at com.caucho.server.session.SessionImpl.saveAfterRequest(SessionImpl.java:850)
[14:46:55.236] at com.caucho.server.session.SessionImpl.finish(SessionImpl.java:811)
[14:46:55.236] at com.caucho.server.connection.AbstractHttpRequest.finish(AbstractHttpRequest.java:2389)
[14:46:55.236] at com.caucho.server.http.HttpRequest.finish(HttpRequest.java:1422)
[14:46:55.236] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:211)
[14:46:55.236] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[14:46:55.236] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[14:46:55.236] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
[14:46:55.236] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[14:46:55.236] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[14:46:55.236] at java.lang.Thread.run(Thread.java:595)
 
The real weird part is that this only seems to be happening for some of our sites, but not all of them (all sites are running the same webapp). Unfortunately this JSP is doing some javascript redirects, so I wonder if that has something to do with it.
 
Has anybody else noticed this? We are using regular expressions to specify the virtual hosts, but we have always done that and never saw problems with 3.0.12, 3.0.14, or 3.0.19 (wasn?t tested extensively).
 

Notes
(0001619)
ferg   
11-30-06 12:28   
server/01jb, server/01jc