Pentaho

 View Only

 Kettle UI bugs

Pietro Baricco's profile image
Pietro Baricco posted 07-26-2022 10:50
Hello, I post here as the issue tracker at https://jira.pentaho.com/ seems to be broken.
Anyway, recently Kettle has become unusable for me due to some long standing issues with the UI, some of which so old that I remember them since the 4.x times.
I use linux/kde (fedora 36), jre 11 (openjdk) and 1.8,  pdi-ce 9.3 (but the same things happen with 8.3)

Pentaho used to require webkitgtk1 to work. Last release of this stuff is like 10 years old, so it has been rightfully removed by all the modern distros. Still, I managed to install it anyway by using ancient rpms from rpmsphere. All worked "fine" (with the usual quirks) until recently. Now when using gtk1, it explodes with a segfault

Current thread (0x00007f9c84016000):  JavaThread "main" [_thread_in_native, id=127314, stack(0x00007f9c89189000,0x00007f9c89289000)]

Stack: [0x00007f9c89189000,0x00007f9c89289000],  sp=0x00007f9c89284b50,  free space=1006k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libjavascriptcoregtk-1.0.so.0+0x4d58d3]  void JSC::JSArray::sortVector<(unsigned char)27>(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&)+0x333
C  [libjavascriptcoregtk-1.0.so.0+0x498891]
C  [libjavascriptcoregtk-1.0.so.0+0x4a0f7b]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 15391  org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(JZ)Z (0 bytes) @ 0x00007f9c748c3494 [0x00007f9c748c3440+0x0000000000000054]
J 15415 c1 org.eclipse.swt.widgets.Display.readAndDispatch()Z (71 bytes) @ 0x00007f9c6f2e6f64 [0x00007f9c6f2e6d20+0x0000000000000244]
j  org.pentaho.di.plugins.fileopensave.dialog.FileOpenSaveDialog.open(Lorg/pentaho/di/ui/core/FileDialogOperation;)V+412​


Fine then maybe, I thought, the time has come to use the shiny new GTK bindings (export SWT_GTK3=1 in spoon.sh).
This makes the "save as" dialog open, but when trying to use it to actually save a file somewhere in the repository, it does nothing. The "save" button can be clicked but the dialog does not close, nothing comes out in the logs, and nothing happens.

Another weird issue is that every single checkbox in the UI (for instance in step dialogs) does not show the ticks! A checked checkbox appears with a faint blue border, but no tick inside. This gets fixed when enabling the "native look and feel" in the preferences.

I tried all the other optional env vars in spoon.sh, tried every single release of swt replacing the jar in libswt/linux, but I'm stuck.

Carlos Lopez's profile image
Carlos Lopez
Pietro
I am afraid Fedora is not a supported or tested Operating System; these are the ones where Spoon is being tested:
https://help.hitachivantara.com/Documentation/Pentaho/9.3/Setup/Components_Reference#Workstation

  • Ubuntu Desktop 20.04
  • Microsoft Windows 10
  • macOS 11 (Big Sur)
  • Ubuntu Desktop 18.x & 20.x
  • Microsoft Windows 10
  • macOS 10.15 (Catalina) & 11 (Big Sur)
Pietro Baricco's profile image
Pietro Baricco
Weird, I wanted to answer to Carlos Lopez, but it seems I can only answer to myself. Whatever.
I managed to make it run by recompiling webkitgtk 1 under Fedora. Let me tell you, it's not been fun. Lots of hacks to be done on the C++ codebase.
Anyway it now runs, but it's fragile and I don't like it at all.
Frankly, PDI is a Java application, the whole point of Java applications is that they should "run anywhere". That's the whole Java motto after all, so when you talk about "supported OS" it sound kind of BS to me.
My opinion is that unfortunately Pentaho is on its last legs, this is just the canary in the coal mine.
Currently in the process of migrating my plugins to Apache Hop, which is still ugly as hell but at least is actively maintained.
Pietro Baricco's profile image
Pietro Baricco
The only way to make it work on modern distros is to build yourself the last compatible release of webkitgtk (2.44.1).
This is very old code which does not even build without modifying the sources in a lot of places, because it relies on old versions of gcc, ld and so on.
I have made the modifications but as I said, I know it's fragile and I may have introduced even weirder bugs, so I can't recommend this approach.
Or try to using webkitgtk version 2 (by changing the variables in spoon.sh), but IME that doesn't work and is buggy too.
Or use Windows or some linux distro old enough to include the required dependencies for webkitgtk 1.
Or give Hop a try. Right now it's basically a cleaned up version of Pdi, it can import Kettle repositories and if you don't rely on custom plugins (like I do) the transition from Pdi is mostly painless and everything should work as expected.