Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsupported calls to ip on Alpine #2504

Closed
rmartin16 opened this issue Nov 9, 2024 · 1 comment
Closed

Unsupported calls to ip on Alpine #2504

rmartin16 opened this issue Nov 9, 2024 · 1 comment

Comments

@rmartin16
Copy link
Contributor

Describe the bug
At startup, the log contains errors for unsupported calls to ip:

❯ docker run --rm -it keepalived
Keepalived[1]: Starting Keepalived v2.3.2 (11/08,2024), git commit v2.3.2-13-g48dbf3d0
Keepalived[1]: Running on Linux 6.9.3-76060903-generic #202405300957~1726766035~22.04~4092a0e SMP PREEMPT_DYNAMIC Thu S (built for Linux 6.6.0)
Keepalived[1]: Command line: '/usr/sbin/keepalived' '--dont-fork' '--log-console' '-f'
Keepalived[1]:               '/etc/keepalived/keepalived.conf'
Keepalived[1]: Configuration file /etc/keepalived/keepalived.conf
Keepalived[1]: NOTICE: setting config option max_auto_priority should result in better keepalived performance
Keepalived[1]: Starting VRRP child process, pid=7
BusyBox v1.36.1 (2024-06-10 07:11:47 UTC) multi-call binary.

Usage: ip [OPTIONS] address|route|link|tunnel|neigh|rule [ARGS]

OPTIONS := -f[amily] inet|inet6|link | -o[neline]

ip addr add|del IFADDR dev IFACE | show|flush [dev IFACE] [to PREFIX]
ip route list|flush|add|del|change|append|replace|test ROUTE
ip link set IFACE [up|down] [arp on|off] [multicast on|off]
	[promisc on|off] [mtu NUM] [name NAME] [qlen NUM] [address MAC]
	[master IFACE | nomaster] [netns PID]
ip tunnel add|change|del|show [NAME]
	[mode ipip|gre|sit] [remote ADDR] [local ADDR] [ttl TTL]
ip neigh show|flush [to PREFIX] [dev DEV] [nud STATE]
ip rule [list] | add|del SELECTOR ACTION

Keepalived[1]: Startup complete

My guess is this is the calls for ip netns.

To Reproduce
Any steps necessary to reproduce the behaviour:

git clone https://github.com/acassen/keepalived.git && \
    cd keepalived && \
    ./autogen.sh && \
    ./configure && \
    make && \
    make docker

Note that #2503 needs to be addressed to avoid seg faulting.

Expected behavior
A clear and concise description of what you expected to happen.

Keepalived version

2.3.2

Distro (please complete the following information):

  • Name: Alpine
  • Version: 3.20
  • Architecture: aarch64 or amd64

Details of any containerisation or hosted service (e.g. AWS)
Just simple docker daemon.

Configuration file:

<default config for container>

Notify and track scripts

n/a

System Log entries

n/a

Did keepalived coredump?

n/a

Additional context
I don't know if this is actually problematic....but FYI nonetheless...

@pqarmitage
Copy link
Collaborator

Many thanks for reporting this. If ip is the real iproute2 utility, keepalived needs to know which version it is, in order to know where its configuration files are, so it executes popen("ip -V, "re"). The ip utility returns it's version on stdout. It appears that the BusyBox version of ip does not understand the -V option and prints its output on stderr.

Commit 99d2ea9 now redirect stderr to stdout in the popen call, and also explicitly checks for BusyBox.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants