Uploaded image for project: 'Artifactory Binary Repository'
  1. Artifactory Binary Repository
  2. RTFACT-5835

Insert binary failure marks PostgreSQL transaction as aborted

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 3.0.2
    • Fix Version/s: 3.0.3
    • Component/s: Artifact Storage
    • Labels:
    • Environment:

      PostgreSQL heavy insert

      Description

      In PostgreSQL a failure to insert marked the transaction as rollback without ability to send more queries.
      Exception looks like:

      org.artifactory.storage.StorageException: Failed to insert new binary record: ERROR: current transaction is aborted, commands ignored until end of transaction block
      	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
      	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
      	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
      	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
      	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
      	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
      	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
      	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
      	at org.artifactory.storage.db.util.JdbcHelper.executeSelect(JdbcHelper.java:90)
      	at org.artifactory.storage.db.binstore.dao.BinariesDao.load(BinariesDao.java:66)
      	at org.artifactory.storage.db.binstore.service.BinaryStoreImpl.insertRecordInDb(BinaryStoreImpl.java:520)
      	at org.artifactory.storage.db.binstore.service.BinaryStoreImpl.addBinary(BinaryStoreImpl.java:320)
      	at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      	at com.sun.proxy.$Proxy46.addBinary(Unknown Source)
      	at org.artifactory.storage.db.fs.model.DbMutableFile.fillData(DbMutableFile.java:107)
      	at org.artifactory.repo.db.DbStoringRepoMixin.fillFileData(DbStoringRepoMixin.java:573)
      	at org.artifactory.repo.db.DbStoringRepoMixin.saveResource(DbStoringRepoMixin.java:200)
      	at org.artifactory.repo.db.DbLocalRepo.saveResource(DbLocalRepo.java:143)
      	at org.artifactory.engine.UploadServiceImpl.uploadItemWithContent(UploadServiceImpl.java:611)
      	at org.artifactory.engine.UploadServiceImpl.uploadItemWithProvidedContent(UploadServiceImpl.java:589)
      	at org.artifactory.engine.UploadServiceImpl.uploadItem(UploadServiceImpl.java:526)
      	at org.artifactory.engine.UploadServiceImpl.uploadFile(UploadServiceImpl.java:499)
      	at org.artifactory.engine.UploadServiceImpl.uploadArtifact(UploadServiceImpl.java:478)
      	at org.artifactory.engine.UploadServiceImpl.uploadWithinTransaction(UploadServiceImpl.java:150)
      	at sun.reflect.GeneratedMethodAccessor172.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      	at org.artifactory.request.aop.RequestAdvice.invoke(RequestAdvice.java:65)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      	at org.artifactory.storage.fs.lock.aop.LockingAdvice.invoke(LockingAdvice.java:64)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      	at com.sun.proxy.$Proxy49.uploadWithinTransaction(Unknown Source)
      	at org.artifactory.engine.UploadServiceImpl.adjustResponseAndUpload(UploadServiceImpl.java:235)
      	at org.artifactory.engine.UploadServiceImpl.validateRequestAndUpload(UploadServiceImpl.java:190)
      	at org.artifactory.engine.UploadServiceImpl.upload(UploadServiceImpl.java:136)
      	at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
      	at com.sun.proxy.$Proxy49.upload(Unknown Source)
      	at org.artifactory.test.utils.ITestUtils.upload(ITestUtils.java:237)
      	at org.artifactory.test.utils.ITestUtils.upload(ITestUtils.java:216)
      	at org.artifactory.test.utils.ITestUtils.upload(ITestUtils.java:189)
      	at org.artifactory.test.utils.ITestUtils.upload(ITestUtils.java:173)
      	at org.artifactory.test.utils.ITestUtils.upload(ITestUtils.java:163)
      	at org.artifactory.updown.ConcurrentDownloadUploadTest.releaseUpload(ConcurrentDownloadUploadTest.java:66)
      Standard Output
      

        Attachments

          Activity

            People

            • Assignee:
              freds Fred Simon
              Reporter:
              freds Fred Simon
              Assigned QA:
              Or Koren (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: