[
https://issues.apache.org/jira/browse/TIKA-4813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18103830#comment-18103830
]
Hudson commented on TIKA-4813:
------------------------------
SUCCESS: Integrated in Jenkins build Tika » tika-main-jdk17 #1533 (See
[https://ci-builds.apache.org/job/Tika/job/tika-main-jdk17/1533/])
TIKA-4813: unified timeout model (#3005) (github:
[https://github.com/apache/tika/commit/3d5bd05698e9fad05eba414dcc8fe41d6e9f37b1])
* (edit)
tika-core/src/main/java/org/apache/tika/sax/AbstractRecursiveParserWrapperHandler.java
* (edit)
tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/renderer/pdf/poppler/PopplerRenderer.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/resources/config-examples/claude-vlm-full.json
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/config-examples/tesseract-full.json
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/resources/config-examples/gemini-vlm-full.json
* (add) tika-core/src/main/java/org/apache/tika/config/ParseTimeout.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParserConfig.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/resources/configs/tika-config-tesseract-partial.json
* (edit)
tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/java/org/apache/tika/parser/vlm/GeminiVLMParserTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/java/org/apache/tika/parser/vlm/ClaudeVLMParserTest.java
* (add) tika-core/src/test/java/org/apache/tika/config/ParseTimeoutTest.java
* (edit) tika-core/src/main/java/org/apache/tika/detect/FileCommandDetector.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/InferenceConfig.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/resources/configs/tika-config-strings-partial.json
* (edit)
tika-detectors/tika-detector-magika/src/main/java/org/apache/tika/detect/magika/MagikaDetector.java
* (edit)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/test/java/org/apache/tika/parser/ocr/tess4j/Tess4JParserTest.java
* (edit) docs/modules/ROOT/pages/using-tika/cli/index.adoc
* (edit)
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/EmbeddedLimitsTest.java
* (edit)
tika-core/src/main/java/org/apache/tika/parser/external/ExternalParserConfig.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/server/ConnectionHandler.java
* (edit) tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/config-examples/migration-full-example.json
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/async/AsyncProcessor.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIEmbeddingFilterTest.java
* (edit) docs/modules/ROOT/pages/pipes/timeouts.adoc
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/UnrarParser.java
* (edit)
tika-app/src/test/java/org/apache/tika/cli/XmlToJsonConfigConverterTest.java
* (add)
tika-parsers/tika-http-jdk/src/test/java/org/apache/tika/http/TikaHttpClientTest.java
* (add)
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PartialTimeoutPassbackTest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/test/java/org/apache/tika/parser/ocr/tess4j/Tess4JConfigTest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
* (edit)
tika-pipes/tika-pipes-iterator-commons/src/main/java/org/apache/tika/pipes/pipesiterator/PipesIteratorBase.java
* (edit) tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
* (edit)
tika-parsers/tika-http-jdk/src/main/java/org/apache/tika/http/TikaHttpClient.java
* (edit)
tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/main/java/org/apache/tika/parser/vlm/VLMOCRConfig.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/strings/StringsConfigTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/resources/config-examples/openai-vlm-full.json
* (edit)
tika-core/src/main/java/org/apache/tika/metadata/TikaCoreProperties.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/server/EmitHandler.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
* (edit)
tika-pipes/tika-pipes-api/src/main/java/org/apache/tika/pipes/api/PipesResult.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/PipesClient.java
* (edit) tika-core/src/main/java/org/apache/tika/utils/FileProcessResult.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/OpenAIImageEmbeddingParserTest.java
* (edit) tika-core/src/main/java/org/apache/tika/config/TimeoutLimits.java
* (edit)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/test/resources/config-examples/tess4j-full.json
* (add)
tika-core/src/test/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractorTimeoutTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/main/java/org/apache/tika/parser/ocr/tess4j/Tess4JParser.java
* (edit)
tika-serialization/src/test/java/org/apache/tika/config/TimeoutLimitsTest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/test/resources/configs/tika-config-dwgRead-Timeout.json
* (edit)
tika-pipes/tika-pipes-plugins/tika-pipes-http/src/main/java/org/apache/tika/pipes/fetcher/http/HttpFetcher.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/ImageEmbeddingConfig.java
* (edit) tika-server/docker-build/sample-configs/vision/vlm-openai.json
* (edit)
tika-core/src/main/java/org/apache/tika/exception/TikaTimeoutException.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/OpenAIEmbeddingFilter.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/OpenAIImageEmbeddingParser.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/java/org/apache/tika/parser/vlm/OpenAIVLMParserTest.java
* (edit)
tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/PipesParsingHelper.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGReadParser.java
* (edit)
tika-pipes/tika-async-cli/src/test/java/org/apache/tika/async/cli/AsyncProcessorTest.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/async/AsyncEmitter.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/main/java/org/apache/tika/inference/AbstractEmbeddingFilter.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParserConfig.java
* (edit) tika-core/src/main/java/org/apache/tika/parser/ParseRecord.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/java/org/apache/tika/parser/RecursiveParserWrapperTest.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/server/ParseHandler.java
* (edit) tika-core/src/main/java/org/apache/tika/config/TikaProgressTracker.java
* (add)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/test/java/org/apache/tika/parser/ocr/tess4j/Tess4JOCRTimeoutTest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsConfig.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/test/java/org/apache/tika/parser/dwg/DWGParserTest.java
* (edit)
tika-core/src/test/java/org/apache/tika/config/TikaProgressTrackerTest.java
* (edit)
tika-core/src/test/java/org/apache/tika/detect/FileCommandDetectorTest.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/resources/configs/TIKA-3582-tesseract.json
* (edit) tika-app/src/test/resources/xml-configs/tika-config-list-map-types.xml
* (edit)
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-key-fields.json
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/resources/configs/tika-config-tesseract-full.json
* (edit)
tika-pipes/tika-pipes-integration-tests/src/test/java/org/apache/tika/pipes/core/PipesClientTest.java
* (edit)
tika-detectors/tika-detector-siegfried/src/main/java/org/apache/tika/detect/siegfried/SiegfriedDetector.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRConfig.java
* (edit)
tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/server/PipesServer.java
* (edit)
tika-parsers/tika-parsers-ml/tika-parser-tess4j-module/src/main/java/org/apache/tika/parser/ocr/tess4j/Tess4JConfig.java
* (edit) tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
* (edit)
tika-parsers/tika-http-jdk/src/test/java/org/apache/tika/http/TikaTestHttpServer.java
* (edit) tika-core/src/test/java/org/apache/tika/parser/mock/MockParser.java
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParser.java
* (add) tika-core/src/test/java/org/apache/tika/utils/ProcessUtilsTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-inference/src/test/java/org/apache/tika/inference/JinaEmbeddingFilterTest.java
* (edit)
tika-core/src/main/java/org/apache/tika/exception/EmbeddedLimitReachedException.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/main/java/org/apache/tika/parser/vlm/AbstractVLMParser.java
* (edit) tika-core/src/test/java/org/apache/tika/parser/CompositeParserTest.java
* (edit) docs/modules/ROOT/pages/advanced/setting-limits.adoc
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/test/java/org/apache/tika/parser/ocr/TesseractOCRConfigTest.java
* (edit)
tika-parsers/tika-parsers-ml/tika-vlm/src/test/resources/config-examples/openai-vlm-basic.json
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/resources/configs/tika-config-strings-full.json
* (edit)
tika-parsers/tika-parsers-standard/tika-parsers-standard-integration-tests/src/test/resources/config-examples/tesseract-basic.json
* (edit) docs/modules/ROOT/pages/migration-to-4x/migrating-tika-server-4x.adoc
* (edit) tika-core/src/main/java/org/apache/tika/utils/ProcessUtils.java
* (edit) docs/modules/ROOT/pages/using-tika/server/index.adoc
* (edit)
tika-metadata-schema/src/main/resources/org/apache/tika/metadata/metadata-keys.json
> Clean up timeout logic in 4.x
> -----------------------------
>
> Key: TIKA-4813
> URL: https://issues.apache.org/jira/browse/TIKA-4813
> Project: Tika
> Issue Type: Task
> Reporter: Tim Allison
> Priority: Minor
>
> Problem: Tika's timeout system was three incoherent knobs. A parser's own
> configured timeout got overwritten by an unrelated stall-detector setting.
> Timeouts couldn't compose across nesting (PDF → zip → OCR). A single
> timed-out subprocess could kill the whole worker JVM instead of just failing
> that one document.
> Proposal: every external call gets min(what it asked for, time left on the
> task). ParseTimeout (new, in tika-core) holds that remaining-time clock per
> task, shared automatically across
> recursion. ProcessUtils/TikaHttpClient apply the rule internally and
> checkpoint the clock while waiting, so a legitimately slow call doesn't look
> like a hang. TikaTimeoutException is now catchable (was an uncaught
> RuntimeException), so one slow embedded file gets recorded and skipped
> instead of aborting the whole document; running out of total time now
> truncates cleanly instead of crashing the JVM.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)