If there is a /var/lib/neutron/ha_confs/<router-id>.pid then l3 agent fails to spawn a keepalived process for that router

Solution In Progress - Updated -

Issue

  • keepalived process fails to get created

  • When the L3 agent starts it tries to build keepalived processes for each HA router. The problem we are seeing is that if the .pid file for the previous keepalived process (located in /var/lib/neutron/ha_confs/.pid) already exists then the L3 agent fails to spawn a keepalived process for that router.

For example, the last router id in the list below:

SandboxB:[root@ttbossbxbmgmt0001 ha_confs]# cat a14e9f90-b5ee-420b-b89b-76c18b0a3a0a.pid
4315
SandboxB:[root@ttbossbxbmgmt0001 ha_confs]# cat /proc/4315/cmdline
/usr/bin/python/usr/bin/keystone-all
pid 4315 is already in use to keepalived for this router never gets spawned: 
ps --ppid 1 -f|grep -- keepalived.-P| grep  a14e9f90-b5ee-420b-b89b-76c18b0a3a0a
  • get's nothing returned

  • The problem is that if the .pid file for the previous keepalived process (located in /var/lib/neutron/ha_confs/.pid) already exists then the L3 agent fails to spawn a keepalived process for that router. "

  • If the process ID in the pid file already exists then the keepalived process does not get spawned.

  • The .pid file contains process id 4315 and that pid has already been taken by /usr/bin/python/usr/bin/keystone-all. So, the keepalived process never gets created for this router.

Environment

  • Red Hat OpenStack 7.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content