FastAsyncWorldEdit

FastAsyncWorldEdit

152k Downloads

Failed making field 'java.util.concurrent.locks.ReentrantLock#sync' accessible

SecretlyJealous opened this issue ยท 5 comments

commented

Server Implementation

Paper

Server Version

1.20

Describe the bug

A user undid a paste and disconnected but triggered an error in console:

[13:31:38] [Server thread/INFO]: AwakeningLilli issued server command: //set grass_block
[13:31:50] [Server thread/INFO]: AwakeningLilli issued server command: //set grass_block
[13:31:58] [Server thread/INFO]: AwakeningLilli issued server command: //set grass_block
[13:32:33] [Server thread/INFO]: AwakeningLilli issued server command: //set dirt
[13:32:44] [Server thread/INFO]: AwakeningLilli issued server command: //copy
[13:32:48] [Server thread/INFO]: AwakeningLilli issued server command: //undo
[13:32:52] [Server thread/INFO]: AwakeningLilli issued server command: //flip south
[13:32:56] [Server thread/INFO]: AwakeningLilli issued server command: //paste
[13:32:59] [Server thread/INFO]: AwakeningLilli issued server command: //undo
[13:33:04] [Server thread/INFO]: AwakeningLilli lost connection: Disconnected
[13:38:49] [WorldEdit Session Saver - 0/WARN]: Failed to write session for UUID b8adf636-b7f1-4ea3-9c18-619a9ee07204
java.io.IOException: com.google.gson.JsonIOException: Failed making field 'java.util.concurrent.locks.ReentrantLock#sync' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.
	at com.sk89q.worldedit.session.storage.JsonFileSessionStore.save(JsonFileSessionStore.java:118) ~[FastAsyncWorldEdit-Bukkit-2.6.3-SNAPSHOT.jar:?]
	at com.sk89q.worldedit.session.SessionManager.lambda$commit$0(SessionManager.java:259) ~[FastAsyncWorldEdit-Bukkit-2.6.3-SNAPSHOT.jar:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131) ~[guava-31.1-jre.jar:?]
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) ~[guava-31.1-jre.jar:?]
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82) ~[guava-31.1-jre.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.lang.Thread.run(Thread.java:1589) ~[?:?]
Caused by: com.google.gson.JsonIOException: Failed making field 'java.util.concurrent.locks.ReentrantLock#sync' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.
	at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:38) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:287) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.getAdapter(Gson.java:546) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:55) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:183) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:795) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:766) ~[gson-2.10.jar:?]
	at com.sk89q.worldedit.session.storage.JsonFileSessionStore.save(JsonFileSessionStore.java:116) ~[FastAsyncWorldEdit-Bukkit-2.6.3-SNAPSHOT.jar:?]
	... 7 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.concurrent.locks.ReentrantLock$Sync java.util.concurrent.locks.ReentrantLock.sync accessible: module java.base does not "opens java.util.concurrent.locks" to unnamed module @5a06787e
	at java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:387) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:363) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:311) ~[?:?]
	at java.lang.reflect.Field.checkCanSetAccessible(Field.java:180) ~[?:?]
	at java.lang.reflect.Field.setAccessible(Field.java:174) ~[?:?]
	at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:35) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:287) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.getAdapter(Gson.java:546) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:55) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:183) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:795) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:766) ~[gson-2.10.jar:?]
	at com.sk89q.worldedit.session.storage.JsonFileSessionStore.save(JsonFileSessionStore.java:116) ~[FastAsyncWorldEdit-Bukkit-2.6.3-SNAPSHOT.jar:?]
	... 7 more

To Reproduce

Not sure

Expected behaviour

No errors

Screenshots / Videos

No response

Error log (if applicable)

No response

Fawe Debugpaste

debugpaste is not working so here is my log: https://paste.gg/p/anonymous/b5abd4a969ef4870ab702697209c8d52

Fawe Version

FastAsyncWorldEdit version 2.6.3-SNAPSHOT (https://ci.athion.net/job/FAWE-PS-v7/)

Checklist

Anything else?

No response

commented

This stacktrace was reported in #2131 (comment) but there is still no proper way to reproduce it I guess.

commented

This ConsoleSpamFix does make me wonder if it hides something we need to know in order to find the cause. Would be better to get rid of it at the moment and the builder retries what he did on your server

commented

Also how is it possible that the /fawe debugpaste command is not working? Can you retry that as well?

commented

Here you go, important to reproduce (like it happened in the wild) is to undo someone else quite a few times after the person left
https://paste.gg/p/anonymous/dc6d4d0f18c24ca7829648d0f8085f89
That was 1.19.4 with fawe-473

commented

This looks to be fixed