after running stack router interface is deleted by df-l3-agent

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

Bug Description

After running stack with fresh version of the system with a number of
SG related patches there are no ports for default router interface.

No results when running "ip netns"

This line found in log !
Running command (rootwrap daemon): ['ip', 'netns', 'delete', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14']

Here from log file:

Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'ip', '-4', 'addr', 'del', '10.100.100.200/16', 'dev', 'qg-a57958b9-40'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'conntrack', '-D', '-d', '10.100.100.200'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'conntrack', '-D', '-q', '10.100.100.200'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'ip', '-6', 'addr', 'del', '2001:db8::1/64', 'dev', 'qg-a57958b9-40'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'conntrack', '-D', '-d', '2001:db8::1'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'conntrack', '-D', '-q', '2001:db8::1'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'find', '/sys/class/net', '-maxdepth', '1', '-type', 'l', '-printf', '%f '] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Terminating radvd daemon in router device: c6aa2fe0-ebda-4133-80d6-3c569e99bf14 from (pid=4295) disable_radvd /opt/stack/neutron/neutron/agent/l3/router_info.py:446
Unable to access /opt/stack/data/neutron/external/pids/c6aa2fe0-ebda-4133-80d6-3c569e99bf14.pid.radvd from (pid=4295) get_value_from_file /opt/stack/neutron/neutron/agent/linux/utils.py:203
Unable to access /opt/stack/data/neutron/external/pids/c6aa2fe0-ebda-4133-80d6-3c569e99bf14.pid.radvd from (pid=4295) get_value_from_file /opt/stack/neutron/neutron/agent/linux/utils.py:203
No process started for c6aa2fe0-ebda-4133-80d6-3c569e99bf14 from (pid=4295) disable /opt/stack/neutron/neutron/agent/linux/external_process.py:118
radvd disabled for router c6aa2fe0-ebda-4133-80d6-3c569e99bf14 from (pid=4295) disable /opt/stack/neutron/neutron/agent/linux/ra.py:190
Running command (rootwrap daemon): ['ip', 'netns', 'exec', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14', 'find', '/sys/class/net', '-maxdepth', '1', '-type', 'l', '-printf', '%f '] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Running command (rootwrap daemon): ['ip', 'netns', 'delete', 'qrouter-c6aa2fe0-ebda-4133-80d6-3c569e99bf14'] from (pid=4295) execute_rootwrap_daemon /opt/stack/neutron/neutron/agent/linux/utils.py:98
Finished a router update for c6aa2fe0-ebda-4133-80d6-3c569e99bf14 from (pid=4295) _process_router_update /opt/stack/neutron/neutron/agent/l3/agent.py:493

Yuli (stremovsky)
Changed in dragonflow:
importance: Undecided → High
Revision history for this message
Yuli (stremovsky) wrote :

from Duan Kebo:
@yuli, the router namespace is deleted due to l3 agent's rpc call doesn't processed by neutron l3 plugin. Because we have used dragonflow as core plugin, we can't use l3 service plugin. In order to used it, you must use ml2 as core plugin. Dragonflow will support ML2 in the next release.

Changed in dragonflow:
assignee: nobody → Duan Kebo (duankebo)
Revision history for this message
Li Ma (nick-ma-z) wrote :

The explanation is not clear. Why does it delete router port if l3-rpc is not processing. It needs investigating to find out the root cause. If we miss some logics in core plugin, we can add them then.

Revision history for this message
Eran Gampel (eran-gampel) wrote :

I agree with LiMA, it is not clear to me why we delete th erouter port
This bug was introduced with the FIP/DNAT patch and we must fix it for the core plugin.

Lets talk about it on the IRC this must be fixed for Mitaka

Revision history for this message
duankebo (duankebo) wrote :

Please help reviewing the patch:
https://review.openstack.org/#/c/317430/
I enable router scheduler to solve this problem.

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

When l3 agent starts up it will rebuild all routers. First it deletes all namespaces. Second it calls rpc to get routers assigned to it. Third it creates namespaces for routers it get. The problem is that the rpc returns null to l3 agent. So the router is not rebuilt. On receiving a getting router rpc, neutron server will first call router scheduler to assign routers to l3 agent. For router scheduler is not enabled, the routers can't be assigned to l3 agent. Therefor, when the rpc get router assigned to it, it gets a none result.

This problem will be solved by enable the router scheduler.

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

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

commit 0836b716ac98503a552a5f85b65b08e94a14664b
Author: Omer Anson <email address hidden>
Date: Fri May 13 18:31:46 2016 +0300

    Improve l3 agent support

    This patch improves the L3 agent support by:
     * Initialise router_scheduler in the l3 NAT mixin
     * Add l3_agent_scheduler to the supported extensions APIs
     * Use q-l3 service to run df-l3-agent as some checks in
       neutron/devstack are q-l3 specific

    Change-Id: I19b4910049c7cee1ae04e3ca553190a720050a9d
    Closes-Bug: 1574631
    Closes-Bug: 1581946

Changed in dragonflow:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on dragonflow (master)

Change abandoned by duankebo (<email address hidden>) on branch: master
Review: https://review.openstack.org/317430

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.