Svc run: Address already in use

Overview

I need to run a VXI-11 protocol in my verdin SOM. The VXI-11 protocol uses RPC port mapping. The application is running in a container.

Problem

I’m getting the below error in my application.

svc run: Address already in use

I tried in different verdin SOM, and I found that in some SOM it is working fine, and able to perform the data communication over the VXI-11 protocol.
When I checked the device OS details of all the SOM I tested, the SOM where the application is running shows

$ uname -a
Linux dev_device_1 5.4.193-5.7.2+git.b60d3160fd04 #1-TorizonCore SMP PREEMPT Fri Dec 23 15:47:24 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

And the SOM which shows the error have

$ uname -a
Linux dev_device_2 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore SMP PREEMPT Wed Mar 29 15:33:40 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

There is difference in the base image used. One is old image released in 2022 and other where the error showing is 2023 version.
But we need the application to be run in 2023 latest image.

Is there anything need to configure on the 2023 base image for fixing this issue?

For running the container I’m using this docker command

docker run -it --privileged --rm \
        --name container_name\
        --net=host \
        --pid=host \
        -v /usr/sbin/:/usr/sbin/ \
        -v /tmp/rpcbind:/root:z \
        -v /etc/systemd/system/multi-user.target.wants/:/etc/systemd/system/multi-user.target.wants/ \
        -v /var/run/:/var/run/ \
        -v /usr/lib/systemd/system/:/usr/lib/systemd/system/ \
        -v /dev/usb_tmc:/dev/usb_tmc \
        -v /dev/ttyGS0:/dev/ttyGS0 \
        -v /dev/ttyUSB0:/dev/ttyUSB0 \
        -v /tmp/.X11-unix:/tmp/.X11-unix \
        -v /var/run/dbus:/var/run/dbus \
        -v /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket \
        -e DISPLAY=:0 \
        -e QT_QPA_PLATFORM=linuxfb \
        -u 0 \
        -w /usr/local/bin \
        image_name:latest \
        bash

Greetings @kkabh,

I’m not very familiar with VXI-11 or your application stack here. But usually the error message Address already in use refers to some IP address and/or port. I guess the first things to check would be what address is this error message referring to? Is this address really already in use? If yes, then what is the other process using it?

Once those are figured out you can determine why this happens in TorizonCore 5 but not TorizonCore 6. It might be possible some address usage is different between the two versions which might explain the difference in behavior here.

Best Regards,
Jeremias

Behalf of @kkabh

Hi @jeremias.tx , VXI11 is working with RPC. The issue arises with RPC port mapping (PORT 111 on both TCP and UDP). Since the same port(111) is used for RPC binding.

Hi @martgin @kkabh

I was able to verify that port 111 is in use on both TC5 and TC6 by both systemd and rpcbind in the host OS:

root@verdin-imx8mm-06827809:~# fuser -v 111/udp
                     USER        PID ACCESS COMMAND
111/udp:             root          1 F.... systemd
                     rpc         565 F.... rpcbind

I’m not sure this is specifically related to TCP/UDP ports.

You seem to be relying on X11 and QT. Do you have the other containers up and running? Are there any container logs you can share?

Drew

Hi @drew.tx ,

No other container is running.

MicrosoftTeams-image (1)

After running the vxi-11 application (inside container) on the old version(2022) .

For the newer version(2023)

Ginto

Hi @martgin

Can you run the “fuser” command under sudo on both tc5 and tc6? I don’t expect yours to look any different than mine but just want to confirm.

Is this a project you can share with me so I can try and run it locally?

Drew