Multiple network interfaces

Dear all,

I am currently running Tango 9.2.5 from Debian Repos.
I encountered some issues which might be linked to the fact, that I do have multiple network interfaces at my Tango Host machine.
One of these issues might be this: https://github.com/sardana-org/sardana/issues/1417
I also had problems with Tango-Accesscontrol and Tango-Starter

Before going too much into details about my actual issues, I was wondering if anyone could share with me a proper setup of a multi-network-interface Tango Host?

I already adjusted the /etc/init.d/tango-db file and set the omniORB endpoint to the FQDN of the machine in the correct network.

Then I encountered issues with my host configuration that I made in my /etc/hosts file and I think also with my mysql-server config which does only allow access from 127.0.0.1

Best whishes

Daniel
Hi Daniel,

I really encourage you to upgrade.
All the event issues when having multiple network interfaces should be solved in latest versions of JTango and cppTango.
You can try the brand new 9.3.4 Tango Source Distribution (https://github.com/tango-controls/TangoSourceDistribution/releases)
If you are encountering issues which are not related to events, then I think you will need to give us more details about your issues.

Kind regards,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Edited 3 years ago
Hi Reynald,

thank you very much for your prompt reply.
Indeed I will upgrade to the latest Tango Version to cope with the Event problems.

I will now go a bit more into details about my other problems:

I was playing with the Tango Starter and added the TangoTest DS to the Starter without any error.
However, even after a restart TangoTest DS was automatically started and working, but it was not shown in Astor and I could not stop/start the TangoTest DS via Astor.
I was wondering if this might be linked to the issue with the multiple network interfaces.
Because usually the DS which I also run on my Tango Host machine show a hostname/IP of the external network and the hostname/IP of the actual internal/Tango network only as alternative host and then there are even virtual network interfaces from Docker shown as alternative hosts.

To that end, I wanted to tell Tango to only run on the internal network, so I changed the endpoint in the /etc/init.d/tango-db to
if [ $CANON_HOST = "localhost" ]
then
DAEMON_ARGS="2 -ORBendPoint giop:tcp:$HOST:$PORT"
else
DAEMON_ARGS="2 -ORBendPoint giop:tcp:$HOST:$PORT"
tango_admin –ping-network 40 || return 2
fi


My hostname in the local network in which I use Tango is ampere.sxr.lab but I have the following configuration in my /etc/hosts file
127.0.0.1       localhost
127.0.1.1 ampere.sxr.lab


Due to that the host of all TangoDS which run on the Tango Host machine is:
ampere.sxr.lab (127.0.1.1)

This leads the to problems of clients on other hosts, which want to connect to TangoDS or even the TangoDB since they can of course not access 127.0.1.1.

If I use e.g. always IP address instead of Hostnames I also receive errors, when accessing the TangoDB and I fear this is because I set the bind-address of my mysql-server to 127.0.0.1.

So you see everything is quite a mess and I would appreciate any working configuration of TangoDB/hosts/mysql to run smoothly with multiple network cards.

After all this back and forth I can revert all changes to get jive and Sardana back to work, but not Astor which throws now the following error:
Display is :0
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at admin.astor.tools.MySqlUtil.manageTangoHostProperties(MySqlUtil.java:231)
at admin.astor.AstorUtil.getTangoHostList(AstorUtil.java:714)
at admin.astor.AstorTree.initTangoObjects(AstorTree.java:375)
at admin.astor.AstorTree.initComponent(AstorTree.java:305)
at admin.astor.AstorTree.<init>(AstorTree.java:110)
at admin.astor.Astor.buildTree(Astor.java:181)
at admin.astor.Astor.<init>(Astor.java:107)
at admin.astor.Astor$35.run(Astor.java:1361)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.GNOME.Accessibility.AtkWrapper$6.dispatchEvent(AtkWrapper.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


So astor has now obviously also problems to determine the correct hostname, right?
I checked the Mysql DB and indeed some the devices have now the internal hostname as host and some have the hostname from the external network (how it was all the time before)

Many thanks in advance!

Daniel
Hi Daniel, perhaps this topic will help you https://www.tango-controls.org/community/forum/c/general/installation/accessing-devices-running-on-a-two-server-interfaces/ ?
- Philippe
Hi Philippe,

thanks for the link.
Now the database is working correctly on my internal network

Device: sys/database/2
type_id: IDL:Tango/Device_5:1.0
iiop_version: 1.2
host: ampere.sxr.lab (192.168.1.100)
port: 10000
Server: DataBaseds/2
Server PID: 6033
Exported: true

And I can access it from the Tango Host and all clients.
I changed the /etc/hosts file to
127.0.0.1       localhost
127.0.1.1 ampere

192.168.1.100 ampere.sxr.lab ampere


and changed to tango-db startup to
DAEMON_ARGS="2 -ORBendPoint giop:tcp:$HOST:$PORT -ORBendPointPublish giop:tcp:$HOST:$PORT"


But still I the above mentioned error from astor.
Anso also the Event error from Sardana is still there (but I will upgrade to Tango 9.3.5 as I said earlier)
Edited 3 years ago
Astor now also works, after I have deleted an entry of the tango Starter with the wrong hostname.

After I changed the /etc/init.d/tango-db file it seems, that it does not take these changes into account after a reboot and I manually need to restart the tango-db and tango-accesscontrol services using systemctl.
Can I avoid that step and do I somehow have to convert the init.d script to a system unit file?
I read that the linux is doing it by itself.
Hi,

I just did some further investigations but still have the problem with the start-up of the tango-db and tango-starter.

My current setup is as follow:
/etc/hostname:
ampere

/etc/hosts:
127.0.0.1 localhost
127.0.1.1 ampere
192.168.1.100 ampere.sxr.lab ampere

/etc/tangorc:
TANGO_HOST=ampere.sxr.lab:10000


/etc/init.d/tango-db and /etc/init.d/tango-starter are unchanged. Instead I added to
/etc/omniORB.conf:
endPoint = giop:tcp:ampere.sxr.lab:
endPointPublish = giop:tcp:ampere.sxr.lab:


All of this works pretty well, besides the systemd autostart. If I disable systemd services for tango-db and tango-starter and manually start both services (using systemd) after login, everything is fine.
I actually cannot find any log files in which the problem might be listed.
I guess its related to the name resolution at startup?

Everything related to start-up was working fine before I changed the omniORB.conf file but then DataBaseds was using the wrong NIC as default interface.

Many thanks in advance.

Daniel
I am and more and more puzzled.
I have written systemd serivce units according to the Tango Documentation and still the DB does not start as a service during boot.

As soon as I am logged in I can start the service (or the initial init.d script) and everythings works as expected.

Any idea on what the TangoDB depends?

Best

Daniel
 
Register or login to create to post a reply.