Exa-Networks / exabgp

The BGP swiss army knife of networking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

exabgpcli is not working on version 4.2.21 - CentOs 7

waleedseng opened this issue · comments

** Bug Report **

Describe the bug

I'm using Exabgp version 4.2.21
I have problem with exabgpcli. It times out and not giving output no matter what command I use

To Reproduce

After running exabgp exabgp exabgp-LS.conf -d

[root@walmo-dhcp exabgp]# exabgp exabgp-LS.conf -d
05:38:54 | 21624  | welcome       | Thank you for using ExaBGP
05:38:54 | 21624  | version       | 4.2.21
05:38:54 | 21624  | interpreter   | 3.6.8 (default, Nov 16 2020, 16:55:22)  [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
05:38:54 | 21624  | os            | Linux walmo-dhcp 3.10.0-1160.83.1.el7.x86_64 #1 SMP Wed Jan 25 16:41:43 UTC 2023 x86_64
05:38:54 | 21624  | installation  | /usr/local
05:38:54 | 21624  | cli control   | named pipes for the cli are:
05:38:54 | 21624  | cli control   | to send commands  /run/exabgp/exabgp.in
05:38:54 | 21624  | cli control   | to read responses /run/exabgp/exabgp.out
05:38:54 | 21624  | configuration | performing reload of exabgp 4.2.21
05:38:54 | 21624  | configuration | > neighbor         | '172.30.171.62'
05:38:54 | 21624  | configuration | . local-address    | '172.24.77.199'
05:38:54 | 21624  | configuration | . local-as         | '100'
05:38:54 | 21624  | configuration | . peer-as          | '1'
05:38:54 | 21624  | configuration | > family           | 'bgpls'
05:38:54 | 21624  | configuration | < family           |
05:38:54 | 21624  | configuration | < neighbor         |
05:38:54 | 21624  | reactor       | new peer: neighbor 172.30.171.62 local-ip 172.24.77.199 local-as 100 peer-as 1 router-id 172.24.77.199 family-allowed in-open
05:38:54 | 21624  | reactor       | loaded new configuration successfully
05:38:54 | 21624  | process       | forked process api-internal-cli-f3610c82
05:38:54 | 21624  | reactor       | initialising connection to peer-1
05:38:54 | 21624  | outgoing-1    | attempting connection to 172.30.171.62:179

I try to run some exabgpcli commands like the following but they fails
Sometimes it succeed, but I have to try many times to get a successful one.

[root@walmo-dhcp etc]# exabgpcli version

warning: no end of command message received
warning: normal if exabgp.api.ack is set to false otherwise some data may get stuck on the pipe
warning: otherwise it may cause exabgp reactor to block
[root@walmo-dhcp etc]#

even exabgpcli help doesn't work.

[root@walmo-dhcp etc]# exabgpcli help

warning: no end of command message received
warning: normal if exabgp.api.ack is set to false otherwise some data may get stuck on the pipe
warning: otherwise it may cause exabgp reactor to block
[root@walmo-dhcp etc]#

Additional logs:

Sometimes it works like this time

exabgp 4.2.21
[root@walmo-dhcp etc]#
05:46:34 | 21643  | process       | command from process api-internal-cli-fd93167c : version
05:46:34 | 21643  | process       | responding to api-internal-cli-fd93167c : done

** when it fails, no debugging message are shown**

I even tried to run exabgp with setting these env values, but the result is the same

[root@walmo-dhcp exabgp]# env exabgp.api.ack=false exabgp.api.respawn=false exabgp.api.encoder=text exabgp -d exabgp-LS.conf

> env exabgp.api.ack=false exabgp.api.respawn=false exabgp.api.encoder=text exabgp -d exabgp-LS.conf

exabgp.api.ack=false is probably required as the program called from your configuration file is written without support for ACK, but the CLI requires the option to be true.

To resolve this, I would need to make the API setting per API endpoint, which is possible but not implemented. So it works as designed, but the design needs changing.