cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajani Karuturi (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CLOUDSTACK-252) UpdateNetwork Operation on a guest network that is currently using Virtual Router for Lb services to a network offering that uses "F5" for Lb services Fails due to MySQLIntegrityConstraintViolationException.
Date Wed, 18 Mar 2015 11:07:39 GMT

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rajani Karuturi updated CLOUDSTACK-252:
---------------------------------------
    Description: 
===============
Steps to Reproduce:
===============

1. On an Advanced Zone with two physical networks, create a guest network from a network offering
with services as mentioned below

{noformat}
mysql> select * from network_offerings where id=13 \G
*************************** 1. row ***************************
                       id: 13
                     name: Network-SNAT-guest1
                     uuid: 277b7b7a-8aeb-46f8-94e9-e83de34912a8
              unique_name: Network-SNAT-guest1
             display_text: Network-SNAT-guest1
                  nw_rate: 500
                  mc_rate: 10
             traffic_type: Guest
                     tags: guest1
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2012-09-26 18:43:35
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 1
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
1 row in set (0.00 sec)
{noformat}
{noformat}
mysql> select * from ntwk_offering_service_map where network_offering_id=13;
+----+---------------------+----------------+---------------+---------------------+
| id | network_offering_id | service        | provider      | created             |
+----+---------------------+----------------+---------------+---------------------+
| 48 |                  13 | Dhcp           | VirtualRouter | 2012-09-26 18:43:35 |
| 51 |                  13 | Dns            | VirtualRouter | 2012-09-26 18:43:35 |
| 52 |                  13 | Firewall       | VirtualRouter | 2012-09-26 18:43:35 |
| 49 |                  13 | Lb             | VirtualRouter | 2012-09-26 18:43:35 |
| 50 |                  13 | PortForwarding | VirtualRouter | 2012-09-26 18:43:35 |
| 53 |                  13 | SourceNat      | VirtualRouter | 2012-09-26 18:43:35 |
| 46 |                  13 | StaticNat      | VirtualRouter | 2012-09-26 18:43:35 |
| 54 |                  13 | UserData       | VirtualRouter | 2012-09-26 18:43:35 |
| 47 |                  13 | Vpn            | VirtualRouter | 2012-09-26 18:43:35 |
+----+---------------------+----------------+---------------+---------------------+
9 rows in set (0.00 sec)

mysql>
{noformat}

2, Deploy three VMs on a guest network that is created from the above mentioned network offering.
3. Create a Load balancing rule servicing the VMs on the guest network.
4. Stop All the VMs and UpdateNetwork to the Network offering with services as mentioned below.
Notice that the LB Service is provided by F5 in the new network offering.

{noformat}
mysql> select * from network_offerings where id=18 \G
*************************** 1. row ***************************
                       id: 18
                     name: Network-F5-guest1
                     uuid: 5c7746b8-e29f-4a74-8369-e88647081053
              unique_name: Network-F5-guest1
             display_text: Network-F5-guest1
                  nw_rate: 535
                  mc_rate: 10
             traffic_type: Guest
                     tags: guest1
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2012-09-27 01:13:38
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 0
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
1 row in set (0.00 sec)
{noformat}
{noformat}
mysql> select * from ntwk_offering_service_map where network_offering_id=18;
+----+---------------------+----------------+---------------+---------------------+
| id | network_offering_id | service        | provider      | created             |
+----+---------------------+----------------+---------------+---------------------+
| 81 |                  18 | Dhcp           | VirtualRouter | 2012-09-27 01:13:38 |
| 86 |                  18 | Dns            | VirtualRouter | 2012-09-27 01:13:38 |
| 83 |                  18 | Firewall       | VirtualRouter | 2012-09-27 01:13:38 |
| 85 |                  18 | Lb             | F5BigIp       | 2012-09-27 01:13:38 |
| 80 |                  18 | PortForwarding | VirtualRouter | 2012-09-27 01:13:38 |
| 84 |                  18 | SourceNat      | VirtualRouter | 2012-09-27 01:13:38 |
| 82 |                  18 | StaticNat      | VirtualRouter | 2012-09-27 01:13:38 |
| 79 |                  18 | UserData       | VirtualRouter | 2012-09-27 01:13:38 |
| 87 |                  18 | Vpn            | VirtualRouter | 2012-09-27 01:13:38 |
+----+---------------------+----------------+---------------+---------------------+
9 rows in set (0.00 sec)
{noformat}

5. Observe the Exception mentioned below.

===========
Observations:
===========

==================================
MySQLIntegrityConstraintViolationException:
==================================
{noformat}
2012-10-03 17:36:57,449 DEBUG [db.Transaction.Transaction] (ExternalNetworkMonitor-1:null)
Rolling back the transaction: Time = 4 Name =  -ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:537-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351-FutureTask.runAndReset:178-ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201:165-ScheduledThreadPoolExecutor$ScheduledFutureTask.run:267-ThreadPoolExecutor.runWorker:1110-ThreadPoolExecutor$Worker.run:603-Thread.run:679;
called by -Transaction.rollback:887-Transaction.removeUpTo:830-Transaction.close:649-DatabaseCallback.interceptComplete:71-DatabaseCallback.intercept:36-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry:442-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry:523-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:547-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351
2012-10-03 17:36:57,451 WARN  [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Exception:
javax.persistence.EntityExistsException: Entity already exists:
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1309)
        at com.cloud.utils.db.DatabaseCallback.intercept(DatabaseCallback.java:34)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:442)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:523)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries(ExternalLoadBalancerUsageManagerImpl.java:547)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask(ExternalLoadBalancerUsageManagerImpl.java:403)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run(ExternalLoadBalancerUsageManagerImpl.java:323)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate
entry '3-1-10.223.139.12-6-ExternalLoadBalancer' for key 'account_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1040)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:106)
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1274)
        ... 18 more
2012-10-03 17:36:57,455 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 205 is not configured for external networking, so skipping usage check.
2012-10-03 17:36:57,457 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 206 is not configured for external networking, so skipping usage check.
2012-10-03 17:36:57,468 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Successfully updated stats for account atoms, zone ZONE-ASF, network ID 209, host ID 200-F5BigIpLoadBalancer-10.223.60.3,
public IP: 10.223.139.8

{noformat}

=======
Git Info:
=======

Git Revision: 61e1cf3c44863b5104364ccb27c43a45708f2b57
Git URL: https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git


  was:
===============
Steps to Reproduce:
===============

1. On an Advanced Zone with two physical networks, create a guest network from a network offering
with services as mentioned below

{noformat}
mysql> select * from network_offerings where id=13 \G
*************************** 1. row ***************************
                       id: 13
                     name: Network-SNAT-guest1
                     uuid: 277b7b7a-8aeb-46f8-94e9-e83de34912a8
              unique_name: Network-SNAT-guest1
             display_text: Network-SNAT-guest1
                  nw_rate: 500
                  mc_rate: 10
             traffic_type: Guest
                     tags: guest1
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2012-09-26 18:43:35
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 1
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
1 row in set (0.00 sec)

mysql> select * from ntwk_offering_service_map where network_offering_id=13;
+----+---------------------+----------------+---------------+---------------------+
| id | network_offering_id | service        | provider      | created             |
+----+---------------------+----------------+---------------+---------------------+
| 48 |                  13 | Dhcp           | VirtualRouter | 2012-09-26 18:43:35 |
| 51 |                  13 | Dns            | VirtualRouter | 2012-09-26 18:43:35 |
| 52 |                  13 | Firewall       | VirtualRouter | 2012-09-26 18:43:35 |
| 49 |                  13 | Lb             | VirtualRouter | 2012-09-26 18:43:35 |
| 50 |                  13 | PortForwarding | VirtualRouter | 2012-09-26 18:43:35 |
| 53 |                  13 | SourceNat      | VirtualRouter | 2012-09-26 18:43:35 |
| 46 |                  13 | StaticNat      | VirtualRouter | 2012-09-26 18:43:35 |
| 54 |                  13 | UserData       | VirtualRouter | 2012-09-26 18:43:35 |
| 47 |                  13 | Vpn            | VirtualRouter | 2012-09-26 18:43:35 |
+----+---------------------+----------------+---------------+---------------------+
9 rows in set (0.00 sec)

mysql>
{noformat}

2, Deploy three VMs on a guest network that is created from the above mentioned network offering.
3. Create a Load balancing rule servicing the VMs on the guest network.
4. Stop All the VMs and UpdateNetwork to the Network offering with services as mentioned below.
Notice that the LB Service is provided by F5 in the new network offering.

{noformat}
mysql> select * from network_offerings where id=18 \G
*************************** 1. row ***************************
                       id: 18
                     name: Network-F5-guest1
                     uuid: 5c7746b8-e29f-4a74-8369-e88647081053
              unique_name: Network-F5-guest1
             display_text: Network-F5-guest1
                  nw_rate: 535
                  mc_rate: 10
             traffic_type: Guest
                     tags: guest1
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2012-09-27 01:13:38
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 0
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
1 row in set (0.00 sec)
{noformat}
{noformat}
mysql> select * from ntwk_offering_service_map where network_offering_id=18;
+----+---------------------+----------------+---------------+---------------------+
| id | network_offering_id | service        | provider      | created             |
+----+---------------------+----------------+---------------+---------------------+
| 81 |                  18 | Dhcp           | VirtualRouter | 2012-09-27 01:13:38 |
| 86 |                  18 | Dns            | VirtualRouter | 2012-09-27 01:13:38 |
| 83 |                  18 | Firewall       | VirtualRouter | 2012-09-27 01:13:38 |
| 85 |                  18 | Lb             | F5BigIp       | 2012-09-27 01:13:38 |
| 80 |                  18 | PortForwarding | VirtualRouter | 2012-09-27 01:13:38 |
| 84 |                  18 | SourceNat      | VirtualRouter | 2012-09-27 01:13:38 |
| 82 |                  18 | StaticNat      | VirtualRouter | 2012-09-27 01:13:38 |
| 79 |                  18 | UserData       | VirtualRouter | 2012-09-27 01:13:38 |
| 87 |                  18 | Vpn            | VirtualRouter | 2012-09-27 01:13:38 |
+----+---------------------+----------------+---------------+---------------------+
9 rows in set (0.00 sec)
{noformat}

5. Observe the Exception mentioned below.

===========
Observations:
===========

==================================
MySQLIntegrityConstraintViolationException:
==================================
{noformat}
2012-10-03 17:36:57,449 DEBUG [db.Transaction.Transaction] (ExternalNetworkMonitor-1:null)
Rolling back the transaction: Time = 4 Name =  -ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:537-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351-FutureTask.runAndReset:178-ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201:165-ScheduledThreadPoolExecutor$ScheduledFutureTask.run:267-ThreadPoolExecutor.runWorker:1110-ThreadPoolExecutor$Worker.run:603-Thread.run:679;
called by -Transaction.rollback:887-Transaction.removeUpTo:830-Transaction.close:649-DatabaseCallback.interceptComplete:71-DatabaseCallback.intercept:36-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry:442-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry:523-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:547-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351
2012-10-03 17:36:57,451 WARN  [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Exception:
javax.persistence.EntityExistsException: Entity already exists:
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1309)
        at com.cloud.utils.db.DatabaseCallback.intercept(DatabaseCallback.java:34)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:442)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:523)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries(ExternalLoadBalancerUsageManagerImpl.java:547)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask(ExternalLoadBalancerUsageManagerImpl.java:403)
        at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run(ExternalLoadBalancerUsageManagerImpl.java:323)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate
entry '3-1-10.223.139.12-6-ExternalLoadBalancer' for key 'account_id'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1040)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:106)
        at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1274)
        ... 18 more
2012-10-03 17:36:57,455 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 205 is not configured for external networking, so skipping usage check.
2012-10-03 17:36:57,457 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 206 is not configured for external networking, so skipping usage check.
2012-10-03 17:36:57,468 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Successfully updated stats for account atoms, zone ZONE-ASF, network ID 209, host ID 200-F5BigIpLoadBalancer-10.223.60.3,
public IP: 10.223.139.8

{noformat}

=======
Git Info:
=======

Git Revision: 61e1cf3c44863b5104364ccb27c43a45708f2b57
Git URL: https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git



> UpdateNetwork Operation on a guest network that is currently using Virtual Router for
Lb services to a network offering that uses "F5" for Lb services Fails due to MySQLIntegrityConstraintViolationException.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-252
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-252
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Management Server
>    Affects Versions: pre-4.0.0
>            Reporter: Chandan Purushothama
>            Assignee: Sudhansu Sahu
>             Fix For: 4.4.3, 4.5.1
>
>         Attachments: managementserverlog_mysqldumps.zip
>
>
> ===============
> Steps to Reproduce:
> ===============
> 1. On an Advanced Zone with two physical networks, create a guest network from a network
offering with services as mentioned below
> {noformat}
> mysql> select * from network_offerings where id=13 \G
> *************************** 1. row ***************************
>                        id: 13
>                      name: Network-SNAT-guest1
>                      uuid: 277b7b7a-8aeb-46f8-94e9-e83de34912a8
>               unique_name: Network-SNAT-guest1
>              display_text: Network-SNAT-guest1
>                   nw_rate: 500
>                   mc_rate: 10
>              traffic_type: Guest
>                      tags: guest1
>               system_only: 0
>              specify_vlan: 0
>       service_offering_id: NULL
>             conserve_mode: 0
>                   created: 2012-09-26 18:43:35
>                   removed: NULL
>                   default: 0
>              availability: Optional
>      dedicated_lb_service: 1
> shared_source_nat_service: 0
>                  sort_key: 0
>  redundant_router_service: 0
>                     state: Enabled
>                guest_type: Isolated
>        elastic_ip_service: 0
>        elastic_lb_service: 0
>         specify_ip_ranges: 0
> 1 row in set (0.00 sec)
> {noformat}
> {noformat}
> mysql> select * from ntwk_offering_service_map where network_offering_id=13;
> +----+---------------------+----------------+---------------+---------------------+
> | id | network_offering_id | service        | provider      | created             |
> +----+---------------------+----------------+---------------+---------------------+
> | 48 |                  13 | Dhcp           | VirtualRouter | 2012-09-26 18:43:35 |
> | 51 |                  13 | Dns            | VirtualRouter | 2012-09-26 18:43:35 |
> | 52 |                  13 | Firewall       | VirtualRouter | 2012-09-26 18:43:35 |
> | 49 |                  13 | Lb             | VirtualRouter | 2012-09-26 18:43:35 |
> | 50 |                  13 | PortForwarding | VirtualRouter | 2012-09-26 18:43:35 |
> | 53 |                  13 | SourceNat      | VirtualRouter | 2012-09-26 18:43:35 |
> | 46 |                  13 | StaticNat      | VirtualRouter | 2012-09-26 18:43:35 |
> | 54 |                  13 | UserData       | VirtualRouter | 2012-09-26 18:43:35 |
> | 47 |                  13 | Vpn            | VirtualRouter | 2012-09-26 18:43:35 |
> +----+---------------------+----------------+---------------+---------------------+
> 9 rows in set (0.00 sec)
> mysql>
> {noformat}
> 2, Deploy three VMs on a guest network that is created from the above mentioned network
offering.
> 3. Create a Load balancing rule servicing the VMs on the guest network.
> 4. Stop All the VMs and UpdateNetwork to the Network offering with services as mentioned
below. Notice that the LB Service is provided by F5 in the new network offering.
> {noformat}
> mysql> select * from network_offerings where id=18 \G
> *************************** 1. row ***************************
>                        id: 18
>                      name: Network-F5-guest1
>                      uuid: 5c7746b8-e29f-4a74-8369-e88647081053
>               unique_name: Network-F5-guest1
>              display_text: Network-F5-guest1
>                   nw_rate: 535
>                   mc_rate: 10
>              traffic_type: Guest
>                      tags: guest1
>               system_only: 0
>              specify_vlan: 0
>       service_offering_id: NULL
>             conserve_mode: 0
>                   created: 2012-09-27 01:13:38
>                   removed: NULL
>                   default: 0
>              availability: Optional
>      dedicated_lb_service: 0
> shared_source_nat_service: 0
>                  sort_key: 0
>  redundant_router_service: 0
>                     state: Enabled
>                guest_type: Isolated
>        elastic_ip_service: 0
>        elastic_lb_service: 0
>         specify_ip_ranges: 0
> 1 row in set (0.00 sec)
> {noformat}
> {noformat}
> mysql> select * from ntwk_offering_service_map where network_offering_id=18;
> +----+---------------------+----------------+---------------+---------------------+
> | id | network_offering_id | service        | provider      | created             |
> +----+---------------------+----------------+---------------+---------------------+
> | 81 |                  18 | Dhcp           | VirtualRouter | 2012-09-27 01:13:38 |
> | 86 |                  18 | Dns            | VirtualRouter | 2012-09-27 01:13:38 |
> | 83 |                  18 | Firewall       | VirtualRouter | 2012-09-27 01:13:38 |
> | 85 |                  18 | Lb             | F5BigIp       | 2012-09-27 01:13:38 |
> | 80 |                  18 | PortForwarding | VirtualRouter | 2012-09-27 01:13:38 |
> | 84 |                  18 | SourceNat      | VirtualRouter | 2012-09-27 01:13:38 |
> | 82 |                  18 | StaticNat      | VirtualRouter | 2012-09-27 01:13:38 |
> | 79 |                  18 | UserData       | VirtualRouter | 2012-09-27 01:13:38 |
> | 87 |                  18 | Vpn            | VirtualRouter | 2012-09-27 01:13:38 |
> +----+---------------------+----------------+---------------+---------------------+
> 9 rows in set (0.00 sec)
> {noformat}
> 5. Observe the Exception mentioned below.
> ===========
> Observations:
> ===========
> ==================================
> MySQLIntegrityConstraintViolationException:
> ==================================
> {noformat}
> 2012-10-03 17:36:57,449 DEBUG [db.Transaction.Transaction] (ExternalNetworkMonitor-1:null)
Rolling back the transaction: Time = 4 Name =  -ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:537-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351-FutureTask.runAndReset:178-ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201:165-ScheduledThreadPoolExecutor$ScheduledFutureTask.run:267-ThreadPoolExecutor.runWorker:1110-ThreadPoolExecutor$Worker.run:603-Thread.run:679;
called by -Transaction.rollback:887-Transaction.removeUpTo:830-Transaction.close:649-DatabaseCallback.interceptComplete:71-DatabaseCallback.intercept:36-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry:442-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry:523-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries:547-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask:403-ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run:323-Executors$RunnableAdapter.call:471-FutureTask$Sync.innerRunAndReset:351
> 2012-10-03 17:36:57,451 WARN  [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Exception:
> javax.persistence.EntityExistsException: Entity already exists:
>         at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1309)
>         at com.cloud.utils.db.DatabaseCallback.intercept(DatabaseCallback.java:34)
>         at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:442)
>         at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.createOrUpdateStatsEntry(ExternalLoadBalancerUsageManagerImpl.java:523)
>         at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.manageStatsEntries(ExternalLoadBalancerUsageManagerImpl.java:547)
>         at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.runExternalLoadBalancerNetworkUsageTask(ExternalLoadBalancerUsageManagerImpl.java:403)
>         at com.cloud.network.ExternalLoadBalancerUsageManagerImpl$ExternalLoadBalancerDeviceNetworkUsageTask.run(ExternalLoadBalancerUsageManagerImpl.java:323)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:679)
> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '3-1-10.223.139.12-6-ExternalLoadBalancer' for key 'account_id'
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
>         at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
>         at com.mysql.jdbc.Util.getInstance(Util.java:386)
>         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1040)
>         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
>         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
>         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
>         at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
>         at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
>         at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
>         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
>         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
>         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
>         at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:106)
>         at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1274)
>         ... 18 more
> 2012-10-03 17:36:57,455 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 205 is not configured for external networking, so skipping usage check.
> 2012-10-03 17:36:57,457 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Network 206 is not configured for external networking, so skipping usage check.
> 2012-10-03 17:36:57,468 DEBUG [cloud.network.ExternalLoadBalancerUsageManagerImpl] (ExternalNetworkMonitor-1:null)
Successfully updated stats for account atoms, zone ZONE-ASF, network ID 209, host ID 200-F5BigIpLoadBalancer-10.223.60.3,
public IP: 10.223.139.8
> {noformat}
> =======
> Git Info:
> =======
> Git Revision: 61e1cf3c44863b5104364ccb27c43a45708f2b57
> Git URL: https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message