openshiftio / openshift.io

Red Hat OpenShift.io is an end-to-end development environment for planning, building and deploying modern applications.
https://openshift.io
97 stars 66 forks source link

yaml-language-server fails to start #2179

Open surajnarwade opened 6 years ago

surajnarwade commented 6 years ago

screenshot from 2018-02-05 16-13-44

screenshot from 2018-02-05 16-11-12

screenshot from 2018-02-05 16-15-55

screenshot from 2018-02-05 16-16-36

screenshot from 2018-02-05 16-16-56

CC: @containscafeine @JPinkney

This is a blocker for kedge integration with OSIO :(

JPinkney commented 6 years ago

I think this may be related to https://github.com/redhat-developer/rh-che/issues/188 where node isn't being downloaded and thus starting the language server fails. I'm looking into this.

ghost commented 6 years ago

@surajnarwade @JPinkney it must be the case when an installer actually tries to install deps that a language server requires.

@surajnarwade what stack did you start your workspace from? https://github.com/eclipse/che/blob/5.22.x/agents/ls-yaml/src/main/resources/org.eclipse.che.ls.yaml.script.sh you can see that if the package isn't installed, the installer script tries to install it, which expectedly fails on OpenShift.

surajnarwade commented 6 years ago

@eivantsov , I created vertx application first and then I created app.yaml

ghost commented 6 years ago

Yeah, most certainly vertx image does not have node.js

concaf commented 6 years ago

@eivantsov so the Che container image should have the required dependencies installed, right?

ghost commented 6 years ago

Currently, yes, this is a requirement

concaf commented 6 years ago

hey @eivantsov @JPinkney any updates on this?

ibuziuk commented 6 years ago

@eivantsov afaik, all osio recipes have node.js pre-installed (Bayesian requirment) [1]

[1] https://github.com/redhat-developer/che-dockerfiles/blob/master/recipes/vertx/Dockerfile#L30

ghost commented 6 years ago

@ibuziuk I do not see any information about the stack being used. I can see a dashboard screenshot, and going to dashboard isn't part of OSIO flow. So, maybe it was some other stack?

rhopp commented 6 years ago

This is still failing on che.openshift.io (che 6.10.0). I've used vert.x stack and enabled yaml ls. Opening yaml file produces this error:

2018-08-31 12:25:25,941[equestProcessor]  [ERROR] [.e.c.a.l.LanguageServerService 109]  - Language server initialization procedure failed
java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.io.IOException: Stream closed
    at org.eclipse.che.api.languageserver.LanguageServerService.initialize(LanguageServerService.java:101)
    at org.eclipse.che.api.core.jsonrpc.commons.reception.FunctionConfiguratorOneToOne.lambda$withFunction$0(FunctionConfiguratorOneToOne.java:76)
    at org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerManager.handle(RequestHandlerManager.java:213)
    at org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerManager$OneToOneHandler.handle(RequestHandlerManager.java:329)
    at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915)
    at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
    at org.eclipse.che.api.core.jsonrpc.commons.RequestHandlerManager$OneToOneHandler.access$1000(RequestHandlerManager.java:316)
    at org.eclipse.che.api.core.jsonrpc.commons.RequestDispatcher.dispatch(RequestDispatcher.java:52)
    at java.lang.Thread.run(Thread.java:748)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
Caused by: java.lang.RuntimeException: java.io.IOException: Stream closed
    at org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMessageReceiver.lambda$receive$0(JsonRpcMessageReceiver.java:73)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at org.eclipse.lsp4j.jsonrpc.services.EndpointProxy.invoke(EndpointProxy.java:77)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageConsumer.consume(StreamMessageConsumer.java:68)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at org.eclipse.che.api.core.jsonrpc.commons.JsonRpcMessageReceiver.processRequest(JsonRpcMessageReceiver.java:98)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.request(RemoteEndpoint.java:129)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at com.sun.proxy.$Proxy100.initialize(Unknown Source)
    at org.eclipse.che.api.languageserver.LanguageServerInitializer.lambda$initialize$1(LanguageServerInitializer.java:127)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
    at org.eclipse.che.api.languageserver.LanguageServerInitializer.initializeServerInstance(LanguageServerInitializer.java:211)
    at org.eclipse.che.api.languageserver.LanguageServerInitializer.lambda$null$0(LanguageServerInitializer.java:123)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
Caused by: java.io.IOException: Stream closed
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    ... 3 common frames omitted
    at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:433)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageConsumer.consume(StreamMessageConsumer.java:65)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    ... 22 common frames omitted
    at java.io.OutputStream.write(OutputStream.java:116)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
JPinkney commented 6 years ago

@rhopp Out of curiosity can you try vert.x stack again but do the same thing with json ls and a json file

ghost commented 6 years ago

@rhopp interesting.. we have tests for yaml LS and most of them pass - currently only one unstable which checks hovers.

ghost commented 6 years ago

@JPinkney @rhopp i know what the issue is. There's no nodejs in the image

sh-4.2$ node -v
v6.14.4
sh-4.2$ nodejs
sh: nodejs: command not found

You we need a symlink in the image - an alias for nodejs > node