Y, makes sense.  Should we drop those to trace?  Or is there a better option?

On Fri, Oct 7, 2022 at 6:57 AM Markus Jelsma <[email protected]> wrote:
>
> Hello Tim,
>
> You are right, we can switch that class' level higher. But in general i don't 
> believe it is great to write 4 to 5 big stack traces at the debug logging 
> level as usually that level already has a big number of log lines.
>
> If the trace is not necessary for ExternalParser users to fix a problem, 
> maybe a single log line would suffice instead.
>
> Thanks!
> Markus
>
> Op wo 5 okt. 2022 om 14:53 schreef Tim Allison <[email protected]>:
>>
>> If you need DEBUG elsewhere, can you selectively turn logging for the
>> ExternalParser to ERROR?  Or is there a fix you'd recommend on the
>> Tika side?
>>
>> On Wed, Oct 5, 2022 at 7:22 AM Markus Jelsma <[email protected]> 
>> wrote:
>> >
>> > Hello,
>> >
>> > We use Tika embedded in our Java programs and recently upgraded from one 
>> > of the last 1.x to 2.x, currently 2.4.1.
>> >
>> > Since then, with debug logging on, Tika spews out a few pretty bug and 
>> > partially repeating exceptions. This is not a real runtime problem, but 
>> > just a distracting nuisance as my attention triggers when seeing stack 
>> > traces.
>> >
>> > Is there something to do about it?
>> >
>> > This is the exif related trace:
>> > 2022-10-05 13:16:42,136 DEBUG 
>> > [TEST-SequenceBlockMarkerTest.testDierenforum-seed#[5F443E2359FE59DA]] 
>> > external.ExternalParser (ExternalParser.java:172) - exit
>> > value for ffmpeg: 0
>> > 2022-10-05 13:16:42,140 DEBUG 
>> > [TEST-SequenceBlockMarkerTest.testDierenforum-seed#[5F443E2359FE59DA]] 
>> > external.ExternalParser (ExternalParser.java:180) - exce
>> > ption trying to run  exiftool
>> > java.io.IOException: Cannot run program "exiftool": error=2, No such file 
>> > or directory
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) ~[?:?]
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) ~[?:?]
>> >        at java.lang.Runtime.exec(Runtime.java:592) ~[?:?]
>> >        at java.lang.Runtime.exec(Runtime.java:451) ~[?:?]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParser.check(ExternalParser.java:161)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersConfigReader.readCheckTagAndCheck(ExternalParsersConfigReader.java:203)
>> >  ~[tika-core-2.4.1.jar:2.4.1
>> > ]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersConfigReader.readParser(ExternalParsersConfigReader.java:110)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:80)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:67)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:60)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:67)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:60)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:49)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:44)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:42)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:37)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
>> > Method) ~[?:?]
>> >        at 
>> > jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>> >  ~[?:?]
>> >        at 
>> > jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>> >  ~[?:?]
>> >        at java.lang.reflect.Constructor.newInstance(Constructor.java:490) 
>> > ~[?:?]
>> >        at java.lang.Class.newInstance(Class.java:584) ~[?:?]
>> >        at 
>> > org.apache.tika.utils.ServiceLoaderUtils.newInstance(ServiceLoaderUtils.java:80)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.ServiceLoader.loadStaticServiceProviders(ServiceLoader.java:345)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.getDefaultParsers(DefaultParser.java:105)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:52) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:66) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig.getDefaultParser(TikaConfig.java:291) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.access$900(TikaConfig.java:87) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:878)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:824)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$XmlLoader.loadOverall(TikaConfig.java:648)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:170) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:150) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:142) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:138) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:119) 
>> > ~[test-classes/:?]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:112) 
>> > ~[test-classes/:?]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:106) 
>> > ~[test-classes/:?]
>> >        at 
>> > io.openindex.sax.readable.marker.block.SequenceBlockMarkerTest.testDierenforum(SequenceBlockMarkerTest.java:91)
>> >  ~[test-classes/:?]
>> >        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
>> > Method) ~[?:?]
>> >        at 
>> > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> >  ~[?:?]
>> >        at 
>> > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> >  ~[?:?]
>> >        at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$2.evaluate(ThreadLeakControl.java:426)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.runSuite(RandomizedRunner.java:716)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.access$200(RandomizedRunner.java:138)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:637)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> > Caused by: java.io.IOException: error=2, No such file or directory
>> >        at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?]
>> >        at java.lang.ProcessImpl.<init>(ProcessImpl.java:340) ~[?:?]
>> >        at java.lang.ProcessImpl.start(ProcessImpl.java:271) ~[?:?]
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ~[?:?]
>> >        ... 59 more
>> >
>> > And here the Tesseract related trace:
>> > 2022-10-05 13:16:42,331 DEBUG 
>> > [TEST-SequenceBlockMarkerTest.testDierenforum-seed#[5F443E2359FE59DA]] 
>> > external.ExternalParser (ExternalParser.java:180) - exce
>> > ption trying to run  tesseract
>> > java.io.IOException: Cannot run program "tesseract": error=2, No such file 
>> > or directory
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) ~[?:?]
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) ~[?:?]
>> >        at java.lang.Runtime.exec(Runtime.java:592) ~[?:?]
>> >        at java.lang.Runtime.exec(Runtime.java:451) ~[?:?]
>> >        at 
>> > org.apache.tika.parser.external.ExternalParser.check(ExternalParser.java:161)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.ocr.TesseractOCRParser.hasTesseract(TesseractOCRParser.java:187)
>> >  ~[tika-parsers-standard-package-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.ocr.TesseractOCRParser.initialize(TesseractOCRParser.java:529)
>> >  ~[tika-parsers-standard-package-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.ServiceLoader.loadStaticServiceProviders(ServiceLoader.java:347)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.getDefaultParsers(DefaultParser.java:105)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:52) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:66) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig.getDefaultParser(TikaConfig.java:291) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.access$900(TikaConfig.java:87) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:878)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:824)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at 
>> > org.apache.tika.config.TikaConfig$XmlLoader.loadOverall(TikaConfig.java:648)
>> >  ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:170) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:150) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:142) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:138) 
>> > ~[tika-core-2.4.1.jar:2.4.1]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:119) 
>> > ~[test-classes/:?]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:112) 
>> > ~[test-classes/:?]
>> >        at io.openindex.sax.SAXTestCase.getHandler(SAXTestCase.java:106) 
>> > ~[test-classes/:?]
>> >        at 
>> > io.openindex.sax.readable.marker.block.SequenceBlockMarkerTest.testDierenforum(SequenceBlockMarkerTest.java:91)
>> >  ~[test-classes/:?]
>> >        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
>> > Method) ~[?:?]
>> >        at 
>> > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> >  ~[?:?]
>> >        at 
>> > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> >  ~[?:?]
>> >        at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.ThreadLeakControl$2.evaluate(ThreadLeakControl.java:426)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.runSuite(RandomizedRunner.java:716)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner.access$200(RandomizedRunner.java:138)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> >        at 
>> > com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:637)
>> >  ~[randomizedtesting-runner-2.8.0.jar:?]
>> > Caused by: java.io.IOException: error=2, No such file or directory
>> >        at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?]
>> >        at java.lang.ProcessImpl.<init>(ProcessImpl.java:340) ~[?:?]
>> >        at java.lang.ProcessImpl.start(ProcessImpl.java:271) ~[?:?]
>> >        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ~[?:?]
>> >        ... 44 more
>> >
>> > Thanks,
>> > Markus

Reply via email to