Git Product home page Git Product logo

Comments (10)

afranken avatar afranken commented on May 27, 2024 2

Just released 3.0.1 which fixes startup with empty folders in the data directory.

@lacek this fixes your use-case.

@sampotts please try 3.0.1 to see if this fixes your use-case as well.
If not, re-open this issue or open a new issue.
A detailed "how to reproduce" guide would be highly appreciated, I'm unable to reproduce the behaviour you described locally with any amount of test data...

from s3mock.

lacek avatar lacek commented on May 27, 2024 1

Got the same error (without retainFilesOnExit=true) every time the s3mock container is stopped, removed and started again.

docker-compose.yml:

services:
  s3mock:
    image: adobe/s3mock:3.0.0
    environment:
      - initialBuckets=bucket1
      - root=/data
    ports:
      - 9090:9090
    volumes:
      - ./data:/data

Steps to produce error:

# ./data is empty at this point
docker compose up -d

mkdir ~/.aws
cat <<EOF > ~/.aws/credentials
[default]
aws_access_key_id = dummy
aws_secret_access_key = dummy
EOF

mkdir /tmp/test
truncate -s 1M /tmp/test/file.dat

aws --endpoint-url http://127.0.0.1:9090 s3 sync /tmp/test s3://bucket1/
aws --endpoint-url http://127.0.0.1:9090 s3 ls s3://bucket1/

docker compose logs
# start up success, capture logs

docker compose down
# ./data now contains empty folders like bucket1/21ed6cab-031f-4128-87be-dbc2957a2f79/
docker compose up -d

docker compose logs
# start up failed, capture logs again

sudo rm -r data/bucket1
docker compose up -d
# start up success again
1st container log:
s3mock-s3mock-1  | OpenJDK 64-Bit Server VM warning: Ignoring option --illegal-access=warn; support was removed in 17.0
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |   .-')              _   .-')                           .-. .-')
s3mock-s3mock-1  |  ( OO ).           ( '.( OO )_                         \  ( OO )
s3mock-s3mock-1  | (_)---\_) .-----.   ,--.   ,--.).-'),-----.    .-----. ,--. ,--.
s3mock-s3mock-1  | /    _ | /  -.   \  |   `.'   |( OO'  .-.  '  '  .--./ |  .'   /
s3mock-s3mock-1  | \  :` `. '-' _'  |  |         |/   |  | |  |  |  |('-. |      /,
s3mock-s3mock-1  |  '..`''.)   |_  <   |  |'.'|  |\_) |  |\|  | /_) |OO  )|     ' _)
s3mock-s3mock-1  | .-._)   \.-.  |  |  |  |   |  |  \ |  | |  | ||  |`-'| |  .   \
s3mock-s3mock-1  | \       /\ `-'   /  |  |   |  |   `'  '-'  '(_'  '--'\ |  |\   \
s3mock-s3mock-1  |  `-----'  `----''   `--'   `--'     `-----'    `-----' `--' '--'
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  | 2023-07-25T06:56:49.258Z  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Starting S3MockApplication using Java 17.0.7 with PID 1 (/s3moc
k.jar started by root in /)
s3mock-s3mock-1  | 2023-07-25T06:56:49.262Z  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : No active profile set, falling back to 1 default profile: "defa
ult"
s3mock-s3mock-1  | 2023-07-25T06:56:51.046Z  INFO 1 --- [           main] o.s.b.w.e.j.JettyServletWebServerFactory : Server initialized with port: 9191
s3mock-s3mock-1  | 2023-07-25T06:56:51.212Z  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : jetty-11.0.15; built: 2023-04-11T18:37:53.775Z; git: 5bc5e562c8
d05c5862505aebe5cf83a61bdbcb96; jvm 17.0.7+7-alpine-r1
s3mock-s3mock-1  | 2023-07-25T06:56:51.276Z  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring embedded WebApplicationContext
s3mock-s3mock-1  | 2023-07-25T06:56:51.277Z  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1903 ms
s3mock-s3mock-1  | 2023-07-25T06:56:51.544Z  INFO 1 --- [           main] o.e.j.s.session.DefaultSessionIdManager  : Session workerName=node0
s3mock-s3mock-1  | 2023-07-25T06:56:51.553Z  INFO 1 --- [           main] o.e.jetty.server.handler.ContextHandler  : Started o.s.b.w.e.j.JettyEmbeddedWebAppContext@3dddbe65{applica
tion,/,[file:///tmp/jetty-docbase.9191.8440047267480645554/],AVAILABLE}
s3mock-s3mock-1  | 2023-07-25T06:56:51.561Z  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : Started Server@6c67e137{STARTING}[11.0.15,sto=0] @3569ms
s3mock-s3mock-1  | 2023-07-25T06:56:51.580Z  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Using existing folder "/data" as root folder. Will retain files
 on exit: false
s3mock-s3mock-1  | 2023-07-25T06:56:51.687Z  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Creating initial bucket bucket1.
s3mock-s3mock-1  | 2023-07-25T06:56:52.089Z  WARN 1 --- [           main] i.m.c.i.binder.jvm.JvmGcMetrics          : GC notifications will not be available because com.sun.manageme
nt.GarbageCollectionNotificationInfo is not present
s3mock-s3mock-1  | 2023-07-25T06:56:52.160Z  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
s3mock-s3mock-1  | 2023-07-25T06:56:52.229Z  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring DispatcherServlet 'dispatcherServlet'
s3mock-s3mock-1  | 2023-07-25T06:56:52.229Z  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
s3mock-s3mock-1  | 2023-07-25T06:56:52.230Z  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
s3mock-s3mock-1  | 2023-07-25T06:56:52.241Z  INFO 1 --- [           main] o.e.jetty.util.ssl.SslContextFactory     : x509=X509@2b0b4d53(selfsigned,h=[localhost, adobe s3mock],a=[],
w=[]) for Server@7068f7ca[provider=null,keyStore=null,trustStore=null]
s3mock-s3mock-1  | 2023-07-25T06:56:52.375Z  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started SslValidatingServerConnector@117e0fe5{SSL, (ssl, http/1
.1)}{0.0.0.0:9191}
s3mock-s3mock-1  | 2023-07-25T06:56:52.397Z  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started ServerConnector@2a65bb85{HTTP/1.1, (http/1.1)}{0.0.0.0:
9090}
s3mock-s3mock-1  | 2023-07-25T06:56:52.400Z  INFO 1 --- [           main] o.s.b.web.embedded.jetty.JettyWebServer  : Jetty started on port(s) 9191 (ssl, http/1.1), 9090 (http/1.1)
with context path '/'
s3mock-s3mock-1  | 2023-07-25T06:56:52.421Z  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Started S3MockApplication in 3.796 seconds (process running for
 4.429)
s3mock-s3mock-1  | 2023-07-25T07:03:42.414Z  WARN 1 --- [qtp962287291-48] ocalVariableTableParameterNameDiscoverer : Using deprecated '-debug' fallback for parameter name resolutio
n. Compile the affected code with '-parameters' instead or avoid its introspection: com.adobe.testing.s3mock.BucketController
s3mock-s3mock-1  | 2023-07-25T07:03:42.478Z  WARN 1 --- [qtp962287291-49] ocalVariableTableParameterNameDiscoverer : Using deprecated '-debug' fallback for parameter name resolutio
n. Compile the affected code with '-parameters' instead or avoid its introspection: com.adobe.testing.s3mock.ObjectController
2nd container log:
s3mock-s3mock-1  | OpenJDK 64-Bit Server VM warning: Ignoring option --illegal-access=warn; support was removed in 17.0
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |   .-')              _   .-')                           .-. .-')
s3mock-s3mock-1  |  ( OO ).           ( '.( OO )_                         \  ( OO )
s3mock-s3mock-1  | (_)---\_) .-----.   ,--.   ,--.).-'),-----.    .-----. ,--. ,--.
s3mock-s3mock-1  | /    _ | /  -.   \  |   `.'   |( OO'  .-.  '  '  .--./ |  .'   /
s3mock-s3mock-1  | \  :` `. '-' _'  |  |         |/   |  | |  |  |  |('-. |      /,
s3mock-s3mock-1  |  '..`''.)   |_  <   |  |'.'|  |\_) |  |\|  | /_) |OO  )|     ' _)
s3mock-s3mock-1  | .-._)   \.-.  |  |  |  |   |  |  \ |  | |  | ||  |`-'| |  .   \
s3mock-s3mock-1  | \       /\ `-'   /  |  |   |  |   `'  '-'  '(_'  '--'\ |  |\   \
s3mock-s3mock-1  |  `-----'  `----''   `--'   `--'     `-----'    `-----' `--' '--'
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  | 2023-07-25T07:05:08.299Z  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Starting S3MockApplication using Java 17.0.7 with PID 1 (/s3moc
k.jar started by root in /)
s3mock-s3mock-1  | 2023-07-25T07:05:08.303Z  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : No active profile set, falling back to 1 default profile: "defa
ult"
s3mock-s3mock-1  | 2023-07-25T07:05:09.993Z  INFO 1 --- [           main] o.s.b.w.e.j.JettyServletWebServerFactory : Server initialized with port: 9191
s3mock-s3mock-1  | 2023-07-25T07:05:10.229Z  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : jetty-11.0.15; built: 2023-04-11T18:37:53.775Z; git: 5bc5e562c8
d05c5862505aebe5cf83a61bdbcb96; jvm 17.0.7+7-alpine-r1
s3mock-s3mock-1  | 2023-07-25T07:05:10.298Z  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring embedded WebApplicationContext
s3mock-s3mock-1  | 2023-07-25T07:05:10.300Z  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1886 ms
s3mock-s3mock-1  | 2023-07-25T07:05:10.567Z  INFO 1 --- [           main] o.e.j.s.session.DefaultSessionIdManager  : Session workerName=node0
s3mock-s3mock-1  | 2023-07-25T07:05:10.576Z  INFO 1 --- [           main] o.e.jetty.server.handler.ContextHandler  : Started o.s.b.w.e.j.JettyEmbeddedWebAppContext@36ac8a63{applica
tion,/,[file:///tmp/jetty-docbase.9191.11345237632191431542/],AVAILABLE}
s3mock-s3mock-1  | 2023-07-25T07:05:10.592Z  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : Started Server@53ab0286{STARTING}[11.0.15,sto=0] @3599ms
s3mock-s3mock-1  | 2023-07-25T07:05:10.611Z  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Using existing folder "/data" as root folder. Will retain files
 on exit: false
s3mock-s3mock-1  | 2023-07-25T07:05:10.650Z  INFO 1 --- [           main] c.a.testing.s3mock.store.BucketStore     : Loading existing bucket bucket1.
s3mock-s3mock-1  | 2023-07-25T07:05:10.653Z  WARN 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancellin
g refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fileStoreController' defined in class path resource [com/adobe/t
esting/s3mock/S3MockConfiguration.class]: Unsatisfied dependency expressed through method 'fileStoreController' parameter 0: Error creating bean with name 'objectService' defined i
n class path resource [com/adobe/testing/s3mock/service/ServiceConfiguration.class]: Unsatisfied dependency expressed through method 'objectService' parameter 0: Error creating bea
n with name 'bucketStore' defined in class path resource [com/adobe/testing/s3mock/store/StoreConfiguration.class]: Failed to instantiate [com.adobe.testing.s3mock.store.BucketStor
e]: Factory method 'bucketStore' threw exception with message: Cannot invoke "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  | 2023-07-25T07:05:10.656Z  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : Stopped Server@53ab0286{STOPPING}[11.0.15,sto=0]
s3mock-s3mock-1  | 2023-07-25T07:05:10.658Z  INFO 1 --- [           main] o.e.jetty.server.handler.ContextHandler  : Stopped o.s.b.w.e.j.JettyEmbeddedWebAppContext@36ac8a63{applica
tion,/,[file:///tmp/jetty-docbase.9191.11345237632191431542/],STOPPED}
s3mock-s3mock-1  | 2023-07-25T07:05:10.678Z  INFO 1 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger :
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  | Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
s3mock-s3mock-1  | 2023-07-25T07:05:10.704Z ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1  | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fileStoreController' defined in class path resource [com/adobe/t
esting/s3mock/S3MockConfiguration.class]: Unsatisfied dependency expressed through method 'fileStoreController' parameter 0: Error creating bean with name 'objectService' defined i
n class path resource [com/adobe/testing/s3mock/service/ServiceConfiguration.class]: Unsatisfied dependency expressed through method 'objectService' parameter 0: Error creating bea
n with name 'bucketStore' defined in class path resource [com/adobe/testing/s3mock/store/StoreConfiguration.class]: Failed to instantiate [com.adobe.testing.s3mock.store.BucketStor
e]: Factory method 'bucketStore' threw exception with message: Cannot invoke "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:550) ~[spring-beans-6.0.9.jar!/:6.0.
9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162) ~[spring-be
ans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0
.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.9
.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.9.jar!/:6.0
.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.0.9.j
ar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:941) ~[spring-context-6.0.
9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[spring-context-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.0.
jar!/:3.1.0]
s3mock-s3mock-1  |      at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:733) ~[spring-boot-3.1.0.jar!/:3.1.0]
s3mock-s3mock-1  |      at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:435) ~[spring-boot-3.1.0.jar!/:3.1.0]
s3mock-s3mock-1  |      at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ~[spring-boot-3.1.0.jar!/:3.1.0]
s3mock-s3mock-1  |      at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) ~[spring-boot-3.1.0.jar!/:3.1.0]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.S3MockApplication.start(S3MockApplication.java:199) ~[classes!/:na]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.S3MockApplication.start(S3MockApplication.java:163) ~[classes!/:na]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.S3MockApplication.main(S3MockApplication.java:152) ~[classes!/:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[s3mock.jar:na]
s3mock-s3mock-1  |      at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[s3mock.jar:na]
s3mock-s3mock-1  |      at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[s3mock.jar:na]
s3mock-s3mock-1  |      at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[s3mock.jar:na]
s3mock-s3mock-1  | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'objectService' defined in class path resource [com/ad
obe/testing/s3mock/service/ServiceConfiguration.class]: Unsatisfied dependency expressed through method 'objectService' parameter 0: Error creating bean with name 'bucketStore' def
ined in class path resource [com/adobe/testing/s3mock/store/StoreConfiguration.class]: Failed to instantiate [com.adobe.testing.s3mock.store.BucketStore]: Factory method 'bucketSto
re' threw exception with message: Cannot invoke "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:550) ~[spring-beans-6.0.9.jar!/:6.0.
9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162) ~[spring-be
ans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0
.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.9
.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.9.jar!/:6.0
.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) ~[spring-beans-6.0.9.jar!/
:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[spring-beans-6.0.9.jar!/:6
.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:888) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      ... 28 common frames omitted
s3mock-s3mock-1  | Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bucketStore' defined in class path resource [com/adobe/testing
/s3mock/store/StoreConfiguration.class]: Failed to instantiate [com.adobe.testing.s3mock.store.BucketStore]: Factory method 'bucketStore' threw exception with message: Cannot invok
e "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:659) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:647) ~[spring-beans-6.0.9.jar!/:6.0.
9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162) ~[spring-be
ans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0
.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.9
.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.9.jar!/:6.0
.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) ~[spring-beans-6.0.9.jar!/
:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[spring-beans-6.0.9.jar!/:6
.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:888) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      ... 42 common frames omitted
s3mock-s3mock-1  | Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.adobe.testing.s3mock.store.BucketStore]: Factory method 'bucketStore'
 threw exception with message: Cannot invoke "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      ... 56 common frames omitted
s3mock-s3mock-1  | Caused by: java.lang.NullPointerException: Cannot invoke "com.adobe.testing.s3mock.store.BucketMetadata.objects()" because "bucketMetadata" is null
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.store.BucketStore.loadBuckets(BucketStore.java:285) ~[classes!/:na]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.store.StoreConfiguration.bucketStore(StoreConfiguration.java:72) ~[classes!/:na]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.store.StoreConfiguration$$SpringCGLIB$$0.CGLIB$bucketStore$1(<generated>) ~[classes!/:na]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.store.StoreConfiguration$$SpringCGLIB$$2.invoke(<generated>) ~[classes!/:na]
s3mock-s3mock-1  |      at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-6
.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      at com.adobe.testing.s3mock.store.StoreConfiguration$$SpringCGLIB$$0.bucketStore(<generated>) ~[classes!/:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
s3mock-s3mock-1  |      at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139) ~[spring-beans-6.0.9.jar!/:6.0.9]
s3mock-s3mock-1  |      ... 57 common frames omitted
s3mock-s3mock-1  |
s3mock-s3mock-1  |
s3mock-s3mock-1 exited with code 1

from s3mock.

sampotts avatar sampotts commented on May 27, 2024 1

Yep, our use case is to spin up the docker, upload some files and then ideally later use those files again.

It seems that stopping the container (via Docker Desktop's Dashboard) with files already uploaded and then restarting it again does indeed throw the error. Effectively, I can't restart the docker without losing access to the files.

Here's a successful start/stop/start without any files:

Logs
2023-07-25 16:35:52 
2023-07-25 16:37:46 
2023-07-25 16:37:46 
2023-07-25 16:37:46   .-')              _   .-')                           .-. .-')  
2023-07-25 16:37:46  ( OO ).           ( '.( OO )_                         \  ( OO ) 
2023-07-25 16:37:46 (_)---\_) .-----.   ,--.   ,--.).-'),-----.    .-----. ,--. ,--. 
2023-07-25 16:37:46 /    _ | /  -.   \  |   `.'   |( OO'  .-.  '  '  .--./ |  .'   / 
2023-07-25 16:37:46 \  :` `. '-' _'  |  |         |/   |  | |  |  |  |('-. |      /, 
2023-07-25 16:37:46  '..`''.)   |_  <   |  |'.'|  |\_) |  |\|  | /_) |OO  )|     ' _)
2023-07-25 16:37:46 .-._)   \.-.  |  |  |  |   |  |  \ |  | |  | ||  |`-'| |  .   \  
2023-07-25 16:37:46 \       /\ `-'   /  |  |   |  |   `'  '-'  '(_'  '--'\ |  |\   \ 
2023-07-25 16:37:46  `-----'  `----''   `--'   `--'     `-----'    `-----' `--' '--' 
2023-07-25 16:37:46 
2023-07-25 16:37:46 
2023-07-25 16:37:46 
2023-07-25 16:37:46 2023-07-25 06:37:46.219  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Starting S3MockApplication using Java 17.0.7 on 542da8fb535e with PID 1 (/s3mock.jar started by root in /)
2023-07-25 16:37:46 2023-07-25 06:37:46.222  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : No active profile set, falling back to 1 default profile: "default"
2023-07-25 16:37:46 2023-07-25 06:37:46.917  INFO 1 --- [           main] org.eclipse.jetty.util.log               : Logging initialized @1314ms to org.eclipse.jetty.util.log.Slf4jLog
2023-07-25 16:37:47 2023-07-25 06:37:47.014  INFO 1 --- [           main] o.s.b.w.e.j.JettyServletWebServerFactory : Server initialized with port: 9191
2023-07-25 16:37:47 2023-07-25 06:37:47.023  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : jetty-9.4.51.v20230217; built: 2023-02-17T08:19:37.309Z; git: b45c405e4544384de066f814ed42ae3dceacdd49; jvm 17.0.7+7-alpine-r1
2023-07-25 16:37:47 2023-07-25 06:37:47.042  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring embedded WebApplicationContext
2023-07-25 16:37:47 2023-07-25 06:37:47.042  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 788 ms
2023-07-25 16:37:47 2023-07-25 06:37:47.083  WARN 1 --- [           main] i.m.c.i.binder.jvm.JvmGcMetrics          : GC notifications will not be available because com.sun.management.GarbageCollectionNotificationInfo is not present
2023-07-25 16:37:47 2023-07-25 06:37:47.153  INFO 1 --- [           main] org.eclipse.jetty.server.session         : DefaultSessionIdManager workerName=node0
2023-07-25 16:37:47 2023-07-25 06:37:47.153  INFO 1 --- [           main] org.eclipse.jetty.server.session         : No SessionScavenger set, using defaults
2023-07-25 16:37:47 2023-07-25 06:37:47.154  INFO 1 --- [           main] org.eclipse.jetty.server.session         : node0 Scavenging every 600000ms
2023-07-25 16:37:47 2023-07-25 06:37:47.159  INFO 1 --- [           main] o.e.jetty.server.handler.ContextHandler  : Started o.s.b.w.e.j.JettyEmbeddedWebAppContext@4cc6fa2a{application,/,[file:///tmp/jetty-docbase.9191.1621295290912401367/],AVAILABLE}
2023-07-25 16:37:47 2023-07-25 06:37:47.159  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : Started @1557ms
2023-07-25 16:37:45 OpenJDK 64-Bit Server VM warning: Ignoring option --illegal-access=warn; support was removed in 17.0
2023-07-25 16:37:51 OpenJDK 64-Bit Server VM warning: Ignoring option --illegal-access=warn; support was removed in 17.0
2023-07-25 16:37:47 2023-07-25 06:37:47.170  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Using existing folder "/var/lib/s3mock/data" as root folder. Will retain files on exit: true
2023-07-25 16:37:47 2023-07-25 06:37:47.230  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Creating initial bucket released-dev-private.
2023-07-25 16:37:47 2023-07-25 06:37:47.234  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Creating initial bucket released-dev-public.
2023-07-25 16:37:47 2023-07-25 06:37:47.506  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-07-25 16:37:47 2023-07-25 06:37:47.526  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-07-25 16:37:47 2023-07-25 06:37:47.526  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2023-07-25 16:37:47 2023-07-25 06:37:47.526  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Completed initialization in 0 ms
2023-07-25 16:37:47 2023-07-25 06:37:47.655  INFO 1 --- [           main] o.e.jetty.util.ssl.SslContextFactory     : x509=X509@772485dd(selfsigned,h=[localhost, adobe s3mock],a=[],w=[]) for Server@5a12c728[provider=null,keyStore=jar:file:/s3mock.jar!/BOOT-INF/classes!/s3mock.jks,trustStore=null]
2023-07-25 16:37:47 2023-07-25 06:37:47.711  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started SslValidatingServerConnector@ff684e1{SSL, (ssl, http/1.1)}{0.0.0.0:9191}
2023-07-25 16:37:47 2023-07-25 06:37:47.712  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started ServerConnector@55dfebeb{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2023-07-25 16:37:47 2023-07-25 06:37:47.712  INFO 1 --- [           main] o.s.b.web.embedded.jetty.JettyWebServer  : Jetty started on port(s) 9191 (ssl, http/1.1), 9090 (http/1.1) with context path '/'
2023-07-25 16:37:47 2023-07-25 06:37:47.724  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Started S3MockApplication in 1.814 seconds (JVM running for 2.122)
2023-07-25 16:37:49 2023-07-25 06:37:49.937  INFO 1 --- [ionShutdownHook] o.e.jetty.server.AbstractConnector       : Stopped SslValidatingServerConnector@ff684e1{SSL, (ssl, http/1.1)}{0.0.0.0:9191}
2023-07-25 16:37:49 2023-07-25 06:37:49.937  INFO 1 --- [ionShutdownHook] o.e.jetty.server.AbstractConnector       : Stopped ServerConnector@55dfebeb{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2023-07-25 16:37:49 2023-07-25 06:37:49.937  INFO 1 --- [ionShutdownHook] org.eclipse.jetty.server.session         : node0 Stopped scavenging
2023-07-25 16:37:49 2023-07-25 06:37:49.938  INFO 1 --- [ionShutdownHook] o.e.j.s.h.ContextHandler.application     : Destroying Spring FrameworkServlet 'dispatcherServlet'
2023-07-25 16:37:49 2023-07-25 06:37:49.938  INFO 1 --- [ionShutdownHook] o.e.jetty.server.handler.ContextHandler  : Stopped o.s.b.w.e.j.JettyEmbeddedWebAppContext@4cc6fa2a{application,/,[file:///tmp/jetty-docbase.9191.1621295290912401367/],STOPPED}
2023-07-25 16:37:51 
2023-07-25 16:37:51 
2023-07-25 16:37:51   .-')              _   .-')                           .-. .-')  
2023-07-25 16:37:51  ( OO ).           ( '.( OO )_                         \  ( OO ) 
2023-07-25 16:37:51 (_)---\_) .-----.   ,--.   ,--.).-'),-----.    .-----. ,--. ,--. 
2023-07-25 16:37:51 /    _ | /  -.   \  |   `.'   |( OO'  .-.  '  '  .--./ |  .'   / 
2023-07-25 16:37:51 \  :` `. '-' _'  |  |         |/   |  | |  |  |  |('-. |      /, 
2023-07-25 16:37:51  '..`''.)   |_  <   |  |'.'|  |\_) |  |\|  | /_) |OO  )|     ' _)
2023-07-25 16:37:51 .-._)   \.-.  |  |  |  |   |  |  \ |  | |  | ||  |`-'| |  .   \  
2023-07-25 16:37:51 \       /\ `-'   /  |  |   |  |   `'  '-'  '(_'  '--'\ |  |\   \ 
2023-07-25 16:37:51  `-----'  `----''   `--'   `--'     `-----'    `-----' `--' '--' 
2023-07-25 16:37:51 
2023-07-25 16:37:51 
2023-07-25 16:37:51 
2023-07-25 16:37:51 2023-07-25 06:37:51.874  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Starting S3MockApplication using Java 17.0.7 on 542da8fb535e with PID 1 (/s3mock.jar started by root in /)
2023-07-25 16:37:51 2023-07-25 06:37:51.877  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : No active profile set, falling back to 1 default profile: "default"
2023-07-25 16:37:52 2023-07-25 06:37:52.573  INFO 1 --- [           main] org.eclipse.jetty.util.log               : Logging initialized @1278ms to org.eclipse.jetty.util.log.Slf4jLog
2023-07-25 16:37:52 2023-07-25 06:37:52.670  INFO 1 --- [           main] o.s.b.w.e.j.JettyServletWebServerFactory : Server initialized with port: 9191
2023-07-25 16:37:52 2023-07-25 06:37:52.680  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : jetty-9.4.51.v20230217; built: 2023-02-17T08:19:37.309Z; git: b45c405e4544384de066f814ed42ae3dceacdd49; jvm 17.0.7+7-alpine-r1
2023-07-25 16:37:52 2023-07-25 06:37:52.696  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring embedded WebApplicationContext
2023-07-25 16:37:52 2023-07-25 06:37:52.697  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 789 ms
2023-07-25 16:37:52 2023-07-25 06:37:52.730  WARN 1 --- [           main] i.m.c.i.binder.jvm.JvmGcMetrics          : GC notifications will not be available because com.sun.management.GarbageCollectionNotificationInfo is not present
2023-07-25 16:37:52 2023-07-25 06:37:52.805  INFO 1 --- [           main] org.eclipse.jetty.server.session         : DefaultSessionIdManager workerName=node0
2023-07-25 16:37:52 2023-07-25 06:37:52.805  INFO 1 --- [           main] org.eclipse.jetty.server.session         : No SessionScavenger set, using defaults
2023-07-25 16:37:52 2023-07-25 06:37:52.806  INFO 1 --- [           main] org.eclipse.jetty.server.session         : node0 Scavenging every 600000ms
2023-07-25 16:37:52 2023-07-25 06:37:52.810  INFO 1 --- [           main] o.e.jetty.server.handler.ContextHandler  : Started o.s.b.w.e.j.JettyEmbeddedWebAppContext@6d304f9d{application,/,[file:///tmp/jetty-docbase.9191.12674681723912799456/],AVAILABLE}
2023-07-25 16:37:52 2023-07-25 06:37:52.810  INFO 1 --- [           main] org.eclipse.jetty.server.Server          : Started @1516ms
2023-07-25 16:37:52 2023-07-25 06:37:52.819  INFO 1 --- [           main] c.a.t.s3mock.store.StoreConfiguration    : Using existing folder "/var/lib/s3mock/data" as root folder. Will retain files on exit: true
2023-07-25 16:37:52 2023-07-25 06:37:52.839  INFO 1 --- [           main] c.a.testing.s3mock.store.BucketStore     : Loading existing bucket released-dev-private.
2023-07-25 16:37:52 2023-07-25 06:37:52.892  INFO 1 --- [           main] c.a.testing.s3mock.store.BucketStore     : Loading existing bucket released-dev-public.
2023-07-25 16:37:53 2023-07-25 06:37:53.140  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-07-25 16:37:53 2023-07-25 06:37:53.160  INFO 1 --- [           main] o.e.j.s.h.ContextHandler.application     : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-07-25 16:37:53 2023-07-25 06:37:53.160  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2023-07-25 16:37:53 2023-07-25 06:37:53.160  INFO 1 --- [           main] o.s.web.servlet.DispatcherServlet        : Completed initialization in 0 ms
2023-07-25 16:37:53 2023-07-25 06:37:53.248  INFO 1 --- [           main] o.e.jetty.util.ssl.SslContextFactory     : x509=X509@38d5b107(selfsigned,h=[localhost, adobe s3mock],a=[],w=[]) for Server@6650813a[provider=null,keyStore=jar:file:/s3mock.jar!/BOOT-INF/classes!/s3mock.jks,trustStore=null]
2023-07-25 16:37:53 2023-07-25 06:37:53.294  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started SslValidatingServerConnector@2a640157{SSL, (ssl, http/1.1)}{0.0.0.0:9191}
2023-07-25 16:37:53 2023-07-25 06:37:53.295  INFO 1 --- [           main] o.e.jetty.server.AbstractConnector       : Started ServerConnector@5d8bafa9{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
2023-07-25 16:37:53 2023-07-25 06:37:53.295  INFO 1 --- [           main] o.s.b.web.embedded.jetty.JettyWebServer  : Jetty started on port(s) 9191 (ssl, http/1.1), 9090 (http/1.1) with context path '/'
2023-07-25 16:37:53 2023-07-25 06:37:53.306  INFO 1 --- [           main] c.a.testing.s3mock.S3MockApplication     : Started S3MockApplication in 1.717 seconds (JVM running for **2.012)**

from s3mock.

afranken avatar afranken commented on May 27, 2024 1

thanks for the feedback.
I implemented a test that runs on every build that tests restarting the S3Mock on an existing file system, but it contains only a few assets and buckets (2 maybe?).
I'll review your logs and test some more.

from s3mock.

afranken avatar afranken commented on May 27, 2024 1

Got the same error (without retainFilesOnExit=true) every time the s3mock container is stopped, removed and started again.

oh, that we actually do not test - but this was an easy fix, see #1245

from s3mock.

afranken avatar afranken commented on May 27, 2024

@sampotts
so your use-case is to start S3Mock, upload some amount of data, then restart it and access the data uploaded during the previous run?
Can you reproduce this error by just restarting the S3Mock over and over on the same existing filesystem?
Do you have a log of the S3Mock starting up with and without the error thrown?

from s3mock.

afranken avatar afranken commented on May 27, 2024

It seems that stopping the container (via Docker Desktop's Dashboard) with files already uploaded and then restarting it again does indeed throw the error. Effectively, I can't restart the docker without losing access to the files.

this is so weird - I'm testing with gigabytes of data, thousands of files uploaded and restarting the S3Mock works every time...

@sampotts do you have a reproducer similar to what @lacek posted?
Can you reproduce this with arbitrary data?
For example, I downloaded the current WordPress version, and uploaded all files. Works like a charm.

from s3mock.

afranken avatar afranken commented on May 27, 2024

@sampotts I added logging in #1245 to better see what's going on, does not matter how many files I upload, I never see an error when restarting S3Mock on an existing file system:

2023-07-26 12:35:35 s3mock-restart-test-s3mock-1  | 2023-07-26T10:35:35.757Z  INFO 1 --- [           main] c.a.testing.s3mock.store.ObjectStore     : Loaded 550 of 550 objects for bucket bucket1
2023-07-26 12:35:35 s3mock-restart-test-s3mock-1  | 2023-07-26T10:35:35.758Z  INFO 1 --- [           main] c.a.testing.s3mock.store.ObjectStore     : Loaded 1 of 1 objects for bucket test
2023-07-26 12:35:36 s3mock-restart-test-s3mock-1  | 2023-07-26T10:35:36.846Z  INFO 1 --- [           main] c.a.testing.s3mock.store.ObjectStore     : Loaded 2961 of 2961 objects for bucket bucket2

from s3mock.

afranken avatar afranken commented on May 27, 2024

maybe there are folders in your data folder that were not created by S3Mock?

When it finds a folder (even an empty one), it believes that this is a bucket and tries to load from it. If there's no bucketMetadata.json inside that folder, startup will fail.

from s3mock.

sampotts avatar sampotts commented on May 27, 2024

Sorry, just seen this. It looks to have resolved my issue also. Thanks again! 🎉

from s3mock.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.