Zeruell / ppx-raidplaner

Automatically exported from code.google.com/p/ppx-raidplaner
0 stars 0 forks source link

Settings fail to install on MySQL servers with sql-mode=traditional #36

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Clean database
2. Unpack version 0.97a
3. Log in
4. Go to settings

What is the expected output? What do you see instead?

Settings should appear, nothing happend.

What version of the product are you using? Which browser / php version are
you using?

0.97a

Please provide any additional information below.

Console showed undefined call error.
Reason was missing "RaidMode" setting in "raids_setting" table.

Original issue reported on code.google.com by Osipi...@gmail.com on 19 Mar 2013 at 6:03

GoogleCodeExporter commented 9 years ago
Banner tables are missing too... Can't edit issue.

Original comment by Osipi...@gmail.com on 19 Mar 2013 at 6:06

GoogleCodeExporter commented 9 years ago
What do you mean by "clean database"?
From which version did you upgrade from?
Did you run the update process 
https://code.google.com/p/ppx-raidplaner/wiki/HowToUpdate ?

Original comment by arne.cl...@gmail.com on 19 Mar 2013 at 8:34

GoogleCodeExporter commented 9 years ago
I downloaded "raidplaner_097a.zip".
Created new schema for raidplanner.
Entered setup and gone step by step through installation process.
Logged in to raidplanner.

Therefore update should not be necessary.

Original comment by Osipi...@gmail.com on 19 Mar 2013 at 8:57

GoogleCodeExporter commented 9 years ago
- Created a new, empty schema
- Downloaded, copied to httproot, ran installation (no external bindings)
-> works as expected.
(or in other words, I could not reproduce the problem on first try)

So I will need some more detailed information about your system and environment

- Which PHP version do you use?
- Which MySQL version do you use?
- Is the raid_settings table completely empty (there should be 12 rows)?
- After entering the database password, etc. during setup and upon switching to 
the next page, did you notice any error messages?

Also please note, that you can download the raidplaner097.sql file which can be 
imported via phpMyAdmin to create a ready to use database. If setup 
successfully created all config files this will get you up and running.
This page covers the topic 
https://code.google.com/p/ppx-raidplaner/wiki/ManualSetup

Original comment by arne.cl...@gmail.com on 19 Mar 2013 at 9:19

GoogleCodeExporter commented 9 years ago
I found an issue!

During setup you create table :

$connector->exec( "CREATE TABLE IF NOT EXISTS `".$_REQUEST["prefix"]."Setting` (
          `SettingId` int(10) unsigned NOT NULL AUTO_INCREMENT,
          `Name` varchar(64) NOT NULL,
          `IntValue` int(11) NOT NULL,
          `TextValue` varchar(255) NOT NULL,
          PRIMARY KEY (`SettingId`),
          FULLTEXT KEY `Name` (`Name`),
          UNIQUE KEY `Unique_Name` (`Name`)
        ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;" );

Notice field IntValue - it's not null and accepts only int!

Then while filling the data you execute :

$connector->exec( "INSERT INTO `".$_REQUEST["prefix"]."Setting` (`Name`, 
`IntValue`, `TextValue`) VALUES('RaidMode', '', 'manual');" );

Where IntValue is empty string -> ''
Thats why MySQL rejects this rows.
All rows with empty string value at this column are rejected.
With fresh install i see only 9 rows in table. Should be 12 according to script.

Original comment by Osipi...@gmail.com on 19 Mar 2013 at 10:05

GoogleCodeExporter commented 9 years ago
Oh i forgot :
Php 5.4.4
MySql 5.5.25

Original comment by Osipi...@gmail.com on 19 Mar 2013 at 10:09

GoogleCodeExporter commented 9 years ago
Did this really work out for you? Because '' is not NULL.

http://dev.mysql.com/doc/refman/5.1/en/problems-with-null.html
"[...] who often think that NULL is the same thing as an empty string ''. This 
is not the case."

So technically this statement is correct. Furthermore this string is copy-paste 
form phpMyAdmin which is a quite well tested application, so I'm a bit sceptic 
about this really being the error. Another thing is that this code part hasn't 
changed for more than half a year and has worked on many other installations.

Anyway - your php and mysql versions match those of my test server, so I'll see 
if there are some settings preventing this part to work.
I'll look into this in more detail this evening. 

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 7:02

GoogleCodeExporter commented 9 years ago
Ok, quick update - I guess your mysql has something like "warning as errors" 
enabled. The latest phpMyAdmin actually DOES give a warning about '' not being 
a valid integer value, which is obviously correct.
On my installation however this is ignored and the row is inserted anyway.

So short - this seem to be a problem on servers with a MySQL setting I've not 
yet encountered.
I'll check my code if there are any other problems of that kind and put that in 
the 0.9.7b patch.

I will upload a modified dump this evening so this can be used as a workaround.

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 7:09

GoogleCodeExporter commented 9 years ago

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 7:10

GoogleCodeExporter commented 9 years ago
And another follow up.
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

Looks like your server is running in "traditional" mode.

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 7:13

GoogleCodeExporter commented 9 years ago
Confirmed as a problem on mysql servers with sql-mode="TRADITIONAL"

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 8:28

GoogleCodeExporter commented 9 years ago
Two other files were affected by this problem.
The broken functions are attending raids and registering a new user.
Here are the fixed versions.

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 8:45

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by arne.cl...@gmail.com on 20 Mar 2013 at 7:31

GoogleCodeExporter commented 9 years ago

Original comment by arne.cl...@gmail.com on 23 Mar 2013 at 12:19