MrLetsplay2003 / ShittyAuthServer

Host your own (shitty) authentication server for Minecraft using the Yggdrasil authentication scheme
12 stars 5 forks source link

Random Server Crashes #4

Closed danr789 closed 1 year ago

danr789 commented 2 years ago

Server Randomly Crashing when trying to login after restarting it, using MySQL as a Backend

After uploading a custom skin Specifically

Stack trace: java.lang.NullPointerException: Cannot invoke "me.mrletsplay.shittyauth.user.UserData.getSkinType()" because "d" is null me.mrletsplay.shittyauth.page.AccountPage.lambda$new$0(AccountPage.java:48) me.mrletsplay.webinterfaceapi.page.dynamic.DynamicMultiple.create(DynamicMultiple.java:13) me.mrletsplay.webinterfaceapi.page.dynamic.DynamicList.createObject(DynamicList.java:42) me.mrletsplay.webinterfaceapi.page.dynamic.DynamicList.lambda$create$0(DynamicList.java:35) java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) me.mrletsplay.webinterfaceapi.page.dynamic.DynamicList.create(DynamicList.java:36) me.mrletsplay.webinterfaceapi.page.PageSection.toHtml(PageSection.java:146) me.mrletsplay.webinterfaceapi.page.Page.toHtml(Page.java:218) me.mrletsplay.webinterfaceapi.page.Page.createContent(Page.java:335) me.mrletsplay.shittyauth.page.AccountPage.createContent(AccountPage.java:129) me.mrletsplay.webinterfaceapi.document.HomeDocument.createContent(HomeDocument.java:18) me.mrletsplay.simplehttpserver.http.HttpConnection.receive(HttpConnection.java:100) me.mrletsplay.simplehttpserver.http.HttpConnection.lambda$startRecieving$0(HttpConnection.java:53) java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) java.base/java.lang.Thread.run(Thread.java:833)

MrLetsplay2003 commented 2 years ago

Were there any errors when creating the account?

danr789 commented 2 years ago

Nope, only after I uploaded the skin to the server and then restarted it

MrLetsplay2003 commented 2 years ago

Okay, I'll check whether I can reproduce the issue on my end

x0rp01s0n commented 1 year ago

It appears that the issue you are experiencing may be caused by invalid picture data or an SQL problem. This could be due to broken skins being uploaded or corrupted PNG files. To resolve this, you can try opening the skin in a picture editor and saving it again or using an online converter to check if the PNG is broken.

It may also be helpful to check the image first and perform some image processing before saving it as a PNG again. If the problem persists, it may be worth checking your SQL server and logging in to your SQL user to display your database. If everything appears to be in order, try erasing the tables and creating a new one for your application.

Creating a fresh and clean install following the exact instructions provided in the README file, the issue could not be reproduced. It's essential to follow all steps precisely to prevent any potential errors or issues. Additionally, it's recommended to maintain a clean pre-environment to avoid encountering these types of errors in the future (i.E erase every table before install, check if everything is up to date, start on a fresh install with a new user etc.).

MrLetsplay2003 commented 1 year ago

Closing the issue as I also cannot reproduce the issue. Make sure to have a clean database before setting up the server and feel free to create a new issue if the problem still exists.