Nova icon indicating copy to clipboard operation
Nova copied to clipboard

S3 auto upload causing server crashes after plugin loading

Open AidanWright opened this issue 1 year ago • 1 comments

Agreements

  • [X] I am using an official build of Nova.
  • [X] I am running the latest version of Nova.
  • [X] I am using a server software supported by Nova
  • [X] I am running the latest version of my server software.
  • [x] I have checked for similar issues.

Check for plugin incompatibilites

There are no other plugins running on my server.

Plugin Version, Server Software, Server Version

Nova: v0.16-alpha.1; Paper: build 1.20.4-365

Nova Addons and Versions

Jetpacks v0.1.12-RC.1, machines v0.4.5-RC.1, logistics v0.2.8-RC.1, Vanilla-Hammers v1.4-RC.1, Simple-Ugrades v1.3-RC.1

Expected behavior

Plugin is able to connect to S3 bucket and server does not exit.

Observed/Actual behavior

Server exits immediately following Nova initialization. Server errors only when auto upload is enabled with any S3 configuration. Does not matter on addons present.

Steps to reproduce

  1. Launch paper server on any 1.20.4 build with nova installed;
  2. Configure Nova for an S3 connection;
  3. Crashes!

Server log

latest.log

Errors

[23:55:43] [Nova Initializer - 14/ERROR]: [Nova] An exception occurred trying to initialize xyz/xenondevs/nova/data/resources/upload/AutoUploadManager
java.lang.NoClassDefFoundError: software/amazon/awssdk/auth/credentials/AwsBasicCredentials
        at xyz.xenondevs.nova.data.resources.upload.service.S3.loadConfig(S3.kt:35) ~[Nova-0.16-alpha.1.jar:?]
        at xyz.xenondevs.nova.data.resources.upload.AutoUploadManager.enable(AutoUploadManager.kt:95) ~[Nova-0.16-alpha.1.jar:?]
        at xyz.xenondevs.nova.data.resources.upload.AutoUploadManager.init(AutoUploadManager.kt:54) ~[Nova-0.16-alpha.1.jar:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) ~[kotlin-reflect-1.9.20.jar:1.9.255-SNAPSHOT]
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) ~[kotlin-reflect-1.9.20.jar:1.9.255-SNAPSHOT]
        at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108) ~[kotlin-reflect-1.9.20.jar:1.9.255-SNAPSHOT]
        at xyz.xenondevs.nova.initialize.InitializableClass.initialize(InitializableClass.kt:75) ~[Nova-0.16-alpha.1.jar:?]
        at xyz.xenondevs.nova.initialize.Initializer.initPostWorld$lambda$10$lambda$8$lambda$7(Initializer.kt:167) ~[Nova-0.16-alpha.1.jar:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.auth.credentials.AwsBasicCredentials
        at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
        at xyz.xenondevs.nova.loader.NovaClassLoader.loadClass(NovaClassLoader.java:48) ~[Nova-0.16-alpha.1.jar:?]
        at xyz.xenondevs.nova.loader.NovaClassLoader.loadClass(NovaClassLoader.java:29) ~[Nova-0.16-alpha.1.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
        ... 17 more

Additional context

I am running on a Velocity proxy, but this error happens even on a standalone server. Also, my S3 configuration (redacted ofc) is below:

  auto_upload:
    enabled: true
    service: amazon_s3
    endpoint: s3.amazonaws.com
    region: us-east-1
    bucket: BUCKETNAME
    key_id: KEYKEYKEY
    key_secret: SECRETSECRETSECRET

AidanWright avatar Jan 02 '24 05:01 AidanWright

I'm also getting this but using a minio backend. Nova version is v0.16-alpha.4

Red-M avatar Mar 11 '24 09:03 Red-M