EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  2025  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  2025 
<== Date ==> <== Thread ==>

Subject: Re: PVA and Docker on Mac
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: Juan F. Esteban Müller <JuanF.EstebanMuller at ess.eu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 27 Jul 2022 08:19:51 -0700
On 7/27/22 02:25, Juan F. Esteban Müller via Tech-talk wrote:
Hello all,

I am trying to run a PVA client on Docker, but when I run the image on macOS I can’t connect to any IOC, while from Linux it works fine. There are some differences in how the Docker network interface works on Linux and macOS, but I couldn’t find a way to solve this issue.

Container networking remains a persistent problem...

Thinks to check, *both* in the container and in the host.

* Network settings: "ifconfig" or "ip link && ip addr" or whatever apple provides

Make sure that both ends have the correct broadcast address.

* Firewall settings:  "iptables-save" and/or "nft list all" or whatever apple provides


Things to try from the client end:

* Connect directly to the TCP port (5075 or whatever softIocPVA prints)

eg. if available "telnet <hostip> 5075" is easy.  "netcat" / "nc" can also do this.
Or a short python script.

* Setup UDP unicast search: EPICS_PVA_ADDR_LIST=<hostip>


If you have PVXS installed, then pvxvct may be helpful.
(although no more so than eg. wireshark)

https://mdavidsaver.github.io/pvxs/cli.html#troubleshooting-with-virtual-cable-tester


The issue is limited to PV Access, CA works fine.

In case someone wants to reproduce the issue, I am attaching a db file and a Dockerfile and these are the steps:

 1. Run the IOC on the host machine: $ softIocPVA -d count.db
 2. Build the Docker image: $ docker build -t pvatest .
 3. Run the Docker image: $ docker run pvatest

On Linux you’ll get something like this:

$ docker run pvatest

../iocinf.cpp: Parsing 'EPICS_CA_ADDR_LIST'

Bad internet address or host name: 'host.docker.internal'

counter89

counter 2022-07-27 09:05:26.71489

While on macOS this:

% docker run pvatest

counter90

counter Timeout

The first line from the output is the cagetcommand, the second one is pvget.

Best regards,

Juan



References:
PVA and Docker on Mac Juan F. Esteban Müller via Tech-talk

Navigate by Date:
Prev: Re: PINI field not working with modbus Mark Rivers via Tech-talk
Next: Re: Retrieving record name from aSub input/output fields Michael Davidsaver via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  2025 
Navigate by Thread:
Prev: PVA and Docker on Mac Juan F. Esteban Müller via Tech-talk
Next: cagateway question Silver via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  2025 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·