[ https://issues.apache.org/jira/browse/IGNITE-5601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16066313#comment-16066313 ]
Roman Shtykh edited comment on IGNITE-5601 at 6/28/17 10:37 AM: ---------------------------------------------------------------- Running your tests produces the following output for me {noformat} 重大: Unable to update underlying store: CacheJdbcPojoStore [] javax.cache.integration.CacheWriterException: Failed to write entries in database at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.writeAll(CacheAbstractJdbcStore.java:1151) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.updateStore(GridCacheWriteBehindStore.java:804) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.applyBatch(GridCacheWriteBehindStore.java:720) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.access$2400(GridCacheWriteBehindStore.java:75) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$Flusher.flushCacheCoalescing(GridCacheWriteBehindStore.java:1135) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$Flusher.body(GridCacheWriteBehindStore.java:1006) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLSyntaxErrorException: 'UNEXISTING_COLUMN' is not a column in table or VTI 'DERBY.FOO'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement42.<init>(Unknown Source) at org.apache.derby.jdbc.Driver42.newEmbedPreparedStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.writeAll(CacheAbstractJdbcStore.java:1131) ... 7 more Caused by: ERROR 42X14: 'UNEXISTING_COLUMN' is not a column in table or VTI 'DERBY.FOO'. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumn.bindResultColumnByName(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumnList.bindResultColumnsByName(Unknown Source) at org.apache.derby.impl.sql.compile.InsertNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) ... 13 more 6 28, 2017 7:34:32 午後 org.apache.ignite.logger.java.JavaLogger warning 警告: Failed to update store (value will be lost as current buffer size is greater than 'cacheCriticalSize' or node has been stopped before store was repaired) [key=test.WriteBehindIssueTest$FooKey [idHash=1079871273, hash=-1388553726, id=1], val=test.WriteBehindIssueTest$Foo [idHash=1996018097, hash=574522785, value1=abcd, value2=1234], op=PUT] {noformat} was (Author: roman_s): Running your tests I get {noformat} 重大: Unable to update underlying store: CacheJdbcPojoStore [] javax.cache.integration.CacheWriterException: Failed to write entries in database at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.writeAll(CacheAbstractJdbcStore.java:1151) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.updateStore(GridCacheWriteBehindStore.java:804) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.applyBatch(GridCacheWriteBehindStore.java:720) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.access$2400(GridCacheWriteBehindStore.java:75) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$Flusher.flushCacheCoalescing(GridCacheWriteBehindStore.java:1135) at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore$Flusher.body(GridCacheWriteBehindStore.java:1006) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLSyntaxErrorException: 'UNEXISTING_COLUMN' is not a column in table or VTI 'DERBY.FOO'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement42.<init>(Unknown Source) at org.apache.derby.jdbc.Driver42.newEmbedPreparedStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.writeAll(CacheAbstractJdbcStore.java:1131) ... 7 more Caused by: ERROR 42X14: 'UNEXISTING_COLUMN' is not a column in table or VTI 'DERBY.FOO'. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumn.bindResultColumnByName(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumnList.bindResultColumnsByName(Unknown Source) at org.apache.derby.impl.sql.compile.InsertNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) ... 13 more 6 28, 2017 7:34:32 午後 org.apache.ignite.logger.java.JavaLogger warning 警告: Failed to update store (value will be lost as current buffer size is greater than 'cacheCriticalSize' or node has been stopped before store was repaired) [key=test.WriteBehindIssueTest$FooKey [idHash=1079871273, hash=-1388553726, id=1], val=test.WriteBehindIssueTest$Foo [idHash=1996018097, hash=574522785, value1=abcd, value2=1234], op=PUT] {noformat} > WriteBehind mode hide SQLExceptions > ----------------------------------- > > Key: IGNITE-5601 > URL: https://issues.apache.org/jira/browse/IGNITE-5601 > Project: Ignite > Issue Type: Improvement > Components: jdbc > Affects Versions: 2.0 > Environment: Ignite 2.0.0 > Oracle JDK 1.8.0_121 > Derby 10.13.1.1 > Reporter: Benjamin Garaude > > If an exception, e.g. SQLException occurs during a wite-behind operation, the > exception is lost and appears nowhere in the logs. > The logs basically say: > [2017-06-28 10:48:52] SEVERE: Unable to update underlying store: > CacheJdbcPojoStore [] > [2017-06-28 10:48:52] WARNING: Failed to update store (value will be lost as > current buffer size is greater than 'cacheCriticalSize' or node has been > stopped before store was repaired) [key=test.WriteBehindIssue$FooKey > [idHash=524852907, hash=-1388553726, id=1], val=test.WriteBehindIssue$Foo > [idHash=323347362, hash=574522785, value1=abcd, value2=1234], op=PUT] > If we do the same with write-through mode, it fails by throwing an exception > with the SQLException as cause, deep in the trace. > Would it be possible the write-behind operation logs the SQLException, and > other exception? > You can find a test case showing that here: > https://github.com/bgaraude/IgniteTest -- This message was sent by Atlassian JIRA (v6.4.14#64029)