Skip to content

LMDB Rule issues (duplicate_check) #5200

@stroomdev10

Description

@stroomdev10

When running rules, m seeing messages such as

ERROR  [2025-10-16T00:01:00.061Z] [Stroom P2 #948710] stroom.analytics.impl.DuplicateCheckStorePool -  Error creating object for key <uuid>
java.lang.RuntimeException: Error creating LMDB env at /path/to/duplicate_check/<uuid>: Platform constant error code: ENOENT No such file or directory (2)
        at stroom.lmdb2.LmdbEnv.<init>(LmdbEnv.java:67)
        at stroom.lmdb2.LmdbEnv$Builder.build(LmdbEnv.java:259)
        at stroom.analytics.impl.DuplicateCheckStore.<init>(DuplicateCheckStore.java:89)
        at stroom.analytics.impl.DuplicateCheckFactoryImpl.lambda$new$0(DuplicateCheckFactoryImpl.java:41)
        at stroom.analytics.impl.DuplicateCheckStorePool.lambda$borrow$1(DuplicateCheckStorePool.java:48)
        at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916)
        at stroom.analytics.impl.DuplicateCheckStorePool.borrow(DuplicateCheckStorePool.java:43)
        at stroom.analytics.impl.DuplicateCheckFactoryImpl.create(DuplicateCheckFactoryImpl.java:65)
        at stroom.analytics.impl.ScheduledQueryAnalyticExecutor.process(ScheduledQueryAnalyticExecutor.java:223)
        at stroom.analytics.impl.ScheduledQueryAnalyticExecutor.process(ScheduledQueryAnalyticExecutor.java:81)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.lambda$execute$15(AbstractScheduledQueryExecutor.java:269)
        at stroom.analytics.impl.AnalyticErrorWriter.exec(AnalyticErrorWriter.java:72)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.execute(AbstractScheduledQueryExecutor.java:265)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.lambda$executeIfScheduled$13(AbstractScheduledQueryExecutor.java:224)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$2(TaskContextFactoryImpl.java:253)
        at stroom.util.logging.LocationAwareLambdaLogger.logDurationIfDebugEnabled(LocationAwareLambdaLogger.java:307)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$4(TaskContextFactoryImpl.java:253)
        at stroom.util.pipeline.scope.PipelineScopeRunnable.scopeResult(PipelineScopeRunnable.java:36)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$5(TaskContextFactoryImpl.java:250)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$6(TaskContextFactoryImpl.java:262)
        at stroom.security.impl.SecurityContextImpl.useAsReadResult(SecurityContextImpl.java:421)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:50)
        at jdk.proxy2/jdk.proxy2.$Proxy117.useAsReadResult(Unknown Source)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$7(TaskContextFactoryImpl.java:262)
        at stroom.security.impl.SecurityContextImpl.asUserResult(SecurityContextImpl.java:337)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:50)
        at jdk.proxy2/jdk.proxy2.$Proxy117.asUserResult(Unknown Source)
        at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$11(TaskContextFactoryImpl.java:260)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.executeIfScheduled(AbstractScheduledQueryExecutor.java:227)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.lambda$execRule$9(AbstractScheduledQueryExecutor.java:184)
        at stroom.security.impl.SecurityContextImpl.useAsRead(SecurityContextImpl.java:439)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.lambda$execRule$10(AbstractScheduledQueryExecutor.java:181)
        at stroom.security.impl.SecurityContextImpl.asUser(SecurityContextImpl.java:362)
        at stroom.security.impl.SecurityContextImpl.asUser(SecurityContextImpl.java:374)
        at stroom.analytics.impl.AbstractScheduledQueryExecutor.lambda$execRule$12(AbstractScheduledQueryExecutor.java:181)
        at stroom.util.concurrent.WorkQueue.lambda$new$0(WorkQueue.java:26)
        at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.lmdbjava.LmdbNativeException$ConstantDerivedException: Platform constant error code: ENOENT No such file or directory (2)
        at org.lmdbjava.ResultCodeMapper.checkRc(ResultCodeMapper.java:114)
        at org.lmdbjava.Env$Builder.open(Env.java:495)
        at org.lmdbjava.Env$Builder.open(Env.java:512)
        at stroom.lmdb2.LmdbEnv.<init>(LmdbEnv.java:65)

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions