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

    • Technical task
    • Status: Closed
    • Major
    • Resolution: Pending Closed
    • 1.0.13, 1.2.2
    • 1.0.14, 1.2.3, 1.3.1, 1.4
    • blob, rdbmk

    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

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

            Dates

              Created:
              Updated:
              Resolved: