Error on new user login
SmallSansSerif opened this issue · 12 comments
Error on new player login.. See full error at pastebin link below:
[17:05:46] [User Authenticator #25/INFO]: UUID of player MinerSquid410 is f649c527-5c9e-460d-bc5c-6e35d3cbc424
[17:05:46] [Server thread/INFO]: f649c527-5c9e-460d-bc5c-6e35d3cbc424
[17:05:46] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to HomeSpawnPlus v2.0-beta2-SNAPSHOT-b572
org.bukkit.event.EventException
Using the ebeans MySql setup btw..
Caused by: javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
Thanks for the MySql script. While familiar with MySQL, I'm not super comfortable tweaking things. I did run the first part and seemed to work fine but wondering how I would find the highest player id to run the next alter. Thanks in advance.
Ah, the first bit returned the count number and then I inserted into the next bit.. like so:
ALTER TABLE hsp_player AUTO_INCREMENT = 143;
Sound correct?
Actually, thinking about it some more, here is the query for the AUTO_INCREMENT you should set:
select max(id) from hsp_player;
And add 1 to whatever number it returns. With the current query/max you have set, you will likely still get an error when the next new player logs in due to duplicate ids.
I suspect this is due to differences between MySQL and Sqlite. When I coded the DB upgrade for 2.0, I tried to get around the fact that every previous version I had to detect whether it was MySQL or Sqlite and write and test separate upgrade code for each. I found what I thought was an elegant way to do the upgrade with common code.
Thinking about your error, I suspect this is because MySQL supports AUTO_INCREMENT while Sqlite calls it AUTOINCREMENT, and I'm not sure which one the upgrade code uses (probably neither), whereas the previous SQL schema for Mysql would have had this. As a result, the code that creates new rows is failing. If you are comfortable using SQL, you can fix this by adding AUTO_INCREMENT to the id column of hsp_player. You might also need to set your AUTO_INCREMENT count to your highest player id.
Here's the SQL that will do that for you:
ALTER TABLE hsp_player CHANGE id id integer auto_increment;
select count(*) from hsp_player;
ALTER TABLE hsp_player AUTO_INCREMENT = <the count number + 1>;
Which I give you because I don't have time to modify and test the SQL update scripts right now, it takes a lot of repeated DB upgrade testing to get all that just right. It is my highest priority bug at the moment so hopefully I will get to it here soon. Thanks for the report.
Yes looks good. Let me know what happens when a new player logs in
On Dec 12, 2014 7:48 AM, "SmallSansSerif" [email protected] wrote:
[image: screen shot 2014-12-12 at 10 47 51 am]
https://cloud.githubusercontent.com/assets/4984139/5414361/5875761c-81ec-11e4-86bf-72f3186adc09.pngLike this? set it to 144 now
—
Reply to this email directly or view it on GitHub
#24 (comment).