Skip to content

Flaky ReaderLeftBehindTest.testClosePoolWhenReaderIsOut #6266

@puzpuzpuz

Description

@puzpuzpuz

To reproduce

linux-cairo:

2025-10-10T15:08:04.8019114Z 2025-10-10T15:08:04.799106Z I i.q.t.TestListener >>>> io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut
2025-10-10T15:08:04.8104691Z 2025-10-10T15:08:04.807592Z I i.q.t.AbstractTest Starting test ReaderLeftBehindTest#testClosePoolWhenReaderIsOut
2025-10-10T15:08:04.8131571Z 2025-10-10T15:08:04.811366Z I i.q.c.TableNameRegistryStore reloading tables file [path=/tmp/junit7031862028104186063/dbRoot/tables.d.0, threadId=24508]
2025-10-10T15:08:04.8353503Z >>>>= io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut
2025-10-10T15:08:04.8446159Z 2025-10-10T15:08:04.826842Z I i.q.c.p.ReaderPool shutting down, table is left behind [table=x~]: Time-limited test borrowed ReaderPool.R{index=0, detached=false, detachedRefCount=0}:
2025-10-10T15:08:04.8490411Z 	at java.base/java.lang.Thread.getStackTrace(Thread.java:1619)
2025-10-10T15:08:04.8491443Z 	at [email protected]/io.questdb.cairo.pool.TracingResourcePoolSupervisor.onResourceBorrowed(TracingResourcePoolSupervisor.java:23)
2025-10-10T15:08:04.8492385Z 	at [email protected]/io.questdb.cairo.pool.TracingResourcePoolSupervisor.onResourceBorrowed(TracingResourcePoolSupervisor.java:12)
2025-10-10T15:08:04.8493564Z 	at [email protected]/io.questdb.cairo.pool.AbstractMultiTenantPool.get0(AbstractMultiTenantPool.java:279)
2025-10-10T15:08:04.8494343Z 	at [email protected]/io.questdb.cairo.pool.AbstractMultiTenantPool.get(AbstractMultiTenantPool.java:80)
2025-10-10T15:08:04.8495133Z 	at io.questdb.test/io.questdb.test.cairo.pool.ReaderLeftBehindTest.lambda$testClosePoolWhenReaderIsOut$0(ReaderLeftBehindTest.java:69)
2025-10-10T15:08:04.8495924Z 	at io.questdb.test/io.questdb.test.AbstractCairoTest.lambda$assertMemoryLeak$9(AbstractCairoTest.java:1258)
2025-10-10T15:08:04.8496663Z 	at io.questdb.test/io.questdb.test.tools.TestUtils.assertMemoryLeak(TestUtils.java:741)
2025-10-10T15:08:04.8497384Z 	at io.questdb.test/io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1253)
2025-10-10T15:08:04.8498104Z 	at io.questdb.test/io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1236)
2025-10-10T15:08:04.8499060Z 	at io.questdb.test/io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut(ReaderLeftBehindTest.java:62)
2025-10-10T15:08:04.8499931Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2025-10-10T15:08:04.8501357Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2025-10-10T15:08:04.8504427Z 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-10-10T15:08:04.8504969Z 	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
2025-10-10T15:08:04.8505491Z 	at [email protected]/org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
2025-10-10T15:08:04.8506166Z 	at [email protected]/org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
2025-10-10T15:08:04.8506824Z 	at [email protected]/org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
2025-10-10T15:08:04.8507378Z 	at [email protected]/org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
2025-10-10T15:08:04.8508057Z 	at [email protected]/org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
2025-10-10T15:08:04.8508764Z 	at [email protected]/org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
2025-10-10T15:08:04.8509689Z 	at [email protected]/org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
2025-10-10T15:08:04.8510862Z 	at [email protected]/org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
2025-10-10T15:08:04.8511399Z 	at [email protected]/org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
2025-10-10T15:08:04.8511860Z 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2025-10-10T15:08:04.8512225Z 	at java.base/java.lang.Thread.run(Thread.java:840)
2025-10-10T15:08:04.8512581Z 2025-10-10T15:08:04.843495Z E i.q.t.AbstractCairoTest Exception in test: 
2025-10-10T15:08:04.8512968Z java.lang.AssertionError: Message 'ReaderLeftBehindTest.java:69' was not logged
2025-10-10T15:08:04.8513329Z 	at org.junit.Assert.fail(Assert.java:89)
2025-10-10T15:08:04.8513687Z 	at io.questdb.test.tools.LogCapture.assertLogged(LogCapture.java:32)
2025-10-10T15:08:04.8514167Z 	at io.questdb.test.cairo.pool.ReaderLeftBehindTest.lambda$testClosePoolWhenReaderIsOut$0(ReaderLeftBehindTest.java:78)
2025-10-10T15:08:04.8514661Z 	at io.questdb.test.AbstractCairoTest.lambda$assertMemoryLeak$9(AbstractCairoTest.java:1258)
2025-10-10T15:08:04.8515094Z 	at io.questdb.test.tools.TestUtils.assertMemoryLeak(TestUtils.java:741)
2025-10-10T15:08:04.8515517Z 	at io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1253)
2025-10-10T15:08:04.8515950Z 	at io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1236)
2025-10-10T15:08:04.8516422Z 	at io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut(ReaderLeftBehindTest.java:62)
2025-10-10T15:08:04.8516850Z 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2025-10-10T15:08:04.8517374Z 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2025-10-10T15:08:04.8517840Z 	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-10-10T15:08:04.8518259Z 	at java.lang.reflect.Method.invoke(Method.java:569)
2025-10-10T15:08:04.8518657Z 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
2025-10-10T15:08:04.8519105Z 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
2025-10-10T15:08:04.8519721Z 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
2025-10-10T15:08:04.8520162Z 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
2025-10-10T15:08:04.8520596Z 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
2025-10-10T15:08:04.8521015Z 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
2025-10-10T15:08:04.8521419Z 	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
2025-10-10T15:08:04.8521858Z 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
2025-10-10T15:08:04.8522362Z 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
2025-10-10T15:08:04.8522813Z 	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
2025-10-10T15:08:04.8523159Z 	at java.lang.Thread.run(Thread.java:840)
2025-10-10T15:08:04.8523317Z 
2025-10-10T15:08:04.8523671Z 2025-10-10T15:08:04.843908Z I i.q.t.AbstractCairoTest Tearing down test ReaderLeftBehindTest#testClosePoolWhenReaderIsOut
2025-10-10T15:08:04.8524127Z 2025-10-10T15:08:04.844215Z I i.q.t.AbstractTest Finished test ReaderLeftBehindTest#testClosePoolWhenReaderIsOut
2025-10-10T15:08:04.8712190Z 2025-10-10T15:08:04.870265Z E i.q.t.TestListener ***** Test Failed ***** io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut duration_ms=71 : 
2025-10-10T15:08:04.8716624Z java.lang.AssertionError: Message 'ReaderLeftBehindTest.java:69' was not logged
2025-10-10T15:08:04.8717389Z 	at org.junit.Assert.fail(Assert.java:89)
2025-10-10T15:08:04.8717870Z 	at io.questdb.test.tools.LogCapture.assertLogged(LogCapture.java:32)
2025-10-10T15:08:04.8739818Z 	at io.questdb.test.cairo.pool.ReaderLeftBehindTest.lambda$testClosePoolWhenReaderIsOut$0(ReaderLeftBehindTest.java:78)
2025-10-10T15:08:04.8740455Z 	at io.questdb.test.AbstractCairoTest.lambda$assertMemoryLeak$9(AbstractCairoTest.java:1258)
2025-10-10T15:08:04.8740920Z 	at io.questdb.test.tools.TestUtils.assertMemoryLeak(TestUtils.java:741)
2025-10-10T15:08:04.8741363Z 	at io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1253)
2025-10-10T15:08:04.8741811Z 	at io.questdb.test.AbstractCairoTest.assertMemoryLeak(AbstractCairoTest.java:1236)
2025-10-10T15:08:04.8742351Z 	at io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut(ReaderLeftBehindTest.java:62)
2025-10-10T15:08:04.8742814Z 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2025-10-10T15:08:04.8743235Z 	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2025-10-10T15:08:04.8743716Z 	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-10-10T15:08:04.8744139Z 	at java.lang.reflect.Method.invoke(Method.java:569)
2025-10-10T15:08:04.8744554Z 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
2025-10-10T15:08:04.8745001Z 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
2025-10-10T15:08:04.8745445Z 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
2025-10-10T15:08:04.8745890Z 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
2025-10-10T15:08:04.8746322Z 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
2025-10-10T15:08:04.8746905Z 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
2025-10-10T15:08:04.8747312Z 	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
2025-10-10T15:08:04.8747755Z 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
2025-10-10T15:08:04.8748255Z 	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
2025-10-10T15:08:04.8748681Z 	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
2025-10-10T15:08:04.8749030Z 	at java.lang.Thread.run(Thread.java:840)
2025-10-10T15:08:04.8749426Z 
2025-10-10T15:08:04.8749827Z 2025-10-10T15:08:04.870379Z I i.q.t.TestListener <<<< io.questdb.test.cairo.pool.ReaderLeftBehindTest.testClosePoolWhenReaderIsOut duration_ms=71

QuestDB version:

master

OS, in case of Docker specify Docker and the Host OS:

Linux

File System, in case of Docker specify Host File System:

ext4

Full Name:

Andrei Pechkurov

Affiliation:

QuestDB

Have you followed Linux, MacOs kernel configuration steps to increase Maximum open files and Maximum virtual memory areas limit?

  • Yes, I have

Additional context

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions