[ https://issues.apache.org/jira/browse/GORA-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13191107#comment-13191107 ]
Ferdy Galema commented on GORA-84: ---------------------------------- We can put this issue on hold until the set of libraries is updated and well. Perhaps this issue will be superseded in the process. > SqlStore not thread-safe because of Closed Statements > ----------------------------------------------------- > > Key: GORA-84 > URL: https://issues.apache.org/jira/browse/GORA-84 > Project: Gora > Issue Type: Bug > Components: storage-sql > Reporter: Ferdy Galema > > In some multithreaded test code (actually Nutchgora TestGoraStorage) the > current trunk of Gora SqlStore fails because of Closed Statements: > Caused by: java.sql.SQLException: statement is closed > at org.hsqldb.jdbc.Util.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCPreparedStatement.executeBatch(Unknown Source) > at org.apache.gora.sql.store.SqlStore.flush(SqlStore.java:329) > ... 9 more > Caused by: org.hsqldb.HsqlException: statement is closed > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.Session.executeCompiledBatchStatement(Unknown Source) > at org.hsqldb.Session.execute(Unknown Source) > ... 11 more > I am not sure why this problem suddenly arises as I could not find relevant > changes in the SqlStore related code. > The problem is caused of incorrectly synchronized code when buffering and > flushing put requests. Some statements are accidently shared between threads > because of the shared write buffer (the HashSet writeCache). So it may happen > that some closed statements are trying to be executed, raising the above > exception. When I disabled SqlUtils.close() by making the method empty, the > tests worked again. So that is the lazy man's solution: Disable the > writeCache. > I suggest that somebody who is more into maintaining this store fixes it user > a better solution (proper synchronization). When there is no interest in > doing so, I can still always implement the lazy man's solution :) > By the way, the fact that this error was not detected in Gora's own tests > suggests that we might want to expand it's coverage. This is in line what was > already mentioned a few days ago on the dev list ("inconsistencies in > TestXXXStore"). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira