Bug 570573 - Unsatisfied link error in 4942r17 Chromium bundle
Summary: Unsatisfied link error in 4942r17 Chromium bundle
Status: CLOSED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.19   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: regression
Depends on:
Blocks: 569095
  Show dependency tree
 
Reported: 2021-01-22 08:07 EST by Simeon Andreev CLA
Modified: 2021-05-12 03:35 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simeon Andreev CLA 2021-01-22 08:07:24 EST
We are trying to check if the Chromium browser is a viable replacement for the default WebKit browser (due to having multiple hangs/crashes with WebKit). I ran into the following exception, when trying out a recent build:

java.lang.UnsatisfiedLinkError: /home/sandreev/.swt/lib/linux/x86_64/chromium-3071/libswt-chromium-gtk-4942r17.so: libchromium_swt_4942r11.so: cannot open shared object file: No such file or directory
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
	at java.base/java.lang.Runtime.load0(Runtime.java:768)
	at java.base/java.lang.System.load(System.java:1837)
	at org.eclipse.swt.browser.Chromium.loadLib(Chromium.java:1656)
	at org.eclipse.swt.browser.Chromium.<clinit>(Chromium.java:51)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at org.eclipse.swt.browser.BrowserFactory.createChromium(BrowserFactory.java:44)
	at org.eclipse.swt.browser.BrowserFactory.createWebBrowser(BrowserFactory.java:26)
	at org.eclipse.swt.browser.Browser.<init>(Browser.java:96)
	at org.eclipse.ui.internal.browser.WebBrowserUtil.canUseInternalWebBrowser(WebBrowserUtil.java:138)
	at org.eclipse.ui.internal.browser.WebBrowserPreference.getBrowserChoice(WebBrowserPreference.java:135)
	at org.eclipse.ui.internal.browser.BrowserLauncher.open(BrowserLauncher.java:35)
	at org.eclipse.ui.internal.WorkbenchPage.lambda$13(WorkbenchPage.java:5312)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at org.eclipse.ui.internal.WorkbenchPage.openExternalEditor(WorkbenchPage.java:5306)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3187)
	at org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3100)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3098)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3068)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3059)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:569)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:524)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:363)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:170)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:283)
        ...

I downloaded what bundles are available here: https://download.eclipse.org/eclipse/downloads/index.html (see section "SWT Chromium support libraries" of each build)

Looking at the contents, ldd reports a dependency to revision 11 for as long as 4942r13 (I'm guessing r12 would have it too, but I didn't find a bundle with that revision).

:/home/sandreev/tmp/jep2439/plugins$ find . -name libswt-chromium-gtk*.so | xargs ldd
./swt-chromium-I20201214-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r4.so:                                                                                                                                                                       
ldd: warning: you do not have execution permission for `./swt-chromium-I20201214-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r4.so'                                                                                                               
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)                                                                                                                                                                                                                               
        libchromium_swt_4942r4.so => /home/sandreev/tmp/jep2439/plugins/./swt-chromium-I20201214-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libchromium_swt_4942r4.so (0x00007ffff77df000)                                                                               
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff741c000)                                                                                                                                                                                                                     
        libX11.so.6 => /lib64/libX11.so.6 (0x00007ffff70de000)                                                                                                                                                                                                                 
        libcef.so => not found                                                                                                                                                                                                                                                 
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffff6ec8000)                                                                                                                                                                                                             
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)                                                                                                                                                                                                                       
        librt.so.1 => /lib64/librt.so.1 (0x00007ffff6cc0000)                                                                                                                                                                                                                   
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff6aa4000)                                                                                                                                                                                                         
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff68a0000)                                                                                                                                                                                                                   
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007ffff6678000)                                                                                                                                                                                                                 
        libXau.so.6 => /lib64/libXau.so.6 (0x00007ffff6474000)                                                                                                                                                                                                                 
./swt-chromium-I20201228-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r9.so:                                                                                                                                                                       
ldd: warning: you do not have execution permission for `./swt-chromium-I20201228-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r9.so'                                                                                                               
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)                                                                                                                                                                                                                               
        libchromium_swt_4942r9.so => /home/sandreev/tmp/jep2439/plugins/./swt-chromium-I20201228-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libchromium_swt_4942r9.so (0x00007ffff77df000)                                                                               
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff741c000)                                                                                                                                                                                                                     
        libX11.so.6 => /lib64/libX11.so.6 (0x00007ffff70de000)                                                                                                                                                                                                                 
        libcef.so => not found                                                                                                                                                                                                                                                 
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffff6ec8000)                                                                                                                                                                                                             
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)                                                                                                                                                                                                                       
        librt.so.1 => /lib64/librt.so.1 (0x00007ffff6cc0000)                                                                                                                                                                                                                   
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff6aa4000)                                                                                                                                                                                                         
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff68a0000)                                                                                                                                                                                                                   
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007ffff6678000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007ffff6474000)
./swt-chromium-I20210104-0600-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r9.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210104-0600-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r9.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r9.so => /home/sandreev/tmp/jep2439/plugins/./swt-chromium-I20210104-0600-gtk-linux-x86_64/swt-chromium/chromium-3071/libchromium_swt_4942r9.so (0x00007ffff77df000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff741c000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007ffff70de000)
        libcef.so => not found
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffff6ec8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
        librt.so.1 => /lib64/librt.so.1 (0x00007ffff6cc0000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff6aa4000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff68a0000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007ffff6678000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007ffff6474000)
./swt-chromium-I20210114-0310-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r13.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210114-0310-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r13.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r11.so => not found
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff780c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
./swt-chromium-I20210114-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r14.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210114-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r14.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r11.so => not found
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff780c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
./swt-chromium-I20210118-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r15.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210118-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r15.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r11.so => not found
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff780c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
./swt-chromium-I20210120-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r16.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210120-1800-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r16.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r11.so => not found
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff780c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
./swt-chromium-I20210121-2140-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r17.so:
ldd: warning: you do not have execution permission for `./swt-chromium-I20210121-2140-gtk-linux-x86_64/swt-chromium/chromium-3071/libswt-chromium-gtk-4942r17.so'
        linux-vdso.so.1 =>  (0x00007ffff7ffa000)
        libchromium_swt_4942r11.so => not found
        libc.so.6 => /lib64/libc.so.6 (0x00007ffff780c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)

Did the build break at some point? I checked the SWT git history but found nothing odd; however I don't know what to look for. I do see commits such as:

https://git.eclipse.org/c/platform/eclipse.platform.swt.git/diff/bundles/org.eclipse.swt.browser.chromium/common/rust-library/chromium_swt/Cargo.toml?id=0fe4dd60389d879b57003d01a90a6ee8e5abc1f2
https://git.eclipse.org/c/platform/eclipse.platform.swt.git/diff/bundles/org.eclipse.swt.browser.chromium/common/rust-library/chromium_swt/Cargo.toml?id=1aaf6e4c576c902c01e445a12915145cbdcce796
Comment 1 Alexander Kurtakov CLA 2021-01-22 08:11:41 EST
One thing I fixed today https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=090956816ad12e873882b744c1651699582629e6 you should wait for tomorrow build. 
If you care about Gtk on Wayland I can tell you to not lose time even looking into Chromium as it's so ancient version that it doesn't support Wayland at all.
Comment 2 Simeon Andreev CLA 2021-01-22 08:14:56 EST
So far we are still on X11. I believe the next planned RHEL update will be 7.9 (up from 7.4). Its unclear when the update to RHEL 8 will be done (that defaults to Wayland AFAIK).
Comment 3 Alexander Kurtakov CLA 2021-01-22 08:24:17 EST
(In reply to Simeon Andreev from comment #2)
> So far we are still on X11. I believe the next planned RHEL update will be
> 7.9 (up from 7.4). Its unclear when the update to RHEL 8 will be done (that
> defaults to Wayland AFAIK).

OK, this is just a generic warning. If people look shortterm it might be solution. Long term it's not viable at all - no work has been done on it since the code went in, no support for Wayland, uses Rust in the implementation so requires additional toolchain and knowledge, requires shipping chromium 59 binaries (full of CVEs), huge set of bugs https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Eclipse%20Project&component=SWT&list_id=20308162&product=Platform&query_format=advanced&short_desc=chromium&short_desc_type=allwordssubstr .
With all the previous said it would be nice if it becomes viable option but that would not happen without someone seriously stepping up to do it.
Comment 4 Alexander Kurtakov CLA 2021-01-22 08:35:01 EST
Biggest issue with Chromium support is bug 565507 . The implementation went in a way that no committer know how it was done and thus can't evolve it without spending ridiculous amount of time to reverse engineer how it was done which kills even the smallest will to look into it. I touch it as much as to not allow it to break the standard SWT build.
Comment 5 Andrey Loskutov CLA 2021-01-22 08:43:36 EST
(In reply to Alexander Kurtakov from comment #3)
> With all the previous said it would be nice if it becomes viable option but
> that would not happen without someone seriously stepping up to do it.

We are ready to pay for professional support to get things done here.

The webkit on Linux is a pain, and bug 569878 is a real show stopper for us. 
Today my colleague tried to reproduce a crash in the webkit, got a hang in a different place, also in webkit.

Not saying that Chromium is better, but it can at least handle modern html without a crash (see bug 567311). Se we *hope* to get some alternative to webkit that is safe to use from IDE.
Comment 6 Johan Compagner CLA 2021-01-22 10:51:43 EST
this keeps just being a problem

on windows we have to say that chromium works ok for us. We already use it in production for quite some time (long before it was merged into eclipse)

But OSX has issues (for the most part if we enable it Eclipse doesn't exit correctly) 

But the thing is that eclipse is run on various platforms (windows, osx, linux) all those platforms have there own internal browsers
By default eclipse even uses IE on windows. which is kind of depricated already.. So yes maybe we can use WebView2 (Edge_chromium) but then we still have a problem that we have all kinds of different embedded browsers over different platforms, you just don't know what you get and how it works, testing all that is horrible
We would love to use also chromium under OSX because the current usage of embedded safari also gives us already problems..

So it would be so nice if there can be a dedicated team somewhere with the know how that does 1 release/update at least per year of a chromium browser to the latest (or one of) of that time.
I don't think we need to have a new build every eclipse release, but once a year would be nice.
if we just would have 1 thing that is there over all platforms that would make supporting and testing stuff so much better.
Comment 7 Alexander Kurtakov CLA 2021-01-27 01:45:24 EST
So whoever is still interested in Chromium support - we hit a new low with Chromium even the prereq binaries for its build are gone now (bug 570675) so all improvements to swt build machine is blocked by this. This state can't continue for more than a week IMHO as active contributors shouldn't suffer because of it. So very very soon we will have no other choice but to stop building it.
Comment 8 Simeon Andreev CLA 2021-01-27 03:04:26 EST
To give an update to the previous discussion, about using Chromium instead of WebKit:

We see the same problem with Chromium as with WebKit (bug 569878), if Eclipse is using more memory than what the system has left available, invoking a browser results in Eclipse exiting with a core dump. We are not 100% sure the cause is identical, since the Chromium native libraries have no debug symbols (we didn't search for a bundle that has such, if there is one). That makes the Chromium alternative also unusable for us.
Comment 9 Alexander Kurtakov CLA 2021-01-27 03:08:58 EST
(In reply to Simeon Andreev from comment #8)
> To give an update to the previous discussion, about using Chromium instead
> of WebKit:
> 
> We see the same problem with Chromium as with WebKit (bug 569878), if
> Eclipse is using more memory than what the system has left available,
> invoking a browser results in Eclipse exiting with a core dump. We are not
> 100% sure the cause is identical, since the Chromium native libraries have
> no debug symbols (we didn't search for a bundle that has such, if there is
> one). That makes the Chromium alternative also unusable for us.

Well, from histor POV Chromium (Blink to be exact) is a fork of WebKit so it's quite likely that some parts are still the same.
Comment 10 Alexander Kurtakov CLA 2021-05-12 03:35:29 EDT
Chromium support has been dropped