You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hop.apache.org by Mikhail Khludnev <mk...@apache.org> on 2023/05/21 06:18:16 UTC

Hop GUI freeze after an error

Hello,
I'm experimenting with tiny pipeline. It seems every time exception occurs,
threads stuck in livelock(iirc). I put some logs and stacks below.
Question:
 - do you pursue usability perfection for GUI, or it's a dead end and you
move toward web UI?
 - is it worth to raise an issue?

Here's an error that's not a problem:
2023/05/20 14:22:12 - solr-docs - Execution started for pipeline [solr-docs]
2023/05/20 14:22:13 - Generate rows.0 - Finished processing (I=0, O=0, R=0,
W=10, U=0, E=0)
org.apache.hop.core.exception.HopException:
The specified field '{0}' could not be found in the input.

2023/05/20 14:22:13 - Fake data - products.0 - Finished processing (I=0,
O=0, R=10, W=10, U=0, E=0)
        at
org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
        at
org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
        at java.base/java.lang.Thread.run(Thread.java:833)
2023/05/20 14:22:13 - JSON output.0 - ERROR: Unexpected error
2023/05/20 14:22:13 - JSON output.0 - ERROR:
org.apache.hop.core.exception.HopException:
2023/05/20 14:22:13 - JSON output.0 - The specified field '{0}' could not
be found in the input.
2023/05/20 14:22:13 - JSON output.0 -
2023/05/20 14:22:13 - JSON output.0 -   at
org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
2023/05/20 14:22:13 - JSON output.0 -   at
org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
2023/05/20 14:22:13 - JSON output.0 -   at
java.base/java.lang.Thread.run(Thread.java:833)
2023/05/20 14:22:13 - JSON output.0 - Finished processing (I=0, O=0, R=1,
W=0, U=0, E=1)
2023/05/20 14:22:13 - solr-docs - Pipeline detected one or more transforms
with errors.
2023/05/20 14:22:13 - solr-docs - Pipeline is killing the other transforms!
2023/05/20 14:22:13 - solr-docs - Pipeline duration : 1.035 seconds [
1.034" ]

but it causes thread stuck (find 0x0000000092b2e408):

"main" #1 prio=5 os_prio=0 cpu=196921.88ms elapsed=50520.47s
tid=0x00000198b9c56250 nid=0x6454 waiting for monitor entry
[0x00000083d1eff000]
   java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3284)
- waiting to lock <0x0000000092b2e408> (a
org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3279)
at
org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate.refreshView(HopGuiPipelineGridDelegate.java:352)
at
org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1.lambda$run$0(HopGuiPipelineGridDelegate.java:259)
at
org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1$$Lambda$350/0x000000080112bd80.run(Unknown
Source)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
- locked <0x0000000096284228> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4029)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
at org.apache.hop.ui.hopgui.HopGui.open(HopGui.java:474)
at org.apache.hop.ui.hopgui.HopGui.main(HopGui.java:352)


"solr-docs - REST client" #282 prio=5 os_prio=0 cpu=15.62ms elapsed=165.46s
tid=0x00000198e17bd250 nid=0x37ec in Object.wait()  [0x00000083d42fe000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@17.0.6/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait(java.base@17.0.6/Object.java:338)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:200)
- locked <0x00000000915845d0> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
at
org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.checkErrorVisuals(HopGuiPipelineGraph.java:4647)
at
org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.lambda$startThreads$17(HopGuiPipelineGraph.java:4546)
at
org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph$$Lambda$374/0x0000000801150f20.finished(Unknown
Source)
at
org.apache.hop.pipeline.Pipeline.firePipelineExecutionFinishedListeners(Pipeline.java:1326)
- locked <0x0000000092b2e600> (a
java.util.Collections$SynchronizedRandomAccessList)
at
org.apache.hop.pipeline.Pipeline.lambda$startThreads$0(Pipeline.java:1142)
- locked <0x0000000092b2e408> (a
org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
at
org.apache.hop.pipeline.Pipeline$$Lambda$381/0x00000008011523d8.transformFinished(Unknown
Source)
at
org.apache.hop.pipeline.transform.BaseTransform.fireTransformFinishedListeners(BaseTransform.java:2779)
- locked <0x0000000092026e60> (a
java.util.Collections$SynchronizedRandomAccessList)
- locked <0x00000000922d0390> (a
org.apache.hop.pipeline.transforms.rest.Rest)
at
org.apache.hop.pipeline.transform.BaseTransform.markStop(BaseTransform.java:2768)
- locked <0x00000000922d0390> (a
org.apache.hop.pipeline.transforms.rest.Rest)
at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:142)
at java.lang.Thread.run(java.base@17.0.6/Thread.java:833)

Attaching these files.
-- 
Sincerely yours
Mikhail Khludnev

Re: Hop GUI freeze after an error

Posted by Mikhail Khludnev <mk...@apache.org>.
Hello Brandon,
Thanks. The error itself is obvious. My point was the annoying GUI freeze.
However, I just realised my fault: I run jdk 17 which is not recommended.
Today I switched to 11th, so far it's ok. I'll check it out and follow up
later.
Thanks again!

On Mon, May 22, 2023 at 3:41 PM Brandon Jackson <us...@gmail.com> wrote:

> Are you running a "Script" step somewhere and did not chose a language and
> included jar file?
> https://hop.apache.org/manual/latest/pipeline/transforms/script.html
>
> I ask because of the hop.error-script.txt message.  If so, I suggest
> editing those to perfection before doing anything fancy.
> Their error messages can be tricky as they come from a different language
> like Javascript, Jython, and bubble up the Java stacktrace.
> The most common types of errors are running functions on nulls, or using if
> statements to test variables for values without extra care.
>
>
> On Sun, May 21, 2023 at 3:08 AM Bart Maertens <ba...@apache.org> wrote:
>
> > Hi Mikhail,
> >
> > We *do* aim to make Hop Gui as good as possible, but perfection is hard
> to
> > achieve ;-)
> >
> > It is definitely worth raising an issue. If you do create a bug ticket,
> > a reproduction path (and pipeline) is always very helpful.
> >
> > Regards,
> > Bart
> >
> >
> > On Sun, May 21, 2023 at 8:19 AM Mikhail Khludnev <mk...@apache.org>
> wrote:
> >
> > > Hello,
> > > I'm experimenting with tiny pipeline. It seems every time exception
> > > occurs, threads stuck in livelock(iirc). I put some logs and stacks
> > below.
> > > Question:
> > >  - do you pursue usability perfection for GUI, or it's a dead end and
> you
> > > move toward web UI?
> > >  - is it worth to raise an issue?
> > >
> > > Here's an error that's not a problem:
> > > 2023/05/20 14:22:12 - solr-docs - Execution started for pipeline
> > > [solr-docs]
> > > 2023/05/20 14:22:13 - Generate rows.0 - Finished processing (I=0, O=0,
> > > R=0, W=10, U=0, E=0)
> > > org.apache.hop.core.exception.HopException:
> > > The specified field '{0}' could not be found in the input.
> > >
> > > 2023/05/20 14:22:13 - Fake data - products.0 - Finished processing
> (I=0,
> > > O=0, R=10, W=10, U=0, E=0)
> > >         at
> > >
> >
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
> > >         at
> > > org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
> > >         at java.base/java.lang.Thread.run(Thread.java:833)
> > > 2023/05/20 14:22:13 - JSON output.0 - ERROR: Unexpected error
> > > 2023/05/20 14:22:13 - JSON output.0 - ERROR:
> > > org.apache.hop.core.exception.HopException:
> > > 2023/05/20 14:22:13 - JSON output.0 - The specified field '{0}' could
> not
> > > be found in the input.
> > > 2023/05/20 14:22:13 - JSON output.0 -
> > > 2023/05/20 14:22:13 - JSON output.0 -   at
> > >
> >
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
> > > 2023/05/20 14:22:13 - JSON output.0 -   at
> > > org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
> > > 2023/05/20 14:22:13 - JSON output.0 -   at
> > > java.base/java.lang.Thread.run(Thread.java:833)
> > > 2023/05/20 14:22:13 - JSON output.0 - Finished processing (I=0, O=0,
> R=1,
> > > W=0, U=0, E=1)
> > > 2023/05/20 14:22:13 - solr-docs - Pipeline detected one or more
> > transforms
> > > with errors.
> > > 2023/05/20 14:22:13 - solr-docs - Pipeline is killing the other
> > transforms!
> > > 2023/05/20 14:22:13 - solr-docs - Pipeline duration : 1.035 seconds [
> > > 1.034" ]
> > >
> > > but it causes thread stuck (find 0x0000000092b2e408):
> > >
> > > "main" #1 prio=5 os_prio=0 cpu=196921.88ms elapsed=50520.47s
> > > tid=0x00000198b9c56250 nid=0x6454 waiting for monitor entry
> > > [0x00000083d1eff000]
> > >    java.lang.Thread.State: BLOCKED (on object monitor)
> > > at
> org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3284)
> > > - waiting to lock <0x0000000092b2e408> (a
> > > org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> > > at
> org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3279)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate.refreshView(HopGuiPipelineGridDelegate.java:352)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1.lambda$run$0(HopGuiPipelineGridDelegate.java:259)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1$$Lambda$350/0x000000080112bd80.run(Unknown
> > > Source)
> > > at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
> > > at
> > >
> >
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
> > > - locked <0x0000000096284228> (a org.eclipse.swt.widgets.RunnableLock)
> > > at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4029)
> > > at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
> > > at org.apache.hop.ui.hopgui.HopGui.open(HopGui.java:474)
> > > at org.apache.hop.ui.hopgui.HopGui.main(HopGui.java:352)
> > >
> > >
> > > "solr-docs - REST client" #282 prio=5 os_prio=0 cpu=15.62ms
> > > elapsed=165.46s tid=0x00000198e17bd250 nid=0x37ec in Object.wait()
> > > [0x00000083d42fe000]
> > >    java.lang.Thread.State: WAITING (on object monitor)
> > > at java.lang.Object.wait(java.base@17.0.6/Native Method)
> > > - waiting on <no object reference available>
> > > at java.lang.Object.wait(java.base@17.0.6/Object.java:338)
> > > at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:200)
> > > - locked <0x00000000915845d0> (a org.eclipse.swt.widgets.RunnableLock)
> > > at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.checkErrorVisuals(HopGuiPipelineGraph.java:4647)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.lambda$startThreads$17(HopGuiPipelineGraph.java:4546)
> > > at
> > >
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph$$Lambda$374/0x0000000801150f20.finished(Unknown
> > > Source)
> > > at
> > >
> >
> org.apache.hop.pipeline.Pipeline.firePipelineExecutionFinishedListeners(Pipeline.java:1326)
> > > - locked <0x0000000092b2e600> (a
> > > java.util.Collections$SynchronizedRandomAccessList)
> > > at
> > >
> >
> org.apache.hop.pipeline.Pipeline.lambda$startThreads$0(Pipeline.java:1142)
> > > - locked <0x0000000092b2e408> (a
> > > org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> > > at
> > >
> >
> org.apache.hop.pipeline.Pipeline$$Lambda$381/0x00000008011523d8.transformFinished(Unknown
> > > Source)
> > > at
> > >
> >
> org.apache.hop.pipeline.transform.BaseTransform.fireTransformFinishedListeners(BaseTransform.java:2779)
> > > - locked <0x0000000092026e60> (a
> > > java.util.Collections$SynchronizedRandomAccessList)
> > > - locked <0x00000000922d0390> (a
> > > org.apache.hop.pipeline.transforms.rest.Rest)
> > > at
> > >
> >
> org.apache.hop.pipeline.transform.BaseTransform.markStop(BaseTransform.java:2768)
> > > - locked <0x00000000922d0390> (a
> > > org.apache.hop.pipeline.transforms.rest.Rest)
> > > at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:142)
> > > at java.lang.Thread.run(java.base@17.0.6/Thread.java:833)
> > >
> > > Attaching these files.
> > > --
> > > Sincerely yours
> > > Mikhail Khludnev
> > >
> > >
> >
>


-- 
Sincerely yours
Mikhail Khludnev

Re: Hop GUI freeze after an error

Posted by Brandon Jackson <us...@gmail.com>.
Are you running a "Script" step somewhere and did not chose a language and
included jar file?
https://hop.apache.org/manual/latest/pipeline/transforms/script.html

I ask because of the hop.error-script.txt message.  If so, I suggest
editing those to perfection before doing anything fancy.
Their error messages can be tricky as they come from a different language
like Javascript, Jython, and bubble up the Java stacktrace.
The most common types of errors are running functions on nulls, or using if
statements to test variables for values without extra care.


On Sun, May 21, 2023 at 3:08 AM Bart Maertens <ba...@apache.org> wrote:

> Hi Mikhail,
>
> We *do* aim to make Hop Gui as good as possible, but perfection is hard to
> achieve ;-)
>
> It is definitely worth raising an issue. If you do create a bug ticket,
> a reproduction path (and pipeline) is always very helpful.
>
> Regards,
> Bart
>
>
> On Sun, May 21, 2023 at 8:19 AM Mikhail Khludnev <mk...@apache.org> wrote:
>
> > Hello,
> > I'm experimenting with tiny pipeline. It seems every time exception
> > occurs, threads stuck in livelock(iirc). I put some logs and stacks
> below.
> > Question:
> >  - do you pursue usability perfection for GUI, or it's a dead end and you
> > move toward web UI?
> >  - is it worth to raise an issue?
> >
> > Here's an error that's not a problem:
> > 2023/05/20 14:22:12 - solr-docs - Execution started for pipeline
> > [solr-docs]
> > 2023/05/20 14:22:13 - Generate rows.0 - Finished processing (I=0, O=0,
> > R=0, W=10, U=0, E=0)
> > org.apache.hop.core.exception.HopException:
> > The specified field '{0}' could not be found in the input.
> >
> > 2023/05/20 14:22:13 - Fake data - products.0 - Finished processing (I=0,
> > O=0, R=10, W=10, U=0, E=0)
> >         at
> >
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
> >         at
> > org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
> >         at java.base/java.lang.Thread.run(Thread.java:833)
> > 2023/05/20 14:22:13 - JSON output.0 - ERROR: Unexpected error
> > 2023/05/20 14:22:13 - JSON output.0 - ERROR:
> > org.apache.hop.core.exception.HopException:
> > 2023/05/20 14:22:13 - JSON output.0 - The specified field '{0}' could not
> > be found in the input.
> > 2023/05/20 14:22:13 - JSON output.0 -
> > 2023/05/20 14:22:13 - JSON output.0 -   at
> >
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
> > 2023/05/20 14:22:13 - JSON output.0 -   at
> > org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
> > 2023/05/20 14:22:13 - JSON output.0 -   at
> > java.base/java.lang.Thread.run(Thread.java:833)
> > 2023/05/20 14:22:13 - JSON output.0 - Finished processing (I=0, O=0, R=1,
> > W=0, U=0, E=1)
> > 2023/05/20 14:22:13 - solr-docs - Pipeline detected one or more
> transforms
> > with errors.
> > 2023/05/20 14:22:13 - solr-docs - Pipeline is killing the other
> transforms!
> > 2023/05/20 14:22:13 - solr-docs - Pipeline duration : 1.035 seconds [
> > 1.034" ]
> >
> > but it causes thread stuck (find 0x0000000092b2e408):
> >
> > "main" #1 prio=5 os_prio=0 cpu=196921.88ms elapsed=50520.47s
> > tid=0x00000198b9c56250 nid=0x6454 waiting for monitor entry
> > [0x00000083d1eff000]
> >    java.lang.Thread.State: BLOCKED (on object monitor)
> > at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3284)
> > - waiting to lock <0x0000000092b2e408> (a
> > org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> > at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3279)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate.refreshView(HopGuiPipelineGridDelegate.java:352)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1.lambda$run$0(HopGuiPipelineGridDelegate.java:259)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1$$Lambda$350/0x000000080112bd80.run(Unknown
> > Source)
> > at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
> > at
> >
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
> > - locked <0x0000000096284228> (a org.eclipse.swt.widgets.RunnableLock)
> > at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4029)
> > at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
> > at org.apache.hop.ui.hopgui.HopGui.open(HopGui.java:474)
> > at org.apache.hop.ui.hopgui.HopGui.main(HopGui.java:352)
> >
> >
> > "solr-docs - REST client" #282 prio=5 os_prio=0 cpu=15.62ms
> > elapsed=165.46s tid=0x00000198e17bd250 nid=0x37ec in Object.wait()
> > [0x00000083d42fe000]
> >    java.lang.Thread.State: WAITING (on object monitor)
> > at java.lang.Object.wait(java.base@17.0.6/Native Method)
> > - waiting on <no object reference available>
> > at java.lang.Object.wait(java.base@17.0.6/Object.java:338)
> > at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:200)
> > - locked <0x00000000915845d0> (a org.eclipse.swt.widgets.RunnableLock)
> > at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.checkErrorVisuals(HopGuiPipelineGraph.java:4647)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.lambda$startThreads$17(HopGuiPipelineGraph.java:4546)
> > at
> >
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph$$Lambda$374/0x0000000801150f20.finished(Unknown
> > Source)
> > at
> >
> org.apache.hop.pipeline.Pipeline.firePipelineExecutionFinishedListeners(Pipeline.java:1326)
> > - locked <0x0000000092b2e600> (a
> > java.util.Collections$SynchronizedRandomAccessList)
> > at
> >
> org.apache.hop.pipeline.Pipeline.lambda$startThreads$0(Pipeline.java:1142)
> > - locked <0x0000000092b2e408> (a
> > org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> > at
> >
> org.apache.hop.pipeline.Pipeline$$Lambda$381/0x00000008011523d8.transformFinished(Unknown
> > Source)
> > at
> >
> org.apache.hop.pipeline.transform.BaseTransform.fireTransformFinishedListeners(BaseTransform.java:2779)
> > - locked <0x0000000092026e60> (a
> > java.util.Collections$SynchronizedRandomAccessList)
> > - locked <0x00000000922d0390> (a
> > org.apache.hop.pipeline.transforms.rest.Rest)
> > at
> >
> org.apache.hop.pipeline.transform.BaseTransform.markStop(BaseTransform.java:2768)
> > - locked <0x00000000922d0390> (a
> > org.apache.hop.pipeline.transforms.rest.Rest)
> > at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:142)
> > at java.lang.Thread.run(java.base@17.0.6/Thread.java:833)
> >
> > Attaching these files.
> > --
> > Sincerely yours
> > Mikhail Khludnev
> >
> >
>

Re: Hop GUI freeze after an error

Posted by Bart Maertens <ba...@apache.org>.
Hi Mikhail,

We *do* aim to make Hop Gui as good as possible, but perfection is hard to
achieve ;-)

It is definitely worth raising an issue. If you do create a bug ticket,
a reproduction path (and pipeline) is always very helpful.

Regards,
Bart


On Sun, May 21, 2023 at 8:19 AM Mikhail Khludnev <mk...@apache.org> wrote:

> Hello,
> I'm experimenting with tiny pipeline. It seems every time exception
> occurs, threads stuck in livelock(iirc). I put some logs and stacks below.
> Question:
>  - do you pursue usability perfection for GUI, or it's a dead end and you
> move toward web UI?
>  - is it worth to raise an issue?
>
> Here's an error that's not a problem:
> 2023/05/20 14:22:12 - solr-docs - Execution started for pipeline
> [solr-docs]
> 2023/05/20 14:22:13 - Generate rows.0 - Finished processing (I=0, O=0,
> R=0, W=10, U=0, E=0)
> org.apache.hop.core.exception.HopException:
> The specified field '{0}' could not be found in the input.
>
> 2023/05/20 14:22:13 - Fake data - products.0 - Finished processing (I=0,
> O=0, R=10, W=10, U=0, E=0)
>         at
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
>         at
> org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
>         at java.base/java.lang.Thread.run(Thread.java:833)
> 2023/05/20 14:22:13 - JSON output.0 - ERROR: Unexpected error
> 2023/05/20 14:22:13 - JSON output.0 - ERROR:
> org.apache.hop.core.exception.HopException:
> 2023/05/20 14:22:13 - JSON output.0 - The specified field '{0}' could not
> be found in the input.
> 2023/05/20 14:22:13 - JSON output.0 -
> 2023/05/20 14:22:13 - JSON output.0 -   at
> org.apache.hop.pipeline.transforms.jsonoutput.JsonOutput.processRow(JsonOutput.java:202)
> 2023/05/20 14:22:13 - JSON output.0 -   at
> org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:55)
> 2023/05/20 14:22:13 - JSON output.0 -   at
> java.base/java.lang.Thread.run(Thread.java:833)
> 2023/05/20 14:22:13 - JSON output.0 - Finished processing (I=0, O=0, R=1,
> W=0, U=0, E=1)
> 2023/05/20 14:22:13 - solr-docs - Pipeline detected one or more transforms
> with errors.
> 2023/05/20 14:22:13 - solr-docs - Pipeline is killing the other transforms!
> 2023/05/20 14:22:13 - solr-docs - Pipeline duration : 1.035 seconds [
> 1.034" ]
>
> but it causes thread stuck (find 0x0000000092b2e408):
>
> "main" #1 prio=5 os_prio=0 cpu=196921.88ms elapsed=50520.47s
> tid=0x00000198b9c56250 nid=0x6454 waiting for monitor entry
> [0x00000083d1eff000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3284)
> - waiting to lock <0x0000000092b2e408> (a
> org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> at org.apache.hop.pipeline.Pipeline.getEngineMetrics(Pipeline.java:3279)
> at
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate.refreshView(HopGuiPipelineGridDelegate.java:352)
> at
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1.lambda$run$0(HopGuiPipelineGridDelegate.java:259)
> at
> org.apache.hop.ui.hopgui.file.pipeline.delegates.HopGuiPipelineGridDelegate$1$$Lambda$350/0x000000080112bd80.run(Unknown
> Source)
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
> - locked <0x0000000096284228> (a org.eclipse.swt.widgets.RunnableLock)
> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4029)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
> at org.apache.hop.ui.hopgui.HopGui.open(HopGui.java:474)
> at org.apache.hop.ui.hopgui.HopGui.main(HopGui.java:352)
>
>
> "solr-docs - REST client" #282 prio=5 os_prio=0 cpu=15.62ms
> elapsed=165.46s tid=0x00000198e17bd250 nid=0x37ec in Object.wait()
> [0x00000083d42fe000]
>    java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(java.base@17.0.6/Native Method)
> - waiting on <no object reference available>
> at java.lang.Object.wait(java.base@17.0.6/Object.java:338)
> at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:200)
> - locked <0x00000000915845d0> (a org.eclipse.swt.widgets.RunnableLock)
> at org.eclipse.swt.widgets.Display.syncExec(Display.java:4785)
> at
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.checkErrorVisuals(HopGuiPipelineGraph.java:4647)
> at
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph.lambda$startThreads$17(HopGuiPipelineGraph.java:4546)
> at
> org.apache.hop.ui.hopgui.file.pipeline.HopGuiPipelineGraph$$Lambda$374/0x0000000801150f20.finished(Unknown
> Source)
> at
> org.apache.hop.pipeline.Pipeline.firePipelineExecutionFinishedListeners(Pipeline.java:1326)
> - locked <0x0000000092b2e600> (a
> java.util.Collections$SynchronizedRandomAccessList)
> at
> org.apache.hop.pipeline.Pipeline.lambda$startThreads$0(Pipeline.java:1142)
> - locked <0x0000000092b2e408> (a
> org.apache.hop.pipeline.engines.local.LocalPipelineEngine)
> at
> org.apache.hop.pipeline.Pipeline$$Lambda$381/0x00000008011523d8.transformFinished(Unknown
> Source)
> at
> org.apache.hop.pipeline.transform.BaseTransform.fireTransformFinishedListeners(BaseTransform.java:2779)
> - locked <0x0000000092026e60> (a
> java.util.Collections$SynchronizedRandomAccessList)
> - locked <0x00000000922d0390> (a
> org.apache.hop.pipeline.transforms.rest.Rest)
> at
> org.apache.hop.pipeline.transform.BaseTransform.markStop(BaseTransform.java:2768)
> - locked <0x00000000922d0390> (a
> org.apache.hop.pipeline.transforms.rest.Rest)
> at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:142)
> at java.lang.Thread.run(java.base@17.0.6/Thread.java:833)
>
> Attaching these files.
> --
> Sincerely yours
> Mikhail Khludnev
>
>