mojira.dev
MC-233051

Server crashes as player logs in

Just as the player logged, the server immediately crashes:

[12:02:40] [User Authenticator #1/INFO]: UUID of player LazuliFowl is 45f9a617-7c28-4c9b-97f6-c40c542ded5f[12:02:40] [User Authenticator #1/INFO]: UUID of player LazuliFowl is 45f9a617-7c28-4c9b-97f6-c40c542ded5f[12:02:40] [Server thread/INFO]: LazuliFowl[/192.168.0.142:60134] logged in with entity id 86 at (-161.6937223983098, 66.0, 1223.1477172063176)[12:02:40] [Server thread/INFO]: LazuliFowl joined the game[12:02:41] [Worker-Main-20/WARN]: Worker-Main-20 diedjava.lang.NullPointerException: Cannot invoke "cmr.a(int, int, int)" because "☃" is null at dei.i(SourceFile:96) ~[server.jar:?] at deg.c(SourceFile:143) ~[server.jar:?] at def.a(SourceFile:137) ~[server.jar:?] at dec.a(SourceFile:129) ~[server.jar:?] at dej.a(SourceFile:45) ~[server.jar:?] at abu.a(SourceFile:135) ~[server.jar:?] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at abu.a(SourceFile:135) ~[server.jar:?] at abu.e(SourceFile:171) ~[server.jar:?] at abu.a(SourceFile:107) ~[server.jar:?] at abg.b(SourceFile:58) ~[server.jar:?] at aqy.g(SourceFile:91) ~[server.jar:?] at aqy.a(SourceFile:146) ~[server.jar:?] at aqy.run(SourceFile:102) ~[server.jar:?] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1434) ~[?:?] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) [?:?][12:02:41] [Worker-Main-20/ERROR]: Caught exception in thread Thread[Worker-Main-20,5,main]java.lang.NullPointerException: Cannot invoke "cmr.a(int, int, int)" because "☃" is null at dei.i(SourceFile:96) ~[server.jar:?] at deg.c(SourceFile:143) ~[server.jar:?] at def.a(SourceFile:137) ~[server.jar:?] at dec.a(SourceFile:129) ~[server.jar:?] at dej.a(SourceFile:45) ~[server.jar:?] at abu.a(SourceFile:135) ~[server.jar:?] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at abu.a(SourceFile:135) ~[server.jar:?] at abu.e(SourceFile:171) ~[server.jar:?] at abu.a(SourceFile:107) ~[server.jar:?] at abg.b(SourceFile:58) ~[server.jar:?] at aqy.g(SourceFile:91) ~[server.jar:?] at aqy.a(SourceFile:146) ~[server.jar:?] at aqy.run(SourceFile:102) ~[server.jar:?] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1434) ~[?:?] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?][12:02:41] [Worker-Main-19/WARN]: Worker-Main-19 diedjava.lang.NullPointerException: Cannot invoke "cmr.a(int, int, int)" because "☃" is null at dei.i(SourceFile:96) ~[server.jar:?] at deg.c(SourceFile:143) ~[server.jar:?] at def.a(SourceFile:137) ~[server.jar:?] at dec.a(SourceFile:129) ~[server.jar:?] at dej.a(SourceFile:45) ~[server.jar:?] at abu.a(SourceFile:135) ~[server.jar:?] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at abu.a(SourceFile:135) ~[server.jar:?] at abu.e(SourceFile:171) ~[server.jar:?] at abu.f(SourceFile:156) ~[server.jar:?] at aqy.g(SourceFile:91) ~[server.jar:?] at aqy.a(SourceFile:146) ~[server.jar:?] at aqy.run(SourceFile:102) ~[server.jar:?] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1434) ~[?:?] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) [?:?][12:02:41] [Worker-Main-19/ERROR]: Caught exception in thread Thread[Worker-Main-19,5,main]java.lang.NullPointerException: Cannot invoke "cmr.a(int, int, int)" because "☃" is null at dei.i(SourceFile:96) ~[server.jar:?] at deg.c(SourceFile:143) ~[server.jar:?] at def.a(SourceFile:137) ~[server.jar:?] at dec.a(SourceFile:129) ~[server.jar:?] at dej.a(SourceFile:45) ~[server.jar:?] at abu.a(SourceFile:135) ~[server.jar:?] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?] at abu.a(SourceFile:135) ~[server.jar:?] at abu.e(SourceFile:171) ~[server.jar:?] at abu.f(SourceFile:156) ~[server.jar:?] at aqy.g(SourceFile:91) ~[server.jar:?] at aqy.a(SourceFile:146) ~[server.jar:?] at aqy.run(SourceFile:102) ~[server.jar:?] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1434) ~[?:?] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295) ~[?:?] at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?]
/stop
[12:04:51] [Server thread/INFO]: Stopping the server
[12:04:51] [Server thread/INFO]: Stopping server
[12:04:51] [Server thread/INFO]: Saving players
[12:04:51] [Server thread/INFO]: Saving worlds
[12:04:51] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld

Stopping the server does not work. I have to kill the java task to stop the program.

Attachments

Comments 5

Added additional crash log

 

Code analysis (yarn 1.17.1):

LightStorage#getLightSection is marked as Nullable, but LightStorage#get uses its return value without a null check. While I am unsure what would cause getLightSection to return null, the most plausible answer I can see is when the section is not loaded - and given player logging in usually loads new chunks, this might be the cause.

Note that MC-227537 is not related to this crash.

Is this still an issue in 1.19.2 or later?

This might still be an issue, but I'm not sure. I think that the code that @unknown mentioned hasn't changed (though I don't understand it): in Mojang mappings, LayerLightSectionStorage#getStoredLevel(long) does not in fact have a null check. However, I don't know what the Yarn mappings is exactly referring to by LightStorage#getLightSection. According to the mappings, it should be getDataLayerData(long), which does have a null check; however, getStoredLevel does not call this method; it instead calls getDataLayer. I think a developer or someone with actual technical expertise should take a look at this.

Marjon

gegy

Plausible

Platform

Important

Crash

1.17.1

1.19.3 Pre-release 3

Retrieved