Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-1266 DocumentStore implementation for relational databases
  3. OAK-2860

RDBBlobStore: seen insert failures due to duplicate keys

    XMLWordPrintableJSON

    Details

    • Type: Technical task
    • Status: Closed
    • Priority: Major
    • Resolution: Pending Closed
    • Affects Version/s: 1.0.13, 1.2.2
    • Fix Version/s: 1.0.14, 1.2.3, 1.3.1, 1.4
    • Component/s: blob, rdbmk
    • Labels:

      Description

      In production, we've seen exceptions like this:

       org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobStore insert document failed for id bd89b0745aa22429234f17dfc3e2a35b744dc6e86f5e8094a4153b2366c4d822 w
      ith length 14691 (check max size of datastore_data.data)
      com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1;DB2INST1.DATASTORE_DATA, DRIVER=4.16.53
              at com.ibm.db2.jcc.am.fd.a(fd.java:735)
              at com.ibm.db2.jcc.am.fd.a(fd.java:60)
              at com.ibm.db2.jcc.am.fd.a(fd.java:127)
              at com.ibm.db2.jcc.am.to.b(to.java:2422)
              at com.ibm.db2.jcc.am.to.c(to.java:2405)
              at com.ibm.db2.jcc.t4.ab.l(ab.java:408)
              at com.ibm.db2.jcc.t4.ab.a(ab.java:62)
              at com.ibm.db2.jcc.t4.o.a(o.java:50)
              at com.ibm.db2.jcc.t4.ub.b(ub.java:220)
              at com.ibm.db2.jcc.am.uo.sc(uo.java:3526)
              at com.ibm.db2.jcc.am.uo.b(uo.java:4489)
              at com.ibm.db2.jcc.am.uo.mc(uo.java:2833)
              at com.ibm.db2.jcc.am.uo.execute(uo.java:2808)
              at sun.reflect.GeneratedMethodAccessor941.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:600)
              at org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:235)
              at com.sun.proxy.$Proxy259.execute(Unknown Source)
              at sun.reflect.GeneratedMethodAccessor941.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:600)
              at org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:252)
              at com.sun.proxy.$Proxy259.execute(Unknown Source)
              at org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobStore.storeBlockInDatabase(RDBBlobStore.java:374)
              at org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobStore.storeBlock(RDBBlobStore.java:340)
      

      This seems to indicate that they key is present in _data but not in _meta. We need to find out whether that's caused by an earlier problem, or whether storeInBlock is supposed to handle this.

      (Note that the actual exception message about "check max size of datastore_data.data" is misleading; it's due to an earlier attempt to diagnose DB config problems)

        Attachments

        1. OAK-2860.diff
          9 kB
          Julian Reschke

          Activity

            People

            • Assignee:
              reschke Julian Reschke
              Reporter:
              reschke Julian Reschke
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: