On Oct 27, 2008, at 10:49 PM, Mattias Jiderhamn wrote:

I have now filed a report here: http://bugs.caucho.com/view.php? id=3025

Thanks.  I'd already filed a bug, but this has more detail.

-- Scott



 /Mattias

Mattias Jiderhamn wrote (2008-10-24 20:30):

Scott Ferguson wrote (2008-10-23 18:39):

On Oct 22, 2008, at 12:06 PM, Mattias Jiderhamn wrote:


We have a strange problem with Resin that looks like a bug but might
be
some configuration issue.

We hit the bug while storing more than the usual amount of data in a
session (during a process that takes quite a lot of time).
If we narrow things down so we store the same kind of data, although
not
as much (and not using so much time), the error does not come about.
The symptoms are that the slow request seems to finish correcly and
the
data is returned to the browser, however on the next request the
session
does no longer exist. Other sessions does not seem to be affected.
There
are errors in the log file which makes me believe the session is lost
during serializing/deserializing.

With the same input data, the error is always reproducible.

Do you know how large the session is?
>From what I can see about 7 MB.

  Also, does "finer" show anything interesting?

See below if there is anything you consider interesting.

There may be a limit at 64M of session data, but I doubt you're
hitting that. It's possible there's an off-by-one issue at one of the boundaries (since the data is split into fragments). Does adding 1 to
the session length still produce the same error?

A quick test with session.setAttribute("foo", "bar") actually seemed to do the trick! Is there anything specific you would like me to try with regards to this?



Here is the finer log:
...
[18:00:06.234] Transaction[01:908024ea] committing
[18:00:06.234] commit-local: com.caucho.sql.ManagedConnectionImpl [EMAIL PROTECTED]
[18:00:06.328] idle PoolItem[jdbc/exder,7,ManagedConnectionImpl]
[18:00:07.593] Table[srun_:2] allocating block 270 fragment
[18:00:07.609] Table[srun_:2] allocating block 271 fragment
[18:00:07.609] Table[srun_:2] allocating block 272 fragment
(and so on...)
[18:00:08.312] Table[srun_:2] allocating block 333 fragment
[18:00:08.312] Table[srun_:2] allocating block 334 fragment
[18:00:08.343] java.lang.IllegalStateException: block/fragment mixup
[18:00:08.343] at com.caucho.db.store.Inode.writeBlockAddr(Inode.java:1078) [18:00:08.343] at com.caucho.db.store.Inode.appendBlock(Inode.java: 492)
[18:00:08.343]  at com.caucho.db.store.Inode.append(Inode.java:388)
[18:00:08.343] at com .caucho.db.store.BlobOutputStream.flushBlock(BlobOutputStream.java: 188) [18:00:08.343] at com.caucho.db.store.BlobOutputStream.write(BlobOutputStream.java:117) [18:00:08.343] at com.caucho.db.table.BlobColumn.setStream(BlobColumn.java:179) [18:00:08.343] at com.caucho.db.table.BlobColumn.set(BlobColumn.java:267) [18:00:08.343] at com.caucho.db.sql.UpdateQuery.execute(UpdateQuery.java:110) [18:00:08.343] at com .caucho .db.jdbc.PreparedStatementImpl.execute(PreparedStatementImpl.java: 345) [18:00:08.343] at com .caucho .db .jdbc .PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:313) [18:00:08.343] at com .caucho.server.cluster.FileBacking.storeSelfUpdate(FileBacking.java: 524) [18:00:08.343] at com.caucho.server.cluster.FileBacking.storeSelf(FileBacking.java:474) [18:00:08.343] at com.caucho.server.cluster.FileStore.store(FileStore.java:169) [18:00:08.343] at com.caucho.server.cluster.ClusterObject.store(ClusterObject.java:414) [18:00:08.343] at com.caucho.server.session.SessionImpl.save(SessionImpl.java:960) [18:00:08.343] at com .caucho .server.session.SessionImpl.saveAfterRequest(SessionImpl.java:946) [18:00:08.343] at com.caucho.server.session.SessionImpl.finish(SessionImpl.java:908) [18:00:08.343] at com .caucho .server .connection.AbstractHttpRequest.finish(AbstractHttpRequest.java:2506) [18:00:08.343] at com.caucho.server.http.HttpRequest.finish(HttpRequest.java:1466) [18:00:08.343] at com .caucho .server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:212) [18:00:08.343] at com .caucho .server.dispatch.ServletInvocation.service(ServletInvocation.java: 266) [18:00:08.343] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java: 269) [18:00:08.343] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603) [18:00:08.343] at com.caucho.util.ThreadPool $Item.runTasks(ThreadPool.java:721) [18:00:08.343] at com.caucho.util.ThreadPool $Item.run(ThreadPool.java:643)
[18:00:08.343]  at java.lang.Thread.run(Thread.java:595)
[18:00:08.421] Http[15] no-keepalive
[18:00:08.421] Tcp[,15] closing connection TcpConnection[id=http--80-15,socket=JniSocketImpl $15452578[90827352,fd=4488],
port=Port[null:80]], total=13
(... six more...)
[18:01:06.890] Tcp[,6] com.caucho.vfs.ClientDisconnectException: client timeout [18:01:06.890] Tcp[,6] closing connection TcpConnection[id=http--80-6,socket=JniSocketImpl $5256758[90830936,fd=4076],por
t=Port[null:80]], total=11
[18:03:04.875] Database[/c:/temp/resin-sessions]: DELETE FROM srun_ WHERE access_time + 5 * expire_interval / 4 < ?
[18:03:04.875] where-1: static null
[18:03:04.875] where-0: FromItem[srun_ AS srun_] ((srun_.access_time + ((5 * srun_.expire_interval) / 4)) < ?0)
[18:03:04.875] java.lang.ArrayIndexOutOfBoundsException: 48685569
[18:03:04.875] at com.caucho.db.store.Store.deleteFragment(Store.java:1035)
[18:03:04.875]  at com.caucho.db.store.Inode.remove(Inode.java:844)
[18:03:04.875] at com.caucho.db.store.Transaction.writeData(Transaction.java:568) [18:03:04.875] at com.caucho.db.sql.QueryContext.unlock(QueryContext.java:537) [18:03:04.875] at com.caucho.db.sql.RowIterateExpr.nextBlock(RowIterateExpr.java:86)
[18:03:04.875]  at com.caucho.db.sql.Query.nextBlock(Query.java:721)
[18:03:04.875]  at com.caucho.db.sql.Query.nextTuple(Query.java:698)
[18:03:04.875] at com.caucho.db.sql.DeleteQuery.execute(DeleteQuery.java:81) [18:03:04.875] at com .caucho .db.jdbc.PreparedStatementImpl.execute(PreparedStatementImpl.java: 345) [18:03:04.875] at com .caucho .db .jdbc .PreparedStatementImpl.executeUpdate(PreparedStatementImpl.java:313) [18:03:04.875] at com .caucho.server.cluster.FileBacking.clearOldObjects(FileBacking.java: 270) [18:03:04.875] at com.caucho.server.cluster.FileStore.clearOldObjects(FileStore.java: 115) [18:03:04.875] at com .caucho.server.cluster.StoreManager.handleAlarm(StoreManager.java: 636)
[18:03:04.875]  at com.caucho.util.Alarm.handleAlarm(Alarm.java:375)
[18:03:04.875]  at com.caucho.util.Alarm.run(Alarm.java:345)
[18:03:04.875] at com.caucho.util.ThreadPool $Item.runTasks(ThreadPool.java:721) [18:03:04.875] at com.caucho.util.ThreadPool $Item.run(ThreadPool.java:643)
[18:03:04.875]  at java.lang.Thread.run(Thread.java:595)
[18:03:05.750] FileBacking[srun_] purged 1 old sessions
...
[18:08:05.390] Database[/c:/temp/resin-sessions]: DELETE FROM srun_ WHERE access_time + 5 * expire_interval / 4 < ?
[18:08:05.390] where-1: static null
[18:08:05.390] where-0: FromItem[srun_ AS srun_] ((srun_.access_time + ((5 * srun_.expire_interval) / 4)) < ?0)
...
_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to