Noem Rohit in de pull request. zijn bug

On Mon, Apr 13, 2015 at 4:01 PM, Remi Bergsma
<rberg...@schubergphilis.com> wrote:
> Hi,
>
> Did some more digging:
>
> The foreign keys are to these tables:
> +-----------------------------+
> | TABLE_NAME                  |
> +-----------------------------+
> | global_load_balancing_rules |
> | portable_ip_address         |
> | portable_ip_range           |
> +-----------------------------+
> 3 rows in set (0.04 sec)
>
> I see two ways to solve it:
>
> Option 1:
> Remove the foreign keys, do the alter, then add them again. Like this:
>
> # Remove
> ALTER TABLE global_load_balancing_rules DROP FOREIGN KEY 
> fk_global_load_balancing_rules_region_id;
> ALTER TABLE portable_ip_address DROP FOREIGN KEY 
> fk_portable_ip_address__region_id;
> ALTER TABLE portable_ip_range DROP FOREIGN KEY fk_portableip__region_id;
>
> # Alter
> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT;
>
> # Add
> ALTER TABLE global_load_balancing_rules ADD CONSTRAINT 
> fk_global_load_balancing_rules_region_id FOREIGN KEY (region_id) references 
> region(id);
> ALTER TABLE portable_ip_address ADD CONSTRAINT 
> fk_portable_ip_address__region_id FOREIGN KEY (region_id) references 
> region(id);
> ALTER TABLE portable_ip_range ADD CONSTRAINT fk_portableip__region_id FOREIGN 
> KEY (region_id) references region(id);
>
> Option 2:
> Temporarily disable foreign key checks:
>
> set foreign_key_checks=0;
> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT;
> set foreign_key_checks=1;
>
> I have tested both and they work. Let's discuss how you want to solve it and 
> I can create a PR if needed.
>
> Regards,
> Remi
>
>
>
> On 13 Apr 2015, at 15:26, Remi Bergsma 
> <rberg...@schubergphilis.com<mailto:rberg...@schubergphilis.com>> wrote:
>
> Hi Daan,
>
> This is probably something we want to fix in 4.4.3?
> If I try an upgrade from 4.4.x to 4.5 and above, then there's a SQL upgrade 
> command failing:
>
> ERROR [c.c.u.d.ScriptRunner] (main:null) Error executing: ALTER TABLE 
> `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT UNIQUE NOT NULL
> ERROR [c.c.u.d.ScriptRunner] (main:null) java.sql.SQLException: Cannot change 
> column 'id': used in a foreign key constraint 
> 'fk_global_load_balancing_rules_region_id' of table 
> 'cloud.global_load_balancing_rules'
> ERROR [c.c.u.DatabaseUpgradeChecker] (main:null) Unable to execute upgrade 
> script: 
> /Users/rbergsma/git/remibergsma/cloudstack/client/target/utilities/scripts/db/db/schema-442to450.sql
> java.sql.SQLException: Cannot change column 'id': used in a foreign key 
> constraint 'fk_global_load_balancing_rules_region_id' of table 
> 'cloud.global_load_balancing_rules'
>
> I discovered it first when I was on the to-be-released 4.4.3 branch, but 
> 4.4.2 and 4.4.1 have the same issue if upgrading to 4.5/4.6.
>
> Testing is easy: just deploy a given version and try to run this query:
> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT UNIQUE 
> NOT NULL;
>
> Let's have a look how to fix this. Also see the details below.
>
> Regards,
> Remi
>
> 4.4.3:
>
> mysql> select * from version;
> +----+---------+---------------------+----------+
> | id | version | updated             | step     |
> +----+---------+---------------------+----------+
> |  1 | 4.0.0   | 2015-04-13 14:24:31 | Complete |
> |  2 | 4.1.0   | 2015-04-13 19:24:49 | Complete |
> |  3 | 4.2.0   | 2015-04-13 19:24:49 | Complete |
> |  4 | 4.2.1   | 2015-04-13 19:24:49 | Complete |
> |  5 | 4.3.0   | 2015-04-13 19:24:49 | Complete |
> |  6 | 4.4.0   | 2015-04-13 19:24:49 | Complete |
> |  7 | 4.4.1   | 2015-04-13 19:24:49 | Complete |
> |  8 | 4.4.2   | 2015-04-13 19:24:49 | Complete |
> |  9 | 4.4.3   | 2015-04-13 19:24:49 | Complete |
> +----+---------+---------------------+----------+
> 9 rows in set (0.00 sec)
>
> mysql> select * from region;
> +----+-------+-------------------------------+----------------------------+----------------------+
> | id | name  | end_point                     | portableip_service_enabled | 
> gslb_service_enabled |
> +----+-------+-------------------------------+----------------------------+----------------------+
> |  1 | Local | http://localhost:8080/client/ |                          0 |   
>                  1 |
> +----+-------+-------------------------------+----------------------------+----------------------+
> 1 row in set (0.00 sec)
>
>
> mysql> select * from global_load_balancing_rules;
> Empty set (0.00 sec)
>
>
> mysql> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT 
> UNIQUE NOT NULL;
> ERROR 1833 (HY000): Cannot change column 'id': used in a foreign key 
> constraint 'fk_global_load_balancing_rules_region_id' of table 
> 'cloud.global_load_balancing_rules'
> mysql>
>
>
> It also appears in 4.4.2:
>
> git checkout upstream/GA-4.4.2
>
>
> mysql> select * from version;
> +----+---------+---------------------+----------+
> | id | version | updated             | step     |
> +----+---------+---------------------+----------+
> |  1 | 4.0.0   | 2015-04-13 14:31:31 | Complete |
> |  2 | 4.1.0   | 2015-04-13 19:31:48 | Complete |
> |  3 | 4.2.0   | 2015-04-13 19:31:48 | Complete |
> |  4 | 4.2.1   | 2015-04-13 19:31:48 | Complete |
> |  5 | 4.3.0   | 2015-04-13 19:31:48 | Complete |
> |  6 | 4.4.0   | 2015-04-13 19:31:48 | Complete |
> |  7 | 4.4.1   | 2015-04-13 19:31:48 | Complete |
> |  8 | 4.4.2   | 2015-04-13 19:31:48 | Complete |
> +----+---------+---------------------+----------+
> 8 rows in set (0.00 sec)
>
> mysql> describe region;
> +----------------------------+---------------------+------+-----+---------+-------+
> | Field                      | Type                | Null | Key | Default | 
> Extra |
> +----------------------------+---------------------+------+-----+---------+-------+
> | id                         | int(10) unsigned    | NO   | PRI | NULL    |   
>     |
> | name                       | varchar(255)        | NO   | UNI | NULL    |   
>     |
> | end_point                  | varchar(255)        | NO   |     | NULL    |   
>     |
> | portableip_service_enabled | tinyint(1) unsigned | NO   |     | 0       |   
>     |
> | gslb_service_enabled       | tinyint(1) unsigned | NO   |     | 1       |   
>     |
> +----------------------------+---------------------+------+-----+---------+-------+
> 5 rows in set (0.01 sec)
>
> mysql> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT 
> UNIQUE NOT NULL;
> ERROR 1833 (HY000): Cannot change column 'id': used in a foreign key 
> constraint 'fk_global_load_balancing_rules_region_id' of table 
> 'cloud.global_load_balancing_rules'
> mysql>
>
> git checkout upstream/GA-4.4.1
>
>
> mysql> select * from version;
> +----+---------+---------------------+----------+
> | id | version | updated             | step     |
> +----+---------+---------------------+----------+
> |  1 | 4.0.0   | 2015-04-13 14:42:18 | Complete |
> |  2 | 4.1.0   | 2015-04-13 19:42:33 | Complete |
> |  3 | 4.2.0   | 2015-04-13 19:42:33 | Complete |
> |  4 | 4.2.1   | 2015-04-13 19:42:33 | Complete |
> |  5 | 4.3.0   | 2015-04-13 19:42:33 | Complete |
> |  6 | 4.4.0   | 2015-04-13 19:42:33 | Complete |
> |  7 | 4.4.1   | 2015-04-13 19:42:33 | Complete |
> +----+---------+---------------------+----------+
> 7 rows in set (0.00 sec)
>
> mysql> describe region;
> +----------------------------+---------------------+------+-----+---------+-------+
> | Field                      | Type                | Null | Key | Default | 
> Extra |
> +----------------------------+---------------------+------+-----+---------+-------+
> | id                         | int(10) unsigned    | NO   | PRI | NULL    |   
>     |
> | name                       | varchar(255)        | NO   | UNI | NULL    |   
>     |
> | end_point                  | varchar(255)        | NO   |     | NULL    |   
>     |
> | portableip_service_enabled | tinyint(1) unsigned | NO   |     | 0       |   
>     |
> | gslb_service_enabled       | tinyint(1) unsigned | NO   |     | 1       |   
>     |
> +----------------------------+---------------------+------+-----+---------+-------+
> 5 rows in set (0.02 sec)
>
> ALTER TABLE `cloud`.`region` MODIFY `id` int unsigned AUTO_INCREMENT UNIQUE 
> NOT NULL;
> ERROR 1833 (HY000): Cannot change column 'id': used in a foreign key 
> constraint 'fk_global_load_balancing_rules_region_id' of table 
> 'cloud.global_load_balancing_rules'
> mysql>
>
>
> As you might expect, greenfield 4.5 and 4.6 has this field set already.
>
> 4.5:
> mysql> describe region;
> +----------------------------+---------------------+------+-----+---------+----------------+
> | Field                      | Type                | Null | Key | Default | 
> Extra          |
> +----------------------------+---------------------+------+-----+---------+----------------+
> | id                         | int(10) unsigned    | NO   | PRI | NULL    | 
> auto_increment |
> | name                       | varchar(255)        | NO   | UNI | NULL    |   
>              |
> | end_point                  | varchar(255)        | NO   |     | NULL    |   
>              |
> | portableip_service_enabled | tinyint(1) unsigned | NO   |     | 0       |   
>              |
> | gslb_service_enabled       | tinyint(1) unsigned | NO   |     | 1       |   
>              |
> +----------------------------+---------------------+------+-----+---------+----------------+
> 5 rows in set (0.01 sec)
>
>
> 4.6:
>
> mysql> describe region;
> +----------------------------+---------------------+------+-----+---------+----------------+
> | Field                      | Type                | Null | Key | Default | 
> Extra          |
> +----------------------------+---------------------+------+-----+---------+----------------+
> | id                         | int(10) unsigned    | NO   | PRI | NULL    | 
> auto_increment |
> | name                       | varchar(255)        | NO   | UNI | NULL    |   
>              |
> | end_point                  | varchar(255)        | NO   |     | NULL    |   
>              |
> | portableip_service_enabled | tinyint(1) unsigned | NO   |     | 0       |   
>              |
> | gslb_service_enabled       | tinyint(1) unsigned | NO   |     | 1       |   
>              |
> +----------------------------+---------------------+------+-----+---------+----------------+
> 5 rows in set (0.01 sec)
>
>
>
>
>
> On 09 Apr 2015, at 06:00, Wido den Hollander 
> <w...@widodh.nl<mailto:w...@widodh.nl><mailto:w...@widodh.nl>> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>
> On 04/09/2015 12:26 PM, Remi Bergsma wrote:
> Hi Daan,
>
> If your doing another RC, consider including the fixes to the
> kvmheartbeat script. There’s a final PR I just submitted to make it
> work reliably. We’ve tested it in our employee cloud and it works
> fine.
>
>
> +1
>
> Is it in the 4.4 branch already?
>
> Regards, Remi
>
>
> On 09 Apr 2015, at 11:27, Nux! 
> <n...@li.nux.ro<mailto:n...@li.nux.ro><mailto:n...@li.nux.ro>> wrote:
>
> Daan,
>
> "33744ed658bbf29924bf79c0a651f88abcf793f9: appliance: build
> systemvm template for KVM compatible with older qemu" this seems
> important as System VMs will not be able to run on older qemu
> (namely CentOS 6).
>
> Since we've been taking our time with it, I wouldn't mind another
> quick RC, at least release something good.
>
> -- Sent from the Delta quadrant using Borg technology!
>
> Nux! www.nux.ro<http://www.nux.ro><http://www.nux.ro>
>
> ----- Original Message -----
> From: "Daan Hoogland" 
> <daan.hoogl...@gmail.com<mailto:daan.hoogl...@gmail.com><mailto:daan.hoogl...@gmail.com>>
>  To: "dev"
> <dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org><mailto:dev@cloudstack.apache.org>>
>  Sent: Thursday, 9 April, 2015
> 09:33:07 Subject: [DISCUSS] 4.4.3 rc
>
> H,
>
> I made a 4.4.3 rc a couple of weeks ago and it has tachnically
> enough votes to be released atm. There where some fixes in the
> last two weeks that are not in there however and it is no
> trouble to create a new rc. Should I/Can I? Or do we all feel
> the present state should be released:
>
> 33744ed658bbf29924bf79c0a651f88abcf793f9: appliance: build
> systemvm template for KVM compatible with older qemu
> 244c361b50c7de8b7b4299e8aabcad01efc12e35: appliance: remove any
> stale raw.img file 9a730d469c7d0baa51034761934791536260396e:
> CLOUDSTACK-6353: Fix list to have correct LB IP for each rule
> a79fd8816e1fb91f2df78332380f23ea47463481: Add CONTRIBUTING
> instructions
>
> These don't seem like heavy weighing issues but I still want to
> give opportunity to champion for any of them.
>
> -- Daan
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iQIcBAEBAgAGBQJVJlvOAAoJEAGbWC3bPspCKiAP+QEZEZ0ulBKDP5xT9bBOIRy4
> sJ8S6r2fAKP9/d1Y2uwLwAGVdehIAG9uEzxQI7C2ICpokvm2tZCzyHuRlpA18Xkb
> 3CEbk84SUFiq+riXmr9U0P8A7ukCEAwu6jpZVdwF3cjqPm1racNdzJRrAnNoOS8y
> TyK+5cJC76KQH4SbYgaOFB4qRZC5pUE3SmwwtDUwY6BBuQcgr6j3TBNHI+kX8ylk
> h6BpC7tzv0O+MoF9N7y09ITU5ViInbcIwtxAtPc7HEr58md4TnIkJegudPBvDV1Y
> 90HtQ4jfzTT7q3gQ5aCd0ezp+xbwCxAM+3bsFu6T3z9xEMj6cADOqxSDfxwGcvzT
> 1mnvRqtuEU2YRxhHm7RCNQilnh5PVrEr175jPOiNTo5srueEQp5BMBWPaQPm4uBK
> ei0wm4n0Igk6Qp43HbNRDYX9A28gMxtILf1cTavrIIzZVJIMW5FLpR076eDx8UZn
> tSQS3maHRZdOKAQMGjdUTsfic20WvwTYk8s6k4w4559TV9Wvx6zOFff1NociuFx/
> Zww4RoAEzgo6xCyz/BeLMU9W2YnY70clt9YnpLqRLsghWmTXuLmjHwZLez4zYOaY
> dKjdcorFgUQt7qngV6FTwYLds2Ka+cTYkIPGJ4ivShQHa8hItMcFStyu/VFtfUY2
> v7nLvATOEsE96hJqFw0O
> =qcKu
> -----END PGP SIGNATURE-----
>
>



-- 
Daan

Reply via email to