[ 
https://issues.apache.org/jira/browse/GORA-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13206918#comment-13206918
 ] 

Lewis John McGibbney commented on GORA-84:
------------------------------------------

OK. Can you please close this one off and mark as fixed?

Next things... how familiar are you with Ivy resolvers? ;0)

I need to some help with NUTCH-1204, I suppose we should also upgrade the 
hsqldb and mysql-connector-java stuff over there to latest as well! Were nearly 
there... :0)
                
> SqlStore not thread-safe because of Closed Statements
> -----------------------------------------------------
>
>                 Key: GORA-84
>                 URL: https://issues.apache.org/jira/browse/GORA-84
>             Project: Apache Gora
>          Issue Type: Bug
>          Components: storage-sql
>            Reporter: Ferdy Galema
>         Attachments: GORA-84.patch
>
>
> 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

        

Reply via email to