Skip to content

test_multilspy_java.py failed in the mac but success in docker #103

Closed
@crystalcd

Description

@crystalcd
!ENTRY org.eclipse.jdt.ls.core 1 0 2025-04-13 10:04:50.863
!MESSAGE ProjectRegistryRefreshJob finished 1155ms

!ENTRY org.eclipse.jdt.ls.core 1 0 2025-04-13 10:04:50.920
!MESSAGE Started org.eclipse.buildship.core 54ms

!ENTRY org.eclipse.debug.core 4 125 2025-04-13 10:04:51.017
!MESSAGE Exception occurred executing command line.
!STACK 0
java.io.IOException: Cannot run program "/usr/libexec/java_home": error=2, No such file or directory
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at org.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:967)
	at org.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:918)
	at org.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:896)
	at org.eclipse.jdt.internal.launching.MacInstalledJREs.getInstalledJREs(MacInstalledJREs.java:100)
	at org.eclipse.jdt.internal.launching.macosx.MacOSXVMInstallType.detectInstallLocation(MacOSXVMInstallType.java:146)
	at org.eclipse.jdt.launching.JavaRuntime.detectEclipseRuntime(JavaRuntime.java:2242)
	at org.eclipse.jdt.launching.JavaRuntime.initializeVMs(JavaRuntime.java:3224)
	at org.eclipse.jdt.launching.JavaRuntime.getVMInstallTypes(JavaRuntime.java:574)
	at org.eclipse.jdt.ls.core.internal.JVMConfigurator.findVM(JVMConfigurator.java:265)
	at org.eclipse.jdt.ls.core.internal.JVMConfigurator.configureJVMs(JVMConfigurator.java:118)
	at org.eclipse.jdt.ls.core.internal.JVMConfigurator.configureJVMs(JVMConfigurator.java:105)
	at org.eclipse.jdt.ls.core.internal.handlers.BaseInitHandler.handleInitializationOptions(BaseInitHandler.java:119)
	at org.eclipse.jdt.ls.core.internal.handlers.InitHandler.handleInitializationOptions(InitHandler.java:105)
	at org.eclipse.jdt.ls.core.internal.handlers.BaseInitHandler.initialize(BaseInitHandler.java:64)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.initialize(JDTLanguageServer.java:283)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$recursiveFindRpcMethods$0(GenericEndpoint.java:65)
	at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:120)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:261)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:190)
	at org.eclipse.jdt.ls.core.internal.ParentProcessWatcher.lambda$1(ParentProcessWatcher.java:144)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
	at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
	at java.base/java.lang.ProcessImpl.start(Unknown Source)

I run the test. But it failed. I find some error logs in .multilspy/lsp/EclipseJDTLS/workspaces/75641c51c4dc4f69a486e2b554ece73b/data_dir/.metadata/.log

/usr/libexec/java_home
/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home

The /usr/libexec/java_home run successfully in the terminal.

FROM python:3.9-slim

WORKDIR /app

RUN apt-get update && apt-get install -y \
    git \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

RUN git clone https://github.com/microsoft/multilspy.git /app/multilspy

WORKDIR /app/multilspy

RUN pip install --upgrade pip && \
    pip install . && \
    pip install pytest pytest-asyncio

CMD ["pytest","tests/multilspy/test_multilspy_java.py"]

passed in the docker image. I don't know why failed in the mac.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions