Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于升级插件后背包丢失的问题 #6

Closed
jiongjionger opened this issue May 5, 2015 · 2 comments
Closed

关于升级插件后背包丢失的问题 #6

jiongjionger opened this issue May 5, 2015 · 2 comments

Comments

@jiongjionger
Copy link

今天我把1.7.10的服务端升级到1.8.3,同时也将PlayerSQL插件升级到最新版本。在排除其他插件问题时发现升级PlayerSQL会导致背包数据读取失败(清空背包),再次登录后正常。
手动在Mysql把Data字段的内容替换成原来的内容,发现该问题可以复现。可能是NBT不兼容导致?请问有办法解决么?如果确实由序列化的NBT不兼容导致,可以增加转换数据的功能么?

报错内容:

21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
21:36:49 WARN: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
21:36:49 WARN: at java.lang.reflect.Method.invoke(Method.java:483)
21:36:49 WARN: at com.mengcraft.playersql.util.ItemUtil.getItemStack(ItemUtil.java:92)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.arrayToStacks(CheckLoadedTask.java:96)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.sync(CheckLoadedTask.java:63)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.work(CheckLoadedTask.java:43)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.run(CheckLoadedTask.java:35)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:720)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554)
21:36:49 WARN: at java.lang.Thread.run(Thread.java:745)
21:36:49 WARN: Caused by: java.io.EOFException
21:36:49 WARN: at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:609)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:564)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.b(SourceFile:376)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.load(SourceFile:46)
21:36:49 WARN: ... 16 more

21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
21:36:49 WARN: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
21:36:49 WARN: at java.lang.reflect.Method.invoke(Method.java:483)
21:36:49 WARN: at com.mengcraft.playersql.util.ItemUtil.getItemStack(ItemUtil.java:92)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.arrayToStacks(CheckLoadedTask.java:96)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.sync(CheckLoadedTask.java:63)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.work(CheckLoadedTask.java:43)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.run(CheckLoadedTask.java:35)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:720)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554)
21:36:49 WARN: at java.lang.Thread.run(Thread.java:745)
21:36:49 WARN: Caused by: java.io.EOFException
21:36:49 WARN: at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:609)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:564)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.b(SourceFile:376)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.load(SourceFile:46)
21:36:49 WARN: ... 16 more

21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
21:36:49 WARN: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
21:36:49 WARN: at java.lang.reflect.Method.invoke(Method.java:483)
21:36:49 WARN: at com.mengcraft.playersql.util.ItemUtil.getItemStack(ItemUtil.java:92)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.arrayToStacks(CheckLoadedTask.java:96)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.sync(CheckLoadedTask.java:63)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.work(CheckLoadedTask.java:43)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.run(CheckLoadedTask.java:35)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:720)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554)
21:36:49 WARN: at java.lang.Thread.run(Thread.java:745)
21:36:49 WARN: Caused by: java.io.EOFException
21:36:49 WARN: at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:609)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:564)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.b(SourceFile:376)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.load(SourceFile:46)
21:36:49 WARN: ... 16 more

21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
21:36:49 WARN: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
21:36:49 WARN: at java.lang.reflect.Method.invoke(Method.java:483)
21:36:49 WARN: at com.mengcraft.playersql.util.ItemUtil.getItemStack(ItemUtil.java:92)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.arrayToStacks(CheckLoadedTask.java:96)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.sync(CheckLoadedTask.java:63)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.work(CheckLoadedTask.java:43)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.run(CheckLoadedTask.java:35)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:720)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554)
21:36:49 WARN: at java.lang.Thread.run(Thread.java:745)
21:36:49 WARN: Caused by: java.io.EOFException
21:36:49 WARN: at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:609)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:564)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.b(SourceFile:376)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.load(SourceFile:46)
21:36:49 WARN: ... 16 more

21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
21:36:49 WARN: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
21:36:49 WARN: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
21:36:49 WARN: at java.lang.reflect.Method.invoke(Method.java:483)
21:36:49 WARN: at com.mengcraft.playersql.util.ItemUtil.getItemStack(ItemUtil.java:92)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.arrayToStacks(CheckLoadedTask.java:96)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.sync(CheckLoadedTask.java:67)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.work(CheckLoadedTask.java:43)
21:36:49 WARN: at com.mengcraft.playersql.task.CheckLoadedTask.run(CheckLoadedTask.java:35)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
21:36:49 WARN: at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:720)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554)
21:36:49 WARN: at java.lang.Thread.run(Thread.java:745)
21:36:49 WARN: Caused by: java.io.EOFException
21:36:49 WARN: at java.io.DataInputStream.readFully(DataInputStream.java:197)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:609)
21:36:49 WARN: at java.io.DataInputStream.readUTF(DataInputStream.java:564)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.b(SourceFile:376)
21:36:49 WARN: at net.minecraft.server.v1_8_R2.NBTTagCompound.load(SourceFile:46)
21:36:49 WARN: ... 16 more

@caoli5288
Copy link
Owner

的确是nbt不兼容,这是大版本数据格式改了的缘故,做转换得不偿失。建议大版本升级前删除掉数据库重新记录数据。

@jiongjionger
Copy link
Author

感谢回复。给后来可能遇到的人:
在确保数据全部同步完成后,关闭服务端,升级服务端和插件到1.8.3,然后删除数据库内PlayerData内的数据,重新开服即可。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants