[Bug 264311] java/eclipse

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 01 Jun 2022 17:29:35 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264311

--- Comment #9 from Patrick Mackinlay <freebsd.68fba@nospam.spacesurfer.com> ---
After a lot of digging I managed to figure out what is the cause of the
problem.
If you simply create the directories
/tmp/SWT-GDBusServer
/tmp/SWT-WebExtensionGDBusServer
eclipse will run fine!

This is all down to the way eclipse interacts with webkit. When eclipse needs
to run some javascript (to generate help for autocomplete or for the tip of the
day ...) it makes an asynchronous webkit call. The result of this call is
returned to eclipse as a native byte array whose address is stored in a java
long via a callback (WebKitExtension#initializeWebExtensions_callback). Java
then makes JNI call to convert the native address into a java String vai this
call:

String clientAddressJava = Converter.cCharPtrToJavaString(clientAddress, false)

It is this JNI call that causes the core dump, because the value of
clientAddress is invalid due to an error in the callback process. The callback
process is incredibly complex and involves communication via the gnome DBUS. If
the DBUS server cannot be started then there will be an error resulting in the
core dump. The DBUS server and client sockets are pipes created in the two
missing directories! No directories = core dump!

Why is this not happening in eclipse 4.16? This is because prior to the fix for
the cosmetic eclipse bug 163641 the service and client pipes were just created
in /tmp

See
https://bugs.eclipse.org/bugs/show_bug.cgi?id=562443

With regards to fixing this there must be some flags that can be passed to the
gnome/gtk library call that result in the directories being automically
created. Or you could just revert the patch for bug 562443

-- 
You are receiving this mail because:
You are the assignee for the bug.