Hello Felix, I did attempt a shot at this (with my agent) and likely got a fix for it. But I will need to validate the fix first before pushing it when I have time.
Stay tuned ^^. Quan On Fri, Sep 25, 2026 at 5:51 PM Felix Auringer <[email protected]> wrote: > Hello, > > For some time now, I have seen a timeout error in the postgres executor: > o.a.j.b.postgres.utils.PostgresExecutor - Time out executing Postgres > query. May need to check either jOOQ reactive issue or Postgres DB > performance. > This was mainly happening in TMail and was reported here: > https://github.com/linagora/tmail-backend/issues/1599 > > I have now found a way to reproduce this reliably with the Docker image > built from the current James master > (bf100353ac3c4fc76d9ecced7472528b43e1ca21). > When using opensearch as the search backend and triggering a full reindex > with curl -XPOST > 'http://<IP>:<port>/mailboxes?task=reIndex&messagesPerSecond=1', > I observe the following behavior: > > 2026-09-25T10:29:41.968Z [INFO ] o.a.j.webadmin.mdc.LoggingRequestFilter - > WebAdmin request received > 2026-09-25T10:29:41.974Z [INFO ] o.a.m.tools.indexer.ReIndexerPerformer - > Starting a full reindex > 2026-09-25T10:29:41.985Z [INFO ] o.a.j.webadmin.mdc.LoggingResponseFilter > - WebAdmin response received > 2026-09-25T10:29:43.178Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 1 > 2026-09-25T10:29:44.120Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 2 > 2026-09-25T10:29:45.125Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 3 > 2026-09-25T10:29:46.128Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 4 > 2026-09-25T10:29:47.131Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 5 > 2026-09-25T10:29:48.135Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 6 > 2026-09-25T10:29:49.137Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 7 > 2026-09-25T10:29:50.147Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 8 > 2026-09-25T10:29:51.143Z [INFO ] > o.a.j.m.o.e.OpenSearchListeningMessageSearchIndex - Indexing mailbox > email-88f7e4e1-cb74-47fb-a4f6-3046afc29714 of user re-indexing on message 9 > 2026-09-25T10:29:52.052Z [ERROR] o.a.j.b.postgres.utils.PostgresExecutor - > Time out executing Postgres query. May need to check either jOOQ reactive > issue or Postgres DB performance. > java.util.concurrent.TimeoutException: Did not observe any item or > terminal signal within 10000ms in 'flatMapMany' (and no fallback has been > configured) > at > reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296) > at > reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:281) > at > reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:420) > at > reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162) > at > reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270) > at > reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285) > at > reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) > at > reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) > at java.base/java.util.concurrent.FutureTask.run(Unknown Source) > at > java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown > Source) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at java.base/java.lang.Thread.run(Unknown Source) > 2026-09-25T10:29:52.058Z [INFO ] o.a.m.tools.indexer.ReIndexerPerformer - > Full reindex finished > 2026-09-25T10:29:52.059Z [ERROR] o.a.james.task.SerialTaskManagerWorker - > Task was partially performed. Check logs for more details. Taskid : > TaskId{value=9553e1df-9ad0-42d6-b90d-30c5882b8d17} > > This error always happens 10 seconds after starting the reindex task. > Therefore, exactly 9 batches of the size specified with messagesPerSecond > are processed. > When indexing 2 messages per second, the indexer manages to index the > first 18 messages, when indexing 5 messages per second, the first 45 > messages are indexed, and so on... > > I don't know much about this part of the codebase and would be happy about > help to debug this. > Did somebody else ever see this error or can somebody else reproduce it? > > Best regards, > Felix > --- > Gesellschaft für interkulturelles > Zusammenleben gGmbH (GIZ) > Felix Auringer > IT > Reformationsplatz 2 > 13597 Berlin > > Tel: 030/513 0100 00; Fax: 030/513 0100 09 > www.giz.berlin; [email protected] > > Amtsgericht Charlottenburg HRB 200872 B > Geschäftsführerin: Dr. Britta Marschke > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
