[ https://issues.apache.org/jira/browse/OAK-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15125371#comment-15125371 ]
Tomek Rękawek commented on OAK-3937: ------------------------------------ My observation is that on the PostgreSQL, if we have a bulk INSERT and there's a conflict, the {{BatchUpdateException#getUpdateCounts}} returns positive update count even for rows that haven't been successfully created. Attached patch ignores the {{BatchUpdateException#getUpdateCounts}} values on PostgreSQL. > Batch createOrUpdate() may fail with primary key violation > ---------------------------------------------------------- > > Key: OAK-3937 > URL: https://issues.apache.org/jira/browse/OAK-3937 > Project: Jackrabbit Oak > Issue Type: Technical task > Components: core, rdbmk > Reporter: Marcel Reutegger > Fix For: 1.4 > > Attachments: OAK-3937.patch > > > In some cases the batch createOrUpdate() method may fail on RDBMK with a > primary key violation exception. > {noformat} > java.lang.AssertionError: > org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: > org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: > "PRIMARY_KEY_1 ON PUBLIC.DSTEST_NODES(ID) VALUES ('1:/node-40', 118)"; SQL > statement: > insert into dstest_NODES(ID, MODIFIED, HASBINARY, DELETEDONCE, MODCOUNT, > CMODCOUNT, DSIZE, DATA, BDATA) values (?, ?, ?, ?, ?, ?, ?, ?, ?) [23505-185] > {noformat} > See the currently disabled test > {{MultiDocumentStoreTest.concurrentBatchUpdate()}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)