eclipse.platform icon indicating copy to clipboard operation
eclipse.platform copied to clipboard

Popup Window for diff results is unresponsive in WSL

Open jpwilhelms opened this issue 9 months ago • 8 comments

Steps to reproduce

From a fresh installation and clean workspace:

Execute junit test:

import org.junit.Assert;
import org.junit.Test;

public class ComparisonTest {
  @Test
  public void testComparison() {
    Assert.assertEquals( "a", "b" );
  }
}

Doubleclick on "org.junit.ComparisonFailure: expected:<[a]> but was:<[b]>"

Expected behavior: The new popup window showing the diff between the two strings should be responsive.

Actual behavior: The popup window is shown, but it is not responsive. You can't confirm it, close it, move it.

Here is some relevant log output

jstack.txt

Tested under this environment:

  • Eclipse IDE/Platform version (as shown in Help > About): Version: 2025-03 (4.35.0), Build id: 20250306-0812
  • WSL-Version: 2.4.12.0
  • Kernelversion: 5.15.167.4-1
  • WSLg-Version: 1.0.65
  • MSRDC-Version: 1.2.5716
  • Direct3D-Version: 1.611.1-81528511
  • DXCore-Version: 10.0.26100.1-240331-1435.ge-release
  • Windows-Version: 10.0.22621.5039

Community

  • [x] I understand reporting an issue to this OSS project does not mandate anyone to fix it. Other contributors may consider the issue, or not, at their own convenience. The most efficient way to get it fixed is that I fix it myself and contribute it back as a good quality patch to the project.

See also

  • https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/2087
  • https://github.com/microsoft/wslg/issues/1012

jpwilhelms avatar Mar 14 '25 12:03 jpwilhelms

Please provide jstack report at the moment that UI hangs.

iloveeclipse avatar Mar 14 '25 12:03 iloveeclipse

The jstack.txt is already attached. This is taken right after the popup window opened.

The UI does not hang. It's only the popup window, that can't be closed. I have to close eclipse to get rid of it.

jpwilhelms avatar Mar 14 '25 12:03 jpwilhelms

The jstack.txt is already attached.

Sorry, haven't noticed.

The UI does not hang. It's only the popup window, that can't be closed. I have to close eclipse to get rid of it.

Jstack just shows idling UI thread, so it seem to be SWT issue then.

To understand it right, which Eclipse is used, for which platform - for Windows or for Linux GTK? Is this a regression in 4.35?

iloveeclipse avatar Mar 14 '25 12:03 iloveeclipse

I'm using the linux eclipse from https://ftp.halifax.rwth-aachen.de/eclipse/technology/epp/downloads/release/2025-03/R/eclipse-java-2025-03-R-linux-gtk-x86_64.tar.gz I installed ubuntu (default) in WSL and there I started eclipse. I watched this behavior since I started with WSL in 2023. It was with eclipse 2023-03.

jpwilhelms avatar Mar 14 '25 12:03 jpwilhelms

OK, that's two systems I don't have. I neither have Windows WSL installed nor Ubuntu. Maybe someone else can help.

iloveeclipse avatar Mar 14 '25 12:03 iloveeclipse

Installation of WSL is quite easy:

In a Windows powershell:

wsl --update
wsl --install --distribution Ubuntu

Then open a terminal, install some packages and start eclipse:

sudo apt update
sudo apt full-upgrade
sudo apt-get install libeclipse-e4-ui-workbench-swt-java
sudo apt-get install kde-standard 
wget https://ftp.halifax.rwth-aachen.de/eclipse/technology/epp/downloads/release/2025-03/R/eclipse-java-2025-03-R-linux-gtk-x86_64.tar.gz
tar xvzf eclipse-java-2025-03-R-linux-gtk-x86_64.tar.gz
eclipse/eclipse

The benefit you get when running eclipse inside WSL is a great performance boost. Running eclipse on the same machine under windows is about 20 times slower (especially when refreshing the workspace or starting a junit test).

jpwilhelms avatar Mar 14 '25 13:03 jpwilhelms

I found a workaround:

In Windows, I installed VcXsrv.

Then in WSL:

export DISPLAY=<local Windows IP>:0
export GDK_BACKEND=x11

Now the diff window is responsive! So it seems the problem is specifically with SWT + GTK3 + WSLg (Wayland).

jpwilhelms avatar Jul 11 '25 10:07 jpwilhelms

I can confirm this issue exists in my dev env too.

arysin avatar Aug 14 '25 14:08 arysin