I'm encountering an issue when starting the application using mongration. The app is deployed on a Kubernetes pod, and the error happens at startup.
This issue has started happening only in the last few days, and consistently occurs every morning at the first application start.
reactor.core.Exceptions$RetryExhaustedException: Retries exhausted: 0/0 at reactor.core.Exceptions.retryExhausted(Exceptions.java:306) at reactor.util.retry.RetryBackoffSpec.lambda$static$0(RetryBackoffSpec.java:68) at reactor.util.retry.RetryBackoffSpec.lambda$null$4(RetryBackoffSpec.java:560) at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:183) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471) at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615) at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:873) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:336) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1717) at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:192) at reactor.core.publisher.Operators.error(Operators.java:198) at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:77) at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) at reactor.core.publisher.Mono.subscribe(Mono.java:4480) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2071) at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:371) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drain(FluxFlattenIterable.java:724) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.onComplete(FluxFlattenIterable.java:273) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2072) at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:589) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:466) at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:357) at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) at reactor.core.publisher.Mono.subscribe(Mono.java:4495) at reactor.core.publisher.Mono.block(Mono.java:1711) at com.kuliginstepan.mongration.AbstractMongration.afterSingletonsInstantiated(AbstractMongration.java:68) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:984) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at com.enel.platform.catalog.CatalogApplication.main(CatalogApplication.java:35) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103) at reactor.core.publisher.Mono.block(Mono.java:1712) ... 15 common frames omitted Caused by: com.kuliginstepan.mongration.MongrationException: Mongration couldn't acquire process lock at com.kuliginstepan.mongration.service.impl.LockServiceImpl.acquireLock(LockServiceImpl.java:27) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:45) ... 40 common frames omitted Caused by: org.springframework.dao.DuplicateKeyException: Write operation error on server pl-0-eu-central-1.fsdhz.mongodb.net:1026. Write error: WriteError{code=11000, message='E11000 duplicate key error collection: plmcatc.mongration_changelogs index: _id_ dup key: { _id: "LOCK" }', details={}}. at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:104) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2932) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:602) at org.springframework.data.mongodb.core.MongoTemplate.insertDocument(MongoTemplate.java:1538) at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:1334) at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:1260) at com.kuliginstepan.mongration.service.impl.LockServiceImpl.acquireLock(LockServiceImpl.java:23) ... 41 common frames omitted Caused by: com.mongodb.MongoWriteException: Write operation error on server pl-0-eu-central-1.fsdhz.mongodb.net:1026. Write error: WriteError{code=11000, message='E11000 duplicate key error collection: plmcatc.mongration_changelogs index: _id_ dup key: { _id: "LOCK" }', details={}}. at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1032) at com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne(MongoCollectionImpl.java:475) at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:458) at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:452) at org.springframework.data.mongodb.core.MongoTemplate.lambda$insertDocument$16(MongoTemplate.java:1544) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:600) ... 45 common frames omitted
It seems that the library is trying to insert a lock into the collection mongration_changelogs, but a document with _id: "LOCK" already exists, resulting in a MongoDB duplicate key error.
Any idea?
I'm encountering an issue when starting the application using
mongration. The app is deployed on a Kubernetes pod, and the error happens at startup.This issue has started happening only in the last few days, and consistently occurs every morning at the first application start.
reactor.core.Exceptions$RetryExhaustedException: Retries exhausted: 0/0 at reactor.core.Exceptions.retryExhausted(Exceptions.java:306) at reactor.util.retry.RetryBackoffSpec.lambda$static$0(RetryBackoffSpec.java:68) at reactor.util.retry.RetryBackoffSpec.lambda$null$4(RetryBackoffSpec.java:560) at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:183) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471) at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615) at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:873) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:336) at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1717) at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:192) at reactor.core.publisher.Operators.error(Operators.java:198) at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:77) at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) at reactor.core.publisher.Mono.subscribe(Mono.java:4480) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2071) at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:371) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drain(FluxFlattenIterable.java:724) at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.onComplete(FluxFlattenIterable.java:273) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277) at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2072) at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:847) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:609) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:589) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:466) at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:357) at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) at reactor.core.publisher.Mono.subscribe(Mono.java:4495) at reactor.core.publisher.Mono.block(Mono.java:1711) at com.kuliginstepan.mongration.AbstractMongration.afterSingletonsInstantiated(AbstractMongration.java:68) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:984) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at com.enel.platform.catalog.CatalogApplication.main(CatalogApplication.java:35) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103) at reactor.core.publisher.Mono.block(Mono.java:1712) ... 15 common frames omitted Caused by: com.kuliginstepan.mongration.MongrationException: Mongration couldn't acquire process lock at com.kuliginstepan.mongration.service.impl.LockServiceImpl.acquireLock(LockServiceImpl.java:27) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:45) ... 40 common frames omitted Caused by: org.springframework.dao.DuplicateKeyException: Write operation error on server pl-0-eu-central-1.fsdhz.mongodb.net:1026. Write error: WriteError{code=11000, message='E11000 duplicate key error collection: plmcatc.mongration_changelogs index: _id_ dup key: { _id: "LOCK" }', details={}}. at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:104) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2932) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:602) at org.springframework.data.mongodb.core.MongoTemplate.insertDocument(MongoTemplate.java:1538) at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:1334) at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:1260) at com.kuliginstepan.mongration.service.impl.LockServiceImpl.acquireLock(LockServiceImpl.java:23) ... 41 common frames omitted Caused by: com.mongodb.MongoWriteException: Write operation error on server pl-0-eu-central-1.fsdhz.mongodb.net:1026. Write error: WriteError{code=11000, message='E11000 duplicate key error collection: plmcatc.mongration_changelogs index: _id_ dup key: { _id: "LOCK" }', details={}}. at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1032) at com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne(MongoCollectionImpl.java:475) at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:458) at com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:452) at org.springframework.data.mongodb.core.MongoTemplate.lambda$insertDocument$16(MongoTemplate.java:1544) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:600) ... 45 common frames omittedIt seems that the library is trying to insert a lock into the collection
mongration_changelogs, but a document with_id: "LOCK"already exists, resulting in a MongoDB duplicate key error.Any idea?