You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2026/08/31 12:59:20 UTC
(tika) branch TIKA-4863-omp-thread-limit created (now 584b0e6c77)
This is an automated email from the ASF dual-hosted git repository.
tballison pushed a change to branch TIKA-4863-omp-thread-limit
in repository https://gitbox.apache.org/repos/asf/tika.git
at 584b0e6c77 TIKA-4863 - omp thread limit
This branch includes the following new commits:
new 584b0e6c77 TIKA-4863 - omp thread limit
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(tika) 01/01: TIKA-4863 - omp thread limit
Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tballison pushed a commit to branch TIKA-4863-omp-thread-limit
in repository https://gitbox.apache.org/repos/asf/tika.git
commit 584b0e6c77717012fd03cc27c37823ff9c56e57b
Author: tallison <ta...@apache.org>
AuthorDate: Mon Aug 31 08:59:08 2026 -0400
TIKA-4863 - omp thread limit
---
CHANGES.txt | 6 ++++++
tika-grpc/docker-build/Dockerfile | 2 ++
tika-server/docker-build/full/Dockerfile | 2 ++
tika-server/docker-build/full/Dockerfile.snapshot | 2 ++
4 files changed, 12 insertions(+)
diff --git a/CHANGES.txt b/CHANGES.txt
index ce09fe0392..cfc2c66ea6 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,11 @@
Release 4.1.0 - unreleased
+ * The tika-server full and tika-grpc Docker images set OMP_THREAD_LIMIT=1:
+ the distro tesseract links OpenMP and runs up to 4 threads per OCR
+ process, which oversubscribes the CPU under forked parse workers;
+ single-threaded tesseract with process-level parallelism is the
+ tesseract project's guidance for servers (TIKA-XXXX).
+
* embedded-limits maxDepth counts embedding levels again instead of the
parsers a parse passes through; with AutoDetectParser over DefaultParser
every value above 1 used to stop one level early (TIKA-4857).
diff --git a/tika-grpc/docker-build/Dockerfile b/tika-grpc/docker-build/Dockerfile
index 1a19270261..73e2a5986d 100644
--- a/tika-grpc/docker-build/Dockerfile
+++ b/tika-grpc/docker-build/Dockerfile
@@ -56,6 +56,8 @@ USER $UID_GID
EXPOSE 9090
ENV TIKA_VERSION=$VERSION
+# tesseract links libgomp; one thread per OCR process - parallelism comes from the forked parse workers
+ENV OMP_THREAD_LIMIT=1
ENV TIKA_GRPC_MAX_INBOUND_MESSAGE_SIZE=$TIKA_GRPC_MAX_INBOUND_MESSAGE_SIZE
ENV TIKA_GRPC_MAX_OUTBOUND_MESSAGE_SIZE=$TIKA_GRPC_MAX_OUTBOUND_MESSAGE_SIZE
ENV TIKA_GRPC_NUM_THREADS=$TIKA_GRPC_NUM_THREADS
diff --git a/tika-server/docker-build/full/Dockerfile b/tika-server/docker-build/full/Dockerfile
index 722b22aab2..15f9f276ed 100644
--- a/tika-server/docker-build/full/Dockerfile
+++ b/tika-server/docker-build/full/Dockerfile
@@ -73,6 +73,8 @@ RUN set -eux \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ARG TIKA_VERSION
ENV TIKA_VERSION=$TIKA_VERSION
+# tesseract links libgomp; one thread per OCR process - parallelism comes from the forked parse workers
+ENV OMP_THREAD_LIMIT=1
COPY --from=fetch_tika /opt/tika-server /opt/tika-server
# WORKDIR sets the CWD so tika-server's plugin-root fallback resolves
diff --git a/tika-server/docker-build/full/Dockerfile.snapshot b/tika-server/docker-build/full/Dockerfile.snapshot
index 5dc5dd253a..0df341cd30 100644
--- a/tika-server/docker-build/full/Dockerfile.snapshot
+++ b/tika-server/docker-build/full/Dockerfile.snapshot
@@ -44,6 +44,8 @@ RUN set -eux \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ENV TIKA_VERSION=$TIKA_VERSION
+# tesseract links libgomp; one thread per OCR process - parallelism comes from the forked parse workers
+ENV OMP_THREAD_LIMIT=1
# Snapshot workflow tars the bin distribution into <context>/tika-server/, so
# this COPY lands the thin jar + lib/ + plugins/ at /opt/tika-server/, matching
# the release-variant Dockerfile.