Or better unit tests in nova would help. :)

Fix just got approved, so it'll be going in shortly.

- Chris

On May 17, 2012, at 10:24 AM, Dan Wendlandt wrote:

> Hi Gary, 
> 
> Thanks for reporting this.  
> 
> After some digging, the bug seems to have been introduced by an error in a 
> blanket changeset to switch Nova from using json to jasonutils.  During that 
> translation, a "return" statement was dropped, meaning the serializer always 
> returned Null regardless of what data was pushed in.  See: 
> https://github.com/openstack/nova/commit/ba76b954e69de56f76f9db5cade1780bc351be67#L5L42
> 
> Another bug where having Quantum be part of the gating process would have 
> helped... so we really need to find resources to help get that work complete. 
>  
> 
> Patch here is trivial, so I'll push it and hopefully it can get reviewed 
> quickly by the Nova core team.
> 
> Dan
> 
> 
> 
> 
> On Thu, May 17, 2012 at 12:24 AM, Gary Kotton <gkot...@redhat.com> wrote:
> Hi,
> Running devstack this morning the following happens:
> 
> + /opt/stack/nova/bin/nova-manage network create private 10.0.0.0/24 1 256
> 2012-05-17 03:22:05 WARNING nova.network.quantum.manager 
> [req-5458d926-54d1-4877-9c46-d04035742eaf None None] QuantumManager     does 
> not use 'bridge' parameter.
> 2012-05-17 03:22:05 WARNING nova.network.quantum.manager 
> [req-5458d926-54d1-4877-9c46-d04035742eaf None None] QuantumManager     does 
> not use 'bridge_interface' parameter.
> 2012-05-17 03:22:05 DEBUG nova.network.quantum.quantum_connection 
> [req-5458d926-54d1-4877-9c46-d04035742eaf None None] Quantum Client Request: 
> POST /v1.1/tenants/default/networks.json from (pid=3826) do_request 
> /opt/stack/nova/nova/network/quantum/client.py:178
> 2012-05-17 03:22:05 DEBUG nova.network.quantum.quantum_connection 
> [req-5458d926-54d1-4877-9c46-d04035742eaf None None] Quantum Client Reply 
> (code = 400) :
>  {"Error": {"message": "The server could not comply with the request since it 
> is either malformed or otherwise incorrect.", "code": 400}} from (pid=3826) 
> do_request /opt/stack/nova/nova/network/quantum/client.py:189
> Command failed, please check log for more info
> 2012-05-17 03:22:05 CRITICAL nova [req-5458d926-54d1-4877-9c46-d04035742eaf 
> None None] Server 400 error: {"Error": {"message": "The server could not 
> comply with the request since it is either malformed or otherwise 
> incorrect.", "code": 400}}
> 2012-05-17 03:22:05 TRACE nova Traceback (most recent call last):
> 2012-05-17 03:22:05 TRACE nova   File "/opt/stack/nova/bin/nova-manage", line 
> 1755, in <module>
> 2012-05-17 03:22:05 TRACE nova     main()
> 2012-05-17 03:22:05 TRACE nova   File "/opt/stack/nova/bin/nova-manage", line 
> 1742, in main
> 2012-05-17 03:22:05 TRACE nova     fn(*fn_args, **fn_kwargs)
> 2012-05-17 03:22:05 TRACE nova   File "/opt/stack/nova/bin/nova-manage", line 
> 817, in create
> 2012-05-17 03:22:05 TRACE nova     fixed_cidr=fixed_cidr)
> 2012-05-17 03:22:05 TRACE nova   File 
> "/opt/stack/nova/nova/network/quantum/manager.py", line 232, in 
> create_networks
> 2012-05-17 03:22:05 TRACE nova     nova_id=nova_id)
> 2012-05-17 03:22:05 TRACE nova   File 
> "/opt/stack/nova/nova/network/quantum/quantum_connection.py", line 67, in 
> create_network
> 2012-05-17 03:22:05 TRACE nova     resdict = self.client.create_network(data, 
> tenant=tenant_id)
> 2012-05-17 03:22:05 TRACE nova   File 
> "/opt/stack/nova/nova/network/quantum/client.py", line 82, in with_params
> 2012-05-17 03:22:05 TRACE nova     ret = self.func(instance, *args, **kwargs)
> 2012-05-17 03:22:05 TRACE nova   File 
> "/opt/stack/nova/nova/network/quantum/client.py", line 250, in create_network
> 2012-05-17 03:22:05 TRACE nova     return self.do_request("POST", 
> self.networks_path, body=body)
> 2012-05-17 03:22:05 TRACE nova   File 
> "/opt/stack/nova/nova/network/quantum/client.py", line 204, in do_request
> 2012-05-17 03:22:05 TRACE nova     % locals())
> 2012-05-17 03:22:05 TRACE nova QuantumServerException: Server 400 error: 
> {"Error": {"message": "The server could not comply with the request since it 
> is either malformed or otherwise incorrect.", "code": 400}}
> 2012-05-17 03:22:05 TRACE nova 
> ++ failed
> ++ local r=1
> ++ set +o xtrace
> 
> Thanks
> Gary
> 
> 
> On 05/17/2012 12:07 AM, Dan Wendlandt wrote:
>> 
>> 
>> 
>> On Wed, May 16, 2012 at 2:01 PM, Sumit Naiksatam (snaiksat) 
>> <snaik...@cisco.com> wrote:
>> The interesting data point here is that this only happens to the default 
>> network created when the installation is done via DevStack. For all network 
>> created subsequently I am not seeing this issue. I earlier thought that this 
>> might have something to do with the exercises script getting executed and 
>> possibly leaving a residue. However, in spite of not running the exercises 
>> script I am still seeing this issue. It seems that for some reason, the 
>> initialize_gateway() was getting called only when a new VM was being 
>> created. But here it seems to be getting called before that (thus leading to 
>> the creation of the bridge and the gateway devices), not sure why. I am just 
>> trying to figure out how I can test the fix with respect to the devstack 
>> setup (since this happens only on installation)…
>> 
>> 
>> Your explanation makes sense.  I think there was a recent comment to 
>> automatically initialize all networks when nova-network is started, in case 
>> nova-network was started on a new host (e.g., in an HA configuration) or 
>> after a host reboot.  Since devstack creates the network using nova-manage 
>> before starting nova-network, this would trigger the behavior your describe. 
>>  For more info, see: 
>> https://github.com/openstack/nova/commit/30c8293ea7d4c9464e0139fb488e202fd0947f52
>> 
>> I suspect you should hit this every time you re-run stack.sh, no?  
>> 
>> 
>> 
>>  
>> 
>>  
>> From: Dan Wendlandt [mailto:d...@nicira.com] 
>> Sent: Wednesday, May 16, 2012 7:55 AM
>> To: gkot...@redhat.com
>> Cc: Sumit Naiksatam (snaiksat); netstack@lists.launchpad.net
>> Subject: Re: [Netstack] Fwd: [Openstack] [devstack/quantum] Configuration 
>> issue
>> 
>>  
>>  
>> On Wed, May 16, 2012 at 1:43 AM, Gary Kotton <gkot...@redhat.com> wrote:
>> 
>> Thanks!
>> As far as I recall, and I may certain be wrong here, but in the past I did 
>> not see the GW created until the first VM was deployed. Now I am seeing the 
>> GW created when the various services are started.
>> 
>>  
>> I have noticed this as well.  I'm not aware of any changes to QuantumManager 
>> that had this affect, though its possible someone pushed a change that I 
>> didn't notice.  I primarily use the OVS interface-driver and didn't notice 
>> any issues, so I suspect Sumit is correct that we can at least work around 
>> this with a change to the LB interface-driver (even though the change that 
>> caused the issue was likely somewhere else).  
>> 
>>  
>> This is a good example of why we need Quantum integrated into devstack 
>> commit-gating, as it will catch this type of complex integration issues.  
>> Anyone have cycles to help push on this?  I'm unlikely to make much progress 
>> on it in the next week or two due to the F-1 release.  
>> 
>>  
>> Dan
>> 
>>  
>>  
>>  
>> Thanks
>> Gary
>> 
>> 
>> 
>> On 05/16/2012 10:54 AM, Sumit Naiksatam (snaiksat) wrote:
>> 
>> This is probably not a devstack issue. The problem is with the LB gateway 
>> driver wherein the IP address is trying to be set on a bridge device which 
>> already has an IP address. The check for an existing bridge is being 
>> performed, but the IP address is being set outside that check. Ideally, this 
>> code should not have been invoked if the gateway was already set. Something 
>> seems to have changed in the QuantumManager as result of which this code is 
>> being invoked again. At any rate, I will fix the LB gateway driver, and we 
>> will not see this.
>> 
>>  
>> Thanks,
>> 
>> ~Sumit.
>> 
>>  
>> From: netstack-bounces+snaiksat=cisco....@lists.launchpad.net 
>> [mailto:netstack-bounces+snaiksat=cisco....@lists.launchpad.net] On Behalf 
>> Of Gary Kotton
>> Sent: Monday, May 14, 2012 11:19 PM
>> To: <netstack@lists.launchpad.net>
>> Subject: [Netstack] Fwd: [Openstack] [devstack/quantum] Configuration issue
>> 
>>  
>> 
>> 
>> -------- Original Message --------
>> 
>> Subject:
>> 
>> [Openstack] [devstack/quantum] Configuration issue
>> 
>> Date:
>> 
>> Tue, 15 May 2012 09:00:52 +0300
>> 
>> From:
>> 
>> Gary Kotton <gkot...@redhat.com>
>> 
>> Reply-To:
>> 
>> gkot...@redhat.com
>> 
>> Organization:
>> 
>> Red Hat
>> 
>> To:
>> 
>> openst...@lists.launchpad.net
>> 
>>  
>> Hi,
>> This morning I encountered a problem (which did not happen a few days 
>> ago :)). When devstack is launched, with quantum configured, the gateway 
>> and bridge devices are created. This causes problems with quantum.
>>  
>> For example when devstack is up and running prior to deploying an 
>> instance we have:
>>  
>> brq744ec2f4-c0 Link encap:Ethernet  HWaddr fa:16:3e:03:a6:55
>>           inet addr:10.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
>>           UP BROADCAST MULTICAST  MTU:1500  Metric:1
>>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>           collisions:0 txqueuelen:0
>>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>  
>> gw-744ec2f4-c0 Link encap:Ethernet  HWaddr fa:16:3e:03:a6:55
>>           inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
>>           UP BROADCAST MULTICAST  MTU:1500  Metric:1
>>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>           collisions:0 txqueuelen:500
>>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>  
>> When an instance is deployed the following happens:
>>  
>> 2012-05-15 01:59:18 DEBUG nova.utils 
>> [req-4d50ed10-46e1-406c-9074-dc45da860365 
>> df07eec326434b25800f3ebc17202fb3 2cafe0be4d7740098a89be39ffd1b72e] 
>> Running cmd (subprocess): sudo /usr/local/bin/nova-rootwrap ip address 
>> add 10.0.0.1/24 dev brq744ec2f4-c0 from (pid=4234) execute 
>> /opt/stack/nova/nova/utils.py:178
>> 2012-05-15 01:59:18 DEBUG nova.utils 
>> [req-4d50ed10-46e1-406c-9074-dc45da860365 
>> df07eec326434b25800f3ebc17202fb3 2cafe0be4d7740098a89be39ffd1b72e] 
>> Result was 254 from (pid=4234) execute /opt/stack/nova/nova/utils.py:194
>> 2012-05-15 01:59:18 ERROR nova.rpc.amqp 
>> [req-4d50ed10-46e1-406c-9074-dc45da860365 
>> df07eec326434b25800f3ebc17202fb3 2cafe0be4d7740098a89be39ffd1b72e] 
>> Exception during message handling
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp Traceback (most recent call last):
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/rpc/amqp.py", line 263, in _process_data
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     rval = 
>> node_func(context=ctxt, **node_args)
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/network/quantum/manager.py", line 390, in 
>> allocate_for_instance
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     network, vif_rec, 
>> network['net_tenant_id'])
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/utils.py", line 880, in inner
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     retval = f(*args, **kwargs)
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/network/quantum/manager.py", line 501, in enable_dhcp
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     
>> self.l3driver.initialize_gateway(network_ref)
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/network/l3.py", line 98, in initialize_gateway
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     
>> gateway=(network_ref['gateway'] is not None))
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/network/linux_net.py", line 900, in plug
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     return 
>> _get_interface_driver().plug(network, mac_address, gateway)
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/network/linux_net.py", line 1160, in plug
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     run_as_root=True)
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp   File 
>> "/opt/stack/nova/nova/utils.py", line 201, in execute
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp     cmd=' '.join(cmd))
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp ProcessExecutionError: 
>> Unexpected error while running command.
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp Command: sudo 
>> /usr/local/bin/nova-rootwrap ip address add 10.0.0.1/24 dev brq744ec2f4-c0
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp Exit code: 254
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp Stdout: ''
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp Stderr: 'RTNETLINK answers: File 
>> exists\n'
>> 2012-05-15 01:59:18 TRACE nova.rpc.amqp
>> 2012-05-15 01:59:18 ERROR nova.rpc.common 
>> [req-4d50ed10-46e1-406c-9074-dc45da860365 
>> df07eec326434b25800f3ebc17202fb3 2cafe0be4d7740098a89be39ffd1b72e] 
>> Returning exception Unexpected error while running command.
>> Command: sudo /usr/local/bin/nova-rootwrap ip address add 10.0.0.1/24 
>> dev brq744ec2f4-c0
>> Exit code: 254
>> Stdout: ''
>> Stderr: 'RTNETLINK answers: File exists\n' to caller
>> 2012-05-15 01:59:18 ERROR nova.rpc.common 
>> [req-4d50ed10-46e1-406c-9074-dc45da860365 
>> df07eec326434b25800f3ebc17202fb3 2cafe0be4d7740098a89be39ffd1b72e] 
>> ['Traceback (most recent call last):\n', '  File 
>> "/opt/stack/nova/nova/rpc/amqp.py", line 263, in _process_data\n    rval 
>> = node_func(context=ctxt, **node_args)\n', '  File 
>> "/opt/stack/nova/nova/network/quantum/manager.py", line 390, in 
>> allocate_for_instance\n    network, vif_rec, 
>> network[\'net_tenant_id\'])\n', '  File "/opt/stack/nova/nova/utils.py", 
>> line 880, in inner\n    retval = f(*args, **kwargs)\n', '  File 
>> "/opt/stack/nova/nova/network/quantum/manager.py", line 501, in 
>> enable_dhcp\n    self.l3driver.initialize_gateway(network_ref)\n', '  
>> File "/opt/stack/nova/nova/network/l3.py", line 98, in 
>> initialize_gateway\n    gateway=(network_ref[\'gateway\'] is not 
>> None))\n', '  File "/opt/stack/nova/nova/network/linux_net.py", line 
>> 900, in plug\n    return _get_interface_driver().plug(network, 
>> mac_address, gateway)\n', '  File 
>> "/opt/stack/nova/nova/network/linux_net.py", line 1160, in plug\n    
>> run_as_root=True)\n', '  File "/opt/stack/nova/nova/utils.py", line 201, 
>> in execute\n    cmd=\' \'.join(cmd))\n', "ProcessExecutionError: 
>> Unexpected error while running command.\nCommand: sudo 
>> /usr/local/bin/nova-rootwrap ip address add 10.0.0.1/24 dev 
>> brq744ec2f4-c0\nExit code: 254\nStdout: ''\nStderr: 'RTNETLINK answers: 
>> File exists\\n'\n"]
>>  
>>  
>> My guess is that this can be solved with the nova configuration. Sadly I 
>> am not too familiar with these. Any help would be great.
>> Thanks
>> Gary
>>  
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : openst...@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>  
>> 
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to     : netstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~netstack
>> More help   : https://help.launchpad.net/ListHelp
>> 
>> 
>> 
>>  
>> -- 
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Dan Wendlandt 
>> 
>> Nicira, Inc: www.nicira.com
>> 
>> twitter: danwendlandt
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 
>>  
>> 
>> 
>> 
>> -- 
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Dan Wendlandt 
>> Nicira, Inc: www.nicira.com
>> twitter: danwendlandt
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 
> 
> 
> 
> 
> -- 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt 
> Nicira, Inc: www.nicira.com
> twitter: danwendlandt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openst...@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp

-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to