org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '.DS_Store'

JFrog JIRA | Alexis Tual | 7 months ago
  1. 0

    Steps to reproduce : - configure existing filestore with 2 shards and redundancy of 2 : {code:xml} <config version="4"> <chain> <provider id="cache-fs" type="cache-fs"> <provider id="sharding" type="sharding"> <sub-provider id="shard1" type="state-aware"/> <sub-provider id="shard2" type="state-aware"/> </provider> </provider> </chain> <provider id="sharding" type="sharding"> <readBehavior>roundRobin</readBehavior> <writeBehavior>roundRobin</writeBehavior> <redundancy>2</redundancy> </provider> <provider id="shard1" type="state-aware"> <fileStoreDir>filestore</fileStoreDir> </provider> <provider id="shard2" type="state-aware"> <fileStoreDir>filestore2</fileStoreDir> </provider> </config> {code} - create a file in filestore/ : touch filestore/.DS_Store - schedule the balancing with the REST API : /api/system/storage/optimize - run the GC to trigger the balancing You should see an exception : {code:java} 2016-06-27 17:40:55,697 [art-exec-256] [INFO ] (o.a.a.f.m.ShardingBinaryProviderImpl:379) - Double filestore found. Activating Checksum synchronization. 2016-06-27 17:40:55,698 [art-exec-256] [INFO ] (o.a.a.f.m.ShardingBinaryProviderImpl:388) - Synchronizing Binary Stores 2016-06-27 17:40:55,699 [art-exec-256] [ERROR] (o.a.a.f.m.ShardingBinaryProviderImpl:383) - Failed to balance the sharding elements org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '.DS_Store' at org.jfrog.storage.binstore.providers.EmptyBinaryProvider.getStream(EmptyBinaryProvider.java:55) ~[binary-store-core-1.0.0.jar:na] at org.jfrog.storage.binstore.providers.FileBinaryProviderReadOnlyBase.getStream(FileBinaryProviderReadOnlyBase.java:127) ~[binary-store-core-1.0.0.jar:na] at org.artifactory.addon.filestore.multiple.StateAwareFileBinaryProviderImpl.getStream(StateAwareFileBinaryProviderImpl.java:63) ~[artifactory-addon-filestore-4.8.2.jar:na] at org.artifactory.addon.filestore.multiple.ShardingBinaryProviderImpl.balanceInternal(ShardingBinaryProviderImpl.java:423) ~[artifactory-addon-filestore-4.8.2.jar:na] at org.artifactory.addon.filestore.multiple.ShardingBinaryProviderImpl.optimize(ShardingBinaryProviderImpl.java:380) ~[artifactory-addon-filestore-4.8.2.jar:na] at org.jfrog.storage.binstore.common.BinaryProviderManagerImpl$OptimizationBinaryProviderVisitor.collect(BinaryProviderManagerImpl.java:336) [binary-store-core-1.0.0.jar:na] at org.jfrog.storage.binstore.providers.base.BinaryProviderBase.collect(BinaryProviderBase.java:88) [binary-store-core-1.0.0.jar:na] at org.jfrog.storage.binstore.providers.base.BinaryProviderBase.collect(BinaryProviderBase.java:90) [binary-store-core-1.0.0.jar:na] at org.jfrog.storage.binstore.common.BinaryProviderManagerImpl.optimize(BinaryProviderManagerImpl.java:187) [binary-store-core-1.0.0.jar:na] at org.artifactory.storage.db.binstore.service.BinaryServiceImpl.garbageCollect(BinaryServiceImpl.java:366) [artifactory-storage-db-4.8.2.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_66] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_66] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_66] at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) [spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201) [spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at com.sun.proxy.$Proxy56.garbageCollect(Unknown Source) [na:na] at org.artifactory.storage.binstore.service.BinaryStoreGarbageCollectorJob.onExecute(BinaryStoreGarbageCollectorJob.java:56) [artifactory-storage-common-4.8.2.jar:na] at org.artifactory.schedule.quartz.QuartzCommand.execute(QuartzCommand.java:52) [artifactory-storage-common-4.8.2.jar:na] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.2.1.jar:na] at org.artifactory.schedule.ArtifactoryConcurrentExecutor$RunnableWrapper.run(ArtifactoryConcurrentExecutor.java:104) [artifactory-storage-common-4.8.2.jar:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66] {code} In my case, it's due to hidden files generated by Mac OS X, but I believe any unknown file from Artifactory can trigger this.

    JFrog JIRA | 7 months ago | Alexis Tual
    org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '.DS_Store'
  2. 0

    After some time, the context of the maven-metadata.xml file for some artifacts is disappearing. I couldn't identify under which circumstances this is happening. The xml file will be back when a new version of that artifact is published, but that won't last for too long. The file will be gone missing again. This error coms up in the logs when content for that file is required.: {code} 2016-10-28 10:19:05,884 [http-nio-8081-exec-9] [ERROR] (o.a.r.c.e.GlobalExceptionMapper:48) - Binary provider has no content for '1595a83d3157891be8dc641447cebd843a7b08ee' org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '1595a83d3157891be8dc641447cebd843a7b08ee' at org.jfrog.storage.binstore.providers.EmptyBinaryProvider.getStream(EmptyBinaryProvider.java:56) ~[binary-store-core-1.0.1.jar:na] at org.jfrog.storage.binstore.providers.FileBinaryProviderReadOnlyBase.getStream(FileBinaryProviderReadOnlyBase.java:128) ~[binary-store-core-1.0.1.jar:na] at org.artifactory.storage.db.binstore.service.BinaryServiceImpl.getBinary(BinaryServiceImpl.java:270) ~[artifactory-storage-db-4.14.0.jar:na] at sun.reflect.GeneratedMethodAccessor318.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at com.sun.proxy.$Proxy64.getBinary(Unknown Source) ~[na:na] at org.artifactory.storage.db.fs.model.DbFsFile.getStream(DbFsFile.java:68) ~[artifactory-storage-db-4.14.0.jar:na] at org.artifactory.repo.db.DbLocalRepo.getTextFileContent(DbLocalRepo.java:186) ~[artifactory-core-4.14.0.jar:na] at org.artifactory.repo.service.RepositoryServiceImpl.getStringContent(RepositoryServiceImpl.java:803) ~[artifactory-core-4.14.0.jar:na] at org.artifactory.repo.service.RepositoryServiceImpl.getStringContent(RepositoryServiceImpl.java:793) ~[artifactory-core-4.14.0.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201) ~[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE] at com.sun.proxy.$Proxy50.getStringContent(Unknown Source) ~[na:na] at org.artifactory.ui.rest.service.artifacts.browse.treebrowser.actions.ViewArtifactService.getFileContent(ViewArtifactService.java:91) ~[artifactory-rest-ui-4.14.0.jar:na] at org.artifactory.ui.rest.service.artifacts.browse.treebrowser.actions.ViewArtifactService.execute(ViewArtifactService.java:54) ~[artifactory-rest-ui-4.14.0.jar:na] at org.artifactory.rest.common.service.ServiceExecutor.process(ServiceExecutor.java:38) ~[artifactory-rest-common-4.14.0.jar:na] at org.artifactory.rest.common.resource.BaseResource.runService(BaseResource.java:92) ~[artifactory-rest-common-4.14.0.jar:na] at org.artifactory.ui.rest.resource.artifacts.browse.treebrowser.tabs.views.ViewsResource.viewPom(ViewsResource.java:73) ~[artifactory-rest-ui-4.14.0.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) ~[jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) [jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) [jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) [jersey-server-1.19.jar:1.19] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) [jersey-server-1.19.jar:1.19] at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) [jersey-servlet-1.19.jar:1.19] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) [jersey-servlet-1.19.jar:1.19] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) [jersey-servlet-1.19.jar:1.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [servlet-api.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) [catalina.jar:8.0.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32] at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:200) [artifactory-web-application-4.14.0.jar:na] at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:91) [artifactory-web-application-4.14.0.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32] at org.artifactory.webapp.servlet.AccessFilter.useAuthentication(AccessFilter.java:391) [artifactory-web-application-4.14.0.jar:na] at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:206) [artifactory-web-application-4.14.0.jar:na] at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:160) [artifactory-web-application-4.14.0.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32] at org.artifactory.webapp.servlet.RequestFilter.doFilter(RequestFilter.java:61) [artifactory-web-application-4.14.0.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32] at org.artifactory.webapp.servlet.ArtifactoryFilter.doFilter(ArtifactoryFilter.java:111) [artifactory-web-application-4.14.0.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.32] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.32] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [catalina.jar:8.0.32] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [catalina.jar:8.0.32] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [catalina.jar:8.0.32] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.0.32] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.32] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) [catalina.jar:8.0.32] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) [tomcat-coyote.jar:8.0.32] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [tomcat-coyote.jar:8.0.32] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-coyote.jar:8.0.32] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-coyote.jar:8.0.32] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.32] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101] {code}

    JFrog JIRA | 3 months ago | Alexandru Ionita
    org.jfrog.storage.binstore.exceptions.BinaryNotFoundException: Binary provider has no content for '1595a83d3157891be8dc641447cebd843a7b08ee'

    Root Cause Analysis

    1. org.jfrog.storage.binstore.exceptions.BinaryNotFoundException

      Binary provider has no content for '.DS_Store'

      at org.jfrog.storage.binstore.providers.EmptyBinaryProvider.getStream()
    2. org.jfrog.storage
      FileBinaryProviderReadOnlyBase.getStream
      1. org.jfrog.storage.binstore.providers.EmptyBinaryProvider.getStream(EmptyBinaryProvider.java:55)[binary-store-core-1.0.0.jar:na]
      2. org.jfrog.storage.binstore.providers.FileBinaryProviderReadOnlyBase.getStream(FileBinaryProviderReadOnlyBase.java:127)[binary-store-core-1.0.0.jar:na]
      2 frames
    3. org.artifactory.addon
      ShardingBinaryProviderImpl.optimize
      1. org.artifactory.addon.filestore.multiple.StateAwareFileBinaryProviderImpl.getStream(StateAwareFileBinaryProviderImpl.java:63)[artifactory-addon-filestore-4.8.2.jar:na]
      2. org.artifactory.addon.filestore.multiple.ShardingBinaryProviderImpl.balanceInternal(ShardingBinaryProviderImpl.java:423)[artifactory-addon-filestore-4.8.2.jar:na]
      3. org.artifactory.addon.filestore.multiple.ShardingBinaryProviderImpl.optimize(ShardingBinaryProviderImpl.java:380)[artifactory-addon-filestore-4.8.2.jar:na]
      3 frames
    4. org.jfrog.storage
      BinaryProviderManagerImpl.optimize
      1. org.jfrog.storage.binstore.common.BinaryProviderManagerImpl$OptimizationBinaryProviderVisitor.collect(BinaryProviderManagerImpl.java:336)[binary-store-core-1.0.0.jar:na]
      2. org.jfrog.storage.binstore.providers.base.BinaryProviderBase.collect(BinaryProviderBase.java:88)[binary-store-core-1.0.0.jar:na]
      3. org.jfrog.storage.binstore.providers.base.BinaryProviderBase.collect(BinaryProviderBase.java:90)[binary-store-core-1.0.0.jar:na]
      4. org.jfrog.storage.binstore.common.BinaryProviderManagerImpl.optimize(BinaryProviderManagerImpl.java:187)[binary-store-core-1.0.0.jar:na]
      4 frames
    5. org.artifactory.storage
      BinaryServiceImpl.garbageCollect
      1. org.artifactory.storage.db.binstore.service.BinaryServiceImpl.garbageCollect(BinaryServiceImpl.java:366)[artifactory-storage-db-4.8.2.jar:na]
      1 frame
    6. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[na:1.8.0_66]
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[na:1.8.0_66]
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[na:1.8.0_66]
      4. java.lang.reflect.Method.invoke(Method.java:497)[na:1.8.0_66]
      4 frames
    7. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      2. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)[spring-aop-4.1.5.RELEASE.jar:4.1.5.RELEASE]
      2 frames
    8. com.sun.proxy
      $Proxy56.garbageCollect
      1. com.sun.proxy.$Proxy56.garbageCollect(Unknown Source)[na:na]
      1 frame
    9. org.artifactory.storage
      BinaryStoreGarbageCollectorJob.onExecute
      1. org.artifactory.storage.binstore.service.BinaryStoreGarbageCollectorJob.onExecute(BinaryStoreGarbageCollectorJob.java:56)[artifactory-storage-common-4.8.2.jar:na]
      1 frame
    10. org.artifactory.schedule
      QuartzCommand.execute
      1. org.artifactory.schedule.quartz.QuartzCommand.execute(QuartzCommand.java:52)[artifactory-storage-common-4.8.2.jar:na]
      1 frame
    11. quartz
      JobRunShell.run
      1. org.quartz.core.JobRunShell.run(JobRunShell.java:202)[quartz-2.2.1.jar:na]
      1 frame
    12. org.artifactory.schedule
      ArtifactoryConcurrentExecutor$RunnableWrapper.run
      1. org.artifactory.schedule.ArtifactoryConcurrentExecutor$RunnableWrapper.run(ArtifactoryConcurrentExecutor.java:104)[artifactory-storage-common-4.8.2.jar:na]
      1 frame
    13. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_66]
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_66]
      3. java.lang.Thread.run(Thread.java:745)[na:1.8.0_66]
      3 frames