Description

This article covers a specific scenario in an environment with an increasing number of Access Control Lists (ACL) in version 3.2.9. It provides the root cause and solution for such scenarios.

Symptoms

The queues in RabbitMQ are high, and the contrail-schema status reports 'timeout':

alt

The schema-zk.log indicates the timeout as shown below:

# grep -5 "Zookeeper connection lost" schema-zk.log
04/18/2019 07:17:25 PM [schema]: Connection dropped: socket connection broken
04/18/2019 07:17:25 PM [schema]: Transition to CONNECTING
04/18/2019 07:17:25 PM [schema]: Zookeeper connection lost

Solution

Due to an increasing number of ACLs in the environment, Zookeeper may exhibit a timeout behavior because the schema process can take longer time to complete the transactions.

This issue is fixed in version 3.2.14.

Work-around:

The following work-around can be added in version 3.2.9. This is not applicable to Contrail version 4.x and above.

Note: In a multi-node setup, the changes need to be added to all config nodes.
 

A. Zookeeper timeout value needs to be added in schema-transformer:
Conf file: /etc/contrail/contrail-schema.conf
Section: DEFAULTS
Variable: zk_timeout=4000

alt
 

B. The max session value needs to be increased to 4000000 in the Zookeeper configuration file:
Conf file: /etc/zookeeper/conf/zoo.cfg
Variable: maxSessionTimeout=4000000

alt
 

C. The services need to be restarted to reflect the above changes:

service contrail-schema restart
service contrail-schema status
service zookeeper restart
service zookeeper status


Modification History

2019-09-07: Minor, non-technical edit.