Interoperability test: ION does not launch properly on some platforms
When working on #116 (closed), I discovered that ION would not launch properly anymore on my system. On the CI systems it obviously works.
To reproduce this, I built a Docker image using the following Dockerfile
(tried several ION versions doen to 3.7.1
):
FROM buildpack-deps:bullseye
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
ARG ION_FILE=ion-open-source-4.1.2.tar.gz
RUN mkdir /ion_build && cd /ion_build && \
wget -O "$ION_FILE" "https://sourceforge.net/projects/ion-dtn/files/$ION_FILE/download?use_mirror=netcologne&ts=$(date +%s)" && \
tar -xvf "$ION_FILE" && \
rm "$ION_FILE"
RUN cd /ion_build/ion-open-source* && \
CPPFLAGS=-Wno-maybe-uninitialized ./configure && \
make -j4 && \
make install && \
ldconfig && \
cd / && \
rm -r /ion_build
I built the image, launched the container, and tried to start ION using the RC file provided with uD3TN:
$ docker build -f Dockerfile.ion -t ion:4.1.2 .
$ docker run --rm -it -v "$(pwd):/ud3tn" ion:4.1.2 bash
# cd /ud3tn
# ionstart -I test/ion_interoperability/minimal_forwarding_test/ionstart.rc
ION will seemingly launch and reports no errors:
Now running startup script using test/ion_interoperability/minimal_forwarding_test/ionstart.rc
There were 0 warning(s) and 0 error(s) in your config file.
Sanity check of file "test/ion_interoperability/minimal_forwarding_test/ionstart.rc" has been cleared.
Running ionadmin using input lines 2 through 16
[i] admin pgm using default SDR parms.
wmKey: 0
wmSize: 5000000
wmAddress: 0
sdrName: ''
sdrWmSize: 0
configFlags: 13
heapWords: 250000
heapKey: -1
logSize: 0
logKey: -1
pathName: '/tmp'
Stopping ionadmin.
Running ionsecadmin using input lines 20 through 20
Stopping ionsecadmin.
Running bpadmin using input lines 24 through 45
Stopping bpadmin.
Running ipnadmin using input lines 49 through 49
Stopping ipnadmin.
Allowing admin programs to complete...
ION startup script completed.
You may find that the ION node has not started. If this is the case,
some errors may have been reported to the console.
Further errors may be found in the file ion.log
ion.log
:
[2023/02/16-10:50:15] [i] This node deploys bundle protocol version 7.
[2023/02/16-10:50:15] [i] Bundle security is enabled.
However, tcpcli
is not listening:
# ss -tupln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
...and it seems the admin utilities are still running:
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 3984 3312 pts/0 Ss 11:41 0:00 bash
root 16 87.6 0.0 12772 144 pts/0 R 11:41 1:20 ionadmin iontemprun
root 17 87.6 0.0 12772 148 pts/0 R 11:41 1:20 ionadmin iontemprun
root 34 87.0 0.0 13264 192 pts/0 R 11:41 1:18 bpadmin iontemprun
root 35 85.3 0.0 13264 192 pts/0 R 11:41 1:16 bpadmin iontemprun
root 36 87.0 0.0 13264 192 pts/0 R 11:41 1:18 bpadmin iontemprun
root 37 85.6 0.0 13264 192 pts/0 R 11:41 1:17 bpadmin iontemprun
root 38 87.1 0.0 13264 192 pts/0 R 11:41 1:18 bpadmin iontemprun
root 39 86.0 0.0 13264 192 pts/0 R 11:41 1:17 bpadmin iontemprun
root 40 87.4 0.0 13264 192 pts/0 R 11:41 1:18 bpadmin iontemprun
root 57 0.0 0.0 7640 2732 pts/0 R+ 11:43 0:00 ps aux
Note also the %CPU
column, they are eating a lot of CPU.