High delay in create_network

Bug #1649548 reported by Yuli
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
DragonFlow
Fix Released
High
Yuli

Bug Description

When the system is busy (for example while running rally tests)
create_network() sometimes can fail due to the timeout issue.

I was checking time from start to an end in create_network() command in:
neutron/plugins/ml2/plugin.py (neutron project, not dragonflow !)

In some cases it can get up to 165 seconds and even more.

Revision history for this message
Yuli (stremovsky) wrote :
Download full text (5.3 KiB)

As it turned out it happens when trying to aquire lock (dragonflow code).

Take a look at the example:

stack@ubuntu200:/opt/stack/logs$ grep req-39b7765e-8606-4259-9ca9-b31e3be89691 q-svc.log | grep "Try to get lock for object"
2016-12-13 11:25:28.774 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 3512258685.
2016-12-13 11:25:30.793 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 3156869888.
2016-12-13 11:25:34.797 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 7173602260.
2016-12-13 11:25:42.807 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 4270305405.
2016-12-13 11:25:52.816 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 2411185474.
2016-12-13 11:26:02.825 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 1907166269.
2016-12-13 11:26:12.867 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 4109395117.
2016-12-13 11:26:22.895 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 3077718418.
2016-12-13 11:26:32.903 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 1294497020.
2016-12-13 11:26:43.090 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 1200496550.
2016-12-13 11:26:53.242 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 1358217871.
2016-12-13 11:27:03.265 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 9795887159.
2016-12-13 11:27:13.269 26433 INFO dragonflow.db.neutron.lockedobjects_db [req-39b7765e-8606-4259-9ca9-b31e3be89691 c_rally_6dff3601_cgAPsIVX -] Try to get lock for object 360e7d0657df4519a53a2a5be32c1aba in session 6886244371.
2016-12...

Read more...

Changed in dragonflow:
importance: Undecided → High
assignee: nobody → Yuli (stremovsky)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to dragonflow (master)

Fix proposed to branch: master
Review: https://review.openstack.org/410160

Changed in dragonflow:
status: New → In Progress
Revision history for this message
Yuli (stremovsky) wrote :

Traceback (most recent call last):
  File "/opt/stack/new/rally/rally/task/runner.py", line 73, in _run_scenario_once
    getattr(scenario_inst, method_name)(**scenario_kwargs)
  File "/opt/stack/new/rally/rally/plugins/openstack/scenarios/neutron/network.py", line 131, in run
    network = self._get_or_create_network(network_create_args)
  File "/opt/stack/new/rally/rally/common/logging.py", line 266, in wrapper
    result = f(*args, **kwargs)
  File "/opt/stack/new/rally/rally/plugins/openstack/scenarios/neutron/utils.py", line 270, in _get_or_create_network
    return self._create_network(network_create_args or {})
  File "/opt/stack/new/rally/rally/task/atomic.py", line 84, in func_atomic_actions
    f = func(self, *args, **kwargs)
  File "/opt/stack/new/rally/rally/plugins/openstack/scenarios/neutron/utils.py", line 64, in _create_network
    {"network": network_create_args})
  File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 772, in create_network
    return self.post(self.networks_path, body=body)
  File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 365, in post
    headers=headers, params=params)
  File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 288, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/local/lib/python2.7/dist-packages/neutronclient/client.py", line 311, in do_request
    return self.request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/neutronclient/client.py", line 299, in request
    resp = super(SessionClient, self).request(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 141, in request
    return self.session.request(url, method, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/positional/__init__.py", line 101, in inner
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 592, in request
    resp = send(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/keystoneauth1/session.py", line 633, in _send_request
    raise exceptions.ConnectTimeout(msg)
ConnectTimeout: Request to http://158.69.75.235:9696/v2.0/networks.json timed out

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to dragonflow (master)

Reviewed: https://review.openstack.org/410160
Committed: https://git.openstack.org/cgit/openstack/dragonflow/commit/?id=f6f3f2d08dcc618fcf0779168e64b5bcc1d33125
Submitter: Jenkins
Branch: master

commit f6f3f2d08dcc618fcf0779168e64b5bcc1d33125
Author: yuli <email address hidden>
Date: Tue Dec 13 12:44:05 2016 +0200

    Fix lock timeout issue

    Closes-bug: #1649548

    Change-Id: Ic99263996b5f0e425e85f262d900d1ea45d5a2db

Changed in dragonflow:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.