eccentricdevotion / GameModeInventories

Bukkit plugin to allow players to have separate inventories for each game mode (Creative and Survival).
GNU General Public License v3.0
8 stars 5 forks source link

Plugin sometimes freezes then kills itself and everything with it #3

Closed JasonHorkles closed 4 years ago

JasonHorkles commented 4 years ago

On Paper-33 1.15.1 version 3.2.1 the plugin doesn't seem to like something. Any way to fix this or is it a bug? https://hasteb.in/vevaqako.log Used to happen on version 3.2 as well

eccentricdevotion commented 4 years ago

Looks like it is struggling to read / write to the SQLite database, corrupt file?

JasonHorkles commented 4 years ago

Is there a way to fix it without losing peoples' inventories?

eccentricdevotion commented 4 years ago

Not that I know of, but I'm not 100% sure what the issue is anyway...

JasonHorkles commented 4 years ago

I asked in the Paper server a while ago and they were saying it was trying to open multiple sqlite connections on multiple threads and then all heck broke loose after that

eccentricdevotion commented 4 years ago

GMI uses a singleton to connect to SQLite i.e. only one connection instance should ever be initiated. Are you reloading the server instead of stopping and restarting?

eccentricdevotion commented 4 years ago

The GameModeInventoriesSQLiteConnection.java file hasn't really changed apart from formatting issues since 2015...

JasonHorkles commented 4 years ago

Nope I never reload In fact the error seems to be more likely to occur after startup

eccentricdevotion commented 4 years ago

Is

track_creative_place:
  enabled: true

? If it is you should really be using MySQL as there are likely to be millions of records of creative block placements which are loaded at startup. SQLite will struggle with that. Can you attach your DB file?

JasonHorkles commented 4 years ago

Oh yeah it's set to true. What does it do anyways? https://1drv.ms/u/s!ArOS099NaR9Lhvcs3cZqXMB9uu3a3w

eccentricdevotion commented 4 years ago

track_creative_place tracks the placement of CREATIVE gamemode placed blocks, then either: disables them from being broken, or, allows them to be broken but not drop anything - and also prevents pistons from moving them and denies the block dropping if the attached block is broken. If you don't use those features, it shouldn't be enabled...

JasonHorkles commented 4 years ago

Yeah I only have creative enabled in the plot world and PlotSquared should handle that so I'll just go ahead and disable it

eccentricdevotion commented 4 years ago

Let me know if that makes a difference.

JasonHorkles commented 4 years ago

I could also connect the plugin to a MySQL database, would that help server performance too?

eccentricdevotion commented 4 years ago

Probably, but you'd have to convert existing player records over manually

JasonHorkles commented 4 years ago

Oof I'll probably just leave that as is for now

JasonHorkles commented 4 years ago

I'll just go ahead and close this for now but if the issue occurs again then I'll reopen it