Phoenix 3.6.0 MySQL errors

Heaplink

Developer & Designer
Nov 9, 2011
510
173
I recently got back on my VPS after it restarted. I think Phoenix was running at the time - since the hosting provider I am using is restarting the servers 24/7 with their so called "updates".

I started up the Emulator and got this error (attached file). After this, I went into the table server_status and couldn't see any issues with the row stamp. This is the exported version of server_status table:

Code:
--
-- Table structure for table `server_status`
--
 
CREATE TABLE IF NOT EXISTS `server_status` (
  `status` enum('0','1','2') NOT NULL DEFAULT '0',
  `users_online` int(11) NOT NULL DEFAULT '0',
  `rooms_loaded` int(11) NOT NULL DEFAULT '0',
  `server_ver` text NOT NULL,
  `stamp` double NOT NULL,
  `userpeak` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `server_status`
--
 
INSERT INTO `server_status` (`status`, `users_online`, `rooms_loaded`, `server_ver`, `stamp`, `userpeak`) VALUES
('1', 0, 0, 'Phoenix v3.6.4 (Build 13477)', 1324412153, 0);

I even tried to use the same one as in phoenix 3.6.0.sql but with no luck.

Then suddenly I tried again, and the emulator started. I thought it was over, until I saw errors again. I tried to enter my room and this error appeared in threaderror.err:

Code:
Error in thread Room [ID: 24] cycle task -- Process Users Updates:
System.NullReferenceException: Object reference not set to an instance of an object.
  at Phoenix.HabboHotel.Rooms.xefa913121c70e125.x3cb8659ea4fc7306()

Of what I can see there, there's an issue in the rooms table. I do also get an exception at same point:

Code:
User DC: MySql.Data.MySqlClient.MySqlException (0x80004005): Data truncated for column 'entry_timestamp' at row 1
  at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
  at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
  at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId)
  at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
  at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
  at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
  at MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar()
  at Phoenix.Storage.xc133500a5775b79b.xa266202b32508032(String xe6ac21f3fcfe8372)
  at Phoenix.HabboHotel.Rooms.xefa913121c70e125.x7fc5b234d779d58c(xca0375af76c32b7d xf16d877ad29a8cf1, Boolean x586fb91c9f89ea2a)
  at Phoenix.Messages.x02dcbe990499f50c.xde5f9db4c3498373()
  at Phoenix.Messages.x02dcbe990499f50c.xe4364a03608599c7(x49fa09cbda40e784 x6b03218578435fe3)
  at Phoenix.HabboHotel.GameClients.xca0375af76c32b7d.xf896e51a95fce6ae(Byte[]& x4a3f0a05c02f235f)

even AFTER truncating the user_roomvisits table.

If you have any clue of why this thing is happening to me, and how I can fix it (without cleaning the database from scratch) I would appreciate it.

Thanks in advance :up:

EDIT:
I might see the problem. Phoenix really stuck things up at the rows with type of double. But why, I don't know.

EDIT - FIX!!!
After hours of jacking around, I found the solution the my problem above. What I did was going to the MySQL configuration file (my.ini) and changed the SQL mode and removed STRICT_MODE, which MySQL does have by default. This can be done by changing:

Code:
"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

to

Code:
"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

If anyone else had this issue, try to do like above and remember to restart your MySQL server.
 

Attachments

  • Screen shot 2011-12-20 at 1.54.20 PM.png
    Screen shot 2011-12-20 at 1.54.20 PM.png
    33.5 KB · Views: 49

Users who are viewing this thread

Top