finos / legend

The Legend project
https://legend.finos.org
Apache License 2.0
1.25k stars 198 forks source link

Unable To Run legend-engine-server:2.57.0 (Docker Hub) #484

Closed nsuttontrp closed 2 years ago

nsuttontrp commented 2 years ago

Bug Report

We are attempting to upgrade the Legend Engine Server from version 2.55.0 to 2.57.0 from docker hub.

Steps to Reproduce:

We have updated our docker run script to point to version 2.57.0 from 2.55.0 https://hub.docker.com/r/finos/legend-engine-server/tags

Expected Result:

Engine server to start

Actual Result:

Engine server is failing to start

Seeing lots of errors like below in the logs, full output also attached. Caused by: java.lang.ClassNotFoundException: org.zeroturnaround.javarebel.ClassEventListener at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:388)

Environment:

legend-engine-server:2.57.0 Docker container running on AWS EC2

Also running the following containers: legend-studio:3.2.0 legend-sdlc-server:0.69.1

Additional Context:

Please see attached logs for version 2.57.0, but we are getting the same errors on version 2.56.0 too Legend Engine Logs V2.57.0 - Clean.txt

beekemarie commented 2 years ago

Thanks @nsuttontrp! Adding @akphi here who may be able to help you with this.

claudiubelu commented 2 years ago

Hello,

I'm currently working together with the Canonical team to create a Charmed deployment using Juju. I've encontered the same issues, including the NullPointerException: https://paste.ubuntu.com/p/yMdDsqCR6s/

The versions I'm currently using:

Engine: 2.57.0 SDLC: 0.69.1 Studio: 3.6.0

I've also tried engine 2.56.0, and engine 2.58.0, but they have the same issues. 2.55.0 works though.

This is the config file for Legend Engine I've been using: https://paste.ubuntu.com/p/BKqpM6Xnvv/

Any idea what causes the NullPointerException?

akphi commented 2 years ago

Sorry, for the late response. Looks like the critical bit is

2022-02-28T22:20:43.760Z [engine] java.lang.NullPointerException
2022-02-28T22:20:43.761Z [engine]       at org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutorBuilder.build(RelationalStoreExecutorBuilder.java:53)
2022-02-28T22:20:43.761Z [engine]       at org.finos.legend.engine.plan.execution.stores.relational.plugin.Relational.build(Relational.java:25)
2022-02-28T22:20:43.761Z [engine]       at org.finos.legend.engine.server.Server.run(Server.java:152)
2022-02-28T22:20:43.761Z [engine]       at org.finos.legend.engine.server.Server.run(Server.java:103)
2022-02-28T22:20:43.761Z [engine]       at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43)
2022-02-28T22:20:43.761Z [engine]       at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
2022-02-28T22:20:43.761Z [engine]       at io.dropwizard.cli.Cli.run(Cli.java:78)
2022-02-28T22:20:43.761Z [engine]       at io.dropwizard.Application.run(Application.java:93)
2022-02-28T22:20:43.761Z [engine]       at org.finos.legend.engine.server.Server.main(Server.java:112)

@epsstan looks like this is related to RelationalStoreExecutorBuilder that you recently added, could you quickly check what is going on here?

@claudiubelu @nsuttontrp the only thing I could advise trying is to see how your config file differ from https://github.com/finos/legend-engine/blob/master/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json and try to update to match.


Other warnings are definitely noisy but I think they are harmless, hopefully they would go away when we upgrade our dependencies later though 🤞

epsstan commented 2 years ago

@akphi is correct. The config file used does not match the code. Please update and let us know.

nsuttontrp commented 2 years ago

Hi guys, thanks for looking into it.

Problem was solved by adding the following to our config.json file.

  "temporarytestdb": {
    "port": 9092
  },
  "relationalexecution": {
    "tempPath": "/tmp/",
    "temporarytestdb": {
      "port": 9092
    }
  },
claudiubelu commented 2 years ago

Forgot to update this issue, but I've sent a PR for our configuration options too: https://github.com/finos/legend-juju-engine-server-operator/pull/18