-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
I think this is because of ping command on Alpine Linux has different options than e.g. on Debian.
# docker container run -it --rm python:3.13.1-alpine3.21 sh
/ # ping -c 1 -s 1072 -W 4 -i 1 -M do -4 192.168.1.1
ping: unrecognized option: M
BusyBox v1.37.0 (2024-12-13 21:18:49 UTC) multi-call binary.
Usage: ping [OPTIONS] HOST
Send ICMP ECHO_REQUESTs to HOST
-4,-6 Force IP or IPv6 name resolution
-c CNT Send only CNT pings
-s SIZE Send SIZE data bytes in packets (default 56)
-i SECS Interval
-A Ping as soon as reply is received
-t TTL Set TTL
-I IFACE/IP Source interface or IP address
-W SEC Seconds to wait for the first response (default 10)
(after all -c CNT packets are sent)
-w SEC Seconds until ping exits (default:infinite)
(can exit earlier with -c CNT)
-q Quiet, only display output at start/finish
-p HEXBYTE Payload pattern
Here is the steps to reproduce the bug:
# docker container run -it --rm python:3.13.1-alpine3.21 sh
/ # python --version
Python 3.13.1
/ # pip --version
pip 24.3.1 from /usr/local/lib/python3.13/site-packages/pip (python 3.13)
/ # apk add gcc python3-dev musl-dev linux-headers
fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/community/x86_64/APKINDEX.tar.gz
(1/22) Installing libgcc (14.2.0-r4)
(2/22) Installing jansson (2.14-r4)
(3/22) Installing libstdc++ (14.2.0-r4)
(4/22) Installing zstd-libs (1.5.6-r2)
(5/22) Installing binutils (2.43.1-r1)
(6/22) Installing libgomp (14.2.0-r4)
(7/22) Installing libatomic (14.2.0-r4)
(8/22) Installing gmp (6.3.0-r2)
(9/22) Installing isl26 (0.26-r1)
(10/22) Installing mpfr4 (4.2.1-r0)
(11/22) Installing mpc1 (1.3.1-r1)
(12/22) Installing gcc (14.2.0-r4)
(13/22) Installing linux-headers (6.6-r1)
(14/22) Installing musl-dev (1.2.5-r8)
(15/22) Installing pkgconf (2.3.0-r0)
(16/22) Installing libexpat (2.6.4-r0)
(17/22) Installing mpdecimal (4.0.0-r0)
(18/22) Installing python3 (3.12.8-r1)
(19/22) Installing python3-pycache-pyc0 (3.12.8-r1)
(20/22) Installing pyc (3.12.8-r1)
(21/22) Installing python3-pyc (3.12.8-r1)
(22/22) Installing python3-dev (3.12.8-r1)
Executing busybox-1.37.0-r9.trigger
OK: 305 MiB in 50 packages
/ # pip install ofunctions.network
Collecting ofunctions.network
Downloading ofunctions.network-1.6.0-py3-none-any.whl.metadata (18 kB)
Collecting requests>=2.22.0 (from ofunctions.network)
Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting command-runner>=1.3.1 (from ofunctions.network)
Downloading command_runner-1.7.0-py3-none-any.whl.metadata (26 kB)
Collecting ofunctions.bisection>=0.2.1 (from ofunctions.network)
Downloading ofunctions.bisection-1.0.0-py3-none-any.whl.metadata (9.0 kB)
Collecting ofunctions.threading>=2.3.0 (from ofunctions.network)
Downloading ofunctions.threading-2.3.0-py3-none-any.whl.metadata (17 kB)
Collecting ofunctions.misc>=1.5.2 (from ofunctions.network)
Downloading ofunctions.misc-1.8.0-py3-none-any.whl.metadata (18 kB)
Collecting psutil>=5.3.0 (from ofunctions.network)
Downloading psutil-6.1.1.tar.gz (508 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting typing>=3.5.0 (from ofunctions.network)
Downloading typing-3.7.4.3.tar.gz (78 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting ipaddress (from ofunctions.network)
Downloading ipaddress-1.0.23-py2.py3-none-any.whl.metadata (923 bytes)
Collecting charset-normalizer<4,>=2 (from requests>=2.22.0->ofunctions.network)
Downloading charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl.metadata (35 kB)
Collecting idna<4,>=2.5 (from requests>=2.22.0->ofunctions.network)
Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.22.0->ofunctions.network)
Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests>=2.22.0->ofunctions.network)
Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)
Downloading ofunctions.network-1.6.0-py3-none-any.whl (15 kB)
Downloading command_runner-1.7.0-py3-none-any.whl (25 kB)
Downloading ofunctions.bisection-1.0.0-py3-none-any.whl (8.0 kB)
Downloading ofunctions.misc-1.8.0-py3-none-any.whl (13 kB)
Downloading ofunctions.threading-2.3.0-py3-none-any.whl (11 kB)
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading ipaddress-1.0.23-py2.py3-none-any.whl (18 kB)
Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)
Downloading charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl (145 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Building wheels for collected packages: psutil, typing
Building wheel for psutil (pyproject.toml) ... done
Created wheel for psutil: filename=psutil-6.1.1-cp36-abi3-linux_x86_64.whl size=283373 sha256=d61e3ac7210bd39db4ae1a86bf5ad080b773196ed92a5d8ef003bbcbcaec391d
Stored in directory: /root/.cache/pip/wheels/ff/fe/eb/59cac25690b1a9600e50b007a414ddabb88c04e3ca5df008d9
Building wheel for typing (pyproject.toml) ... done
Created wheel for typing: filename=typing-3.7.4.3-py3-none-any.whl size=26365 sha256=16cbc3570112ac826109cd4b73dbef1eca6ddde996f868f080f433bf544bbb09
Stored in directory: /root/.cache/pip/wheels/5d/1b/f4/fbdc2bc618f0ba7aec7295d67f62d40e6027a6ce14df9ec3c8
Successfully built psutil typing
Installing collected packages: ipaddress, urllib3, typing, psutil, ofunctions.threading, idna, charset-normalizer, certifi, requests, ofunctions.misc, ofunctions.bisection, command-runner, ofunctions.network
Successfully installed certifi-2024.12.14 charset-normalizer-3.4.1 command-runner-1.7.0 idna-3.10 ipaddress-1.0.23 ofunctions.bisection-1.0.0 ofunctions.misc-1.8.0 ofunctions.network-1.6.0 ofunctions.threading-2.3.0 psutil-6.1.1 requests-2.32.3 typing-3.7.4.3 urllib3-2.3.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
/ # python
Python 3.13.1 (main, Jan 8 2025, 18:18:10) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from ofunctions.network import probe_mtu
>>> print(probe_mtu("192.168.1.1"))
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/ofunctions/network/__init__.py", line 451, in probe_mtu
return bisection.bisect(ping, ping_args, allow_all_expected=True)[1]
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/ofunctions/bisection/__init__.py", line 79, in bisect
raise ValueError("Both sides of the argument list are unexpected results")
ValueError: Both sides of the argument list are unexpected results
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<python-input-1>", line 1, in <module>
print(probe_mtu("192.168.1.1"))
~~~~~~~~~^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/ofunctions/network/__init__.py", line 462, in probe_mtu
raise ValueError(
"Unable to determine MTU via defined method: {}".format(exc)
)
ValueError: Unable to determine MTU via defined method: Both sides of the argument list are unexpected results
It should be noted that the same error ("ValueError: Both sides of the argument list are unexpected results") happens if ping command is not installed. This is confusing.
Metadata
Metadata
Assignees
Labels
No labels