RE: the earthworm forum

48 views
Skip to first unread message

Larry Baker

unread,
Jan 3, 2023, 2:47:13 PM1/3/23
to Larry Baker, 'jona...@ntu.edu.sg' via Earthworm Community Forum
your latest response: You can use telnet, ping and traceroute to probe server ports.  You don't have to rely on the Earthworm software only.  For example, if the server that export_generic is trying to reach uses port 16002 at IP address 192.168.0.2, can you telnet 192.168.0.2 16002?  If the server is listening, telnet will connect, even though it will not be able to communicate.  If that fails, can you ping the server IP address?  I.e., ping 192.168.0.2.  If that fails, you have network configuration errors.  You can use traceroute to watch what the ping probe is doing.  I.e., traceroute 192.168.0.2.  Assuming you had no need to change port numbers, the fact that export_generic says it cannot connect is a pretty strong indication the network is not quite configured properly on one or more of your systems.  Have you examined the firewall rules on your systems?  If NFS is involved, make sure the server export rules allow the mounts you need.  Use showmount -e <server-IP-address> to show the export rules for the NFS server at <server-IP-address>.

So I am able to ping and ssh to the device on either network, during what I will refer to as the pub-blockout. The network was switched over to the private network. I was still able to ssh from server to all connected devices. That's how I was able to make the network changes on each device... The Network Attached storage(NAS) device is unix based and runs debian squeeze. I ran the netstat -a option on both networks so you could also have a comparison(please see attached file) the netstat_uwi-Net is the public network. Also once the pub-network was restored and the ip addresses were reverted everything started to work again i.e writing to the database remotely resumed.. Secondly I also have the same situation on a new server that I just set up. however the database is local, the buffer that I'm using to write from is empty. The getmenu command says nothing is in the server, but the buffer I'm pulling from has data.
The data in the wave_ring buffer is from an import module:
sniffwave WAVE_RING wild wild wild wild n
Sniffing WAVE_RING for wild.wild.wild.wild
sniffwave: inRing flushed 5607 packets of 10521784 bytes total.
 HOJB.HNN.JM.00 (0x32 0x30) 5 i4 600 100.0 2023/01/03 18:34:34.00 (1672770874.0000) 2023/01/03 18:34:39.99 (1672770879.9900) 0x00 0x00 i117 m51 t19 len2464 [D:327.41s F: 0.0s]
 HOJB.HNN.JM.00 (0x32 0x30) 5 i4 500 100.0 2023/01/03 18:34:40.00 (1672770880.0000) 2023/01/03 18:34:44.99 (1672770884.9900) 0x00 0x00 i117 m51 t19 len2064 [D:322.41s F: 0.0s]
MBPJB.HHZ.JM.00 (0x32 0x30) 0 i4 206 100.0 2023/01/03 18:34:43.77 (1672770883.7700) 2023/01/03 18:34:45.82 (1672770885.8200) 0x00 0x00 i117 m58 t19 len 888 [D:321.58s F: 0.0s]
 MCJB.HNN.JM.00 (0x32 0x30) 5 i4 1000 100.0 2023/01/03 18:34:34.00 (1672770874.0000) 2023/01/03 18:34:43.99 (1672770883.9900) 0x00 0x00 i117 m46 t19 len4064 [D:323.41s F: 0.0s]
 LGMB.HHX.JM.00 (0x32 0x30) 0 i4 262 100.0 2023/01/03 18:34:43.40 (1672770883.4000) 2023/01/03 18:34:46.01 (1672770886.0100) 0x00 0x00 i117 m56 t19 len1112 [D:321.39s F: 0.0s]
 PCJB.HHN.JM.00 (0x32 0x30) 2 i4 1000 100.0 2023/01/03 18:34:34.00 (1672770874.0000) 2023/01/03 18:34:43.99 (1672770883.9900) 0x00 0x00 i117 m40 t19 len4064 [D:323.41s F: 0.0s]
MBPJB.HNZ.JM.00 (0x32 0x30) 0 i4 334 100.0 2023/01/03 18:34:42.87 (1672770882.8700) 2023/01/03 18:34:46.20 (1672770886.2000) 0x00 0x00 i117 m58 t19 len1400 [D:321.20s F: 0.0s]
 MCJB.HNE.JM.00 (0x32 0x30) 6 i4 1000 100.0 2023/01/03 18:34:34.00 (1672770874.0000) 2023/01/03 18:34:43.99 (1672770883.9900) 0x00 0x00 i117 m46 t19 len4064 [D:323.41s F: 0.0s]
 BBJB.HHE.JM.00 (0x32 0x30) 3 i4 500 100.0 2023/01/03 15:59:21.00 (1672761561.0000) 2023/01/03 15:59:25.99 (1672761565.9900) 0x00 0x00 i117 m44 t19 len2064 [D:9641.41s F: 0.0s]
 BBJB.HHN.JM.00 (0x32 0x30) 2 i4 500 100.0 2023/01/03 18:34:38.00 (1672770878.0000) 2023/01/03 18:34:42.99 (1672770882.9900) 0x00 0x00 i117 m44 t19 len2064 [D:324.41s F: 0.0s]
MBPJB.HHX.JM.00 (0x32 0x30) 0 i4 206 100.0 2023/01/03 18:34:44.66 (1672770884.6600) 2023/01/03 18:34:46.71 (1672770886.7100) 0x00 0x00 i117 m58 t19 len 888 [D:320.69s F: 0.0s]
MBPJB.HHY.JM.00 (0x32 0x30) 0 i4 206 100.0 2023/01/03 18:34:44.93 (1672770884.9300) 2023/01/03 18:34:46.98 (1672770886.9800) 0x00 0x00 i117 m58 t19 len 888 [D:320.42s F: 0.0s]
 PCJB.HHZ.JM.00 (0x32 0x30) 1 i4 1000 100.0 2023/01/03 18:34:35.00 (1672770875.0000) 2023/01/03 18:34:44.99 (1672770884.9900) 0x00 0x00 i117 m40 t19 len4064 [D:322.41s F: 0.0s]
 MCJB.HHZ.JM.00 (0x32 0x30) 1 i4 500 100.0 2023/01/03 18:34:36.00 (1672770876.0000) 2023/01/03 18:34:40.99 (1672770880.9900) 0x00 0x00 i117 m46 t19 len2064 [D:326.41s F: 0.0s]
MBPJB.HNY.JM.00 (0x32 0x30) 0 i4 382 100.0 2023/01/03 18:34:43.31 (1672770883.3100) 2023/01/03 18:34:47.12 (1672770887.1200) 0x00 0x00 i117 m58 t19 len1592 [D:320.28s F: 0.0s]
 HOJB.HNE.JM.00 (0x32 0x30) 6 i4 500 100.0 2023/01/03 18:34:40.00 (1672770880.0000) 2023/01/03 18:34:44.99 (1672770884.9900) 0x00 0x00 i117 m51 t19 len2064 [D:322.41s F: 0.0s]
 LGMB.HNY.JM.00 (0x32 0x30) 0 i4 412 100.0 2023/01/03 18:34:43.32 (1672770883.3200) 2023/01/03 18:34:47.43 (1672770887.4300) 0x00 0x00 i117 m56 t19 len1712 [D:319.97s F: 0.0s]
 BBJB.HHZ.JM.00 (0x32 0x30) 1 i4 1000 100.0 2023/01/03 18:34:32.00 (1672770872.0000) 2023/01/03 18:34:41.99 (1672770881.9900) 0x00 0x00 i117 m44 t19 len4064 [D:325.41s F: 0.0s]
 MCJB.HHN.JM.00 (0x32 0x30) 2 i4 1000 100.0 2023/01/03 18:34:36.00 (1672770876.0000) 2023/01/03 18:34:45.99 (1672770885.9900) 0x00 0x00 i117 m46 t19 len4064 [D:321.41s F: 0.0s]
MBPJB.HHZ.JM.00 (0x32 0x30) 0 i4 206 100.0 2023/01/03 18:34:45.83 (1672770885.8300) 2023/01/03 18:34:47.88 (1672770887.8800) 0x00 0x00 i117 m58 t19 len 888 [D:319.52s F: 0.0s]
 LGMB.HHY.JM.00 (0x32 0x30) 0 i4 312 100.0 2023/01/03 18:34:44.98 (1672770884.9800) 2023/01/03 18:34:48.09 (1672770888.0900) 0x00 0x00 i117 m56 t19 len1312 [D:319.31s F: 0.0s]


Using the export_generic module:
MyModuleId     MOD_EXPORT_GENERIC  # module id for this program
 RingName       WAVE_RING2           # transport ring to use for input/output
 HeartBeatInt   30                  # EW internal heartbeat interval (sec)
                                    # Should be >= RcvAliveInt

 LogFile        1      # If 0, don't write logfile
                       #    1, write to logfile and stdout
                       #    2, write to module log but not stderr/stdout
#Verbose               # If uncommented, VERY LARGE logfiles will be
                       #   generated with info about queue status of
                       #   each msg, socket alive msgs sent & received.
#
# Logos of messages to export to client systems
#              Installation       Module       Message Type
 GetMsgLogo    INST_JSN         MOD_WILDCARD     TYPE_TRACEBUF2
 
# ServerIPAdr and ServerPort specify the local IP address and port number
# on which this module will be ready to accept a client connection.
#
 ServerIPAdr  127.0.0.1   # Export messages via this ethernet card  
 ServerPort     16006          # Well-known port number to export msgs on

 MaxMsgSize       4096         # maximum size (bytes) for input/output msgs
 RingSize         1000         # number of msgs to buffer for export

 SendAliveText   "from_ew"     # string sent to client as heartbeat
 SendAliveInt      30          # seconds between alive msgs sent to client.
                               #  0=> no heartbeat
 RcvAliveText    "to_ew"       # text of client's heartbeat (we get this)
 RcvAliveInt       25          # seconds between client's heartbeats to us.
                               #  0 => no heartbeat
WINSTON.CONFIG file:
winston.driver=com.mysql.jdbc.Driver
winston.url=jdbc:mysql://localhost:3306/?user=winstonuser&password=winstonpass
#winston.url=jdbc:mysql://196.3.3.69:3306/?user=wwsuser&password=wwspass
#winston.url=jdbc:mysql://196.3.3.69/?user=wwsuser&password=wwspass
#winston.url=jdbc:mysql://196.3.3.69:3306/?user=wws&password=wwspass
winston.prefix=W


IMPORTEW.CONFIG file:
import.host= 127.0.0.1 #196.3.3.69 #196.3.3.13 #127.0.0.1
import.port=16006
import.receiveID=from_ew
import.sendID=to_ew
import.heartbeatInterval=25000
import.expectedHeartbeatInterval=30000
import.timeout=120000
import.dropTableDelay=10
import.log.name=ImportEW.log
import.log.numFiles=10
import.log.maxSize=1000000

still yields nothing
equ_user@equ-mona-03:~$ sniffwave WAVE_RING2 wild wild wild wild n
Sniffing WAVE_RING2 for wild.wild.wild.wild
sniffwave: inRing flushed 0 packets of 0 bytes total.

Can you explain the disconnect that is happening?


P.Coleman

CONFIDENTIALITY & DISCLAIMER
Information contained in this e-mail and any files attached to it are private and confidential and intended for the named recipient only. If you are not the intended named recipient you are prohibited from storing, copying, printing or using the information in any way. If you received this e-mail in error please notify the author immediately by responding to this email and then delete it from your system.

netstat_uwi-Net.txt
netstat.txt

Larry Baker

unread,
Jan 3, 2023, 3:23:02 PM1/3/23
to Paul Coleman, 'jona...@ntu.edu.sg' via Earthworm Community Forum, Larry Baker
Paul,

I don't understand either your Earthworm setup or your network setup.

You are able to examine the data in WAVE_WING.  You show no data in WAVE_RING2.  How does data get (from WAVE_RING, I assume) into WAVE_RING2?  WAVE_RING2 is used to supply the data to export_generic.  What is it supposed to export?  To what?  Winston, I think.  Why are you using WAVE_RING2?  Winston does not use WAVE_RINGs.

Where does Winston run?  Your export_generic.d is sending data from WAVE_RING2 to a Winston running on the same machine (127.0.0.1).  Your WINSTON.CONFIG file uses localhost as the host name.  Does that resolve?  I.e., does your DNS still work?  Why not just use 127.0.0.1?  Your IMPORTEW.CONFIG file says to import data from import.host= 127.0.0.1 #196.3.3.69 #196.3.3.13 #127.0.0.1.  How do you know that syntax works?  I don't know if Winston handles embedded hashes in its options.

Your netstat from uwi-Net looks like ImportEW and Winston are both running on 196.3.3.190 (see the 196.3.3.190:mysql ESTABLISHED connections).  I assume the other netstat is your Earthworm system running on 192.168.42.103.  I don't see that port 16006 is LISTENING.  Was Earthworm running?

Bump up the logging options and look at the log files for export_generic and ImportEW.  You said export_generic was not connecting.  Does it say where it was trying to connect?  Is it what you expect?  What does ImportEW say it is trying to do?  Do the two agree on the exchange?  I can't remember off hand whether export_generic waits for a connection.  I bet it does.  That is why I was looking for port 16002 in your netstat output.  I don't have access to an Earthworm system to check on one myself.
netstat_uwi-Net.txt
netstat.txt

Larry Baker

unread,
Jan 23, 2023, 8:45:45 PM1/23/23
to Paul Coleman, Larry Baker, 'jona...@ntu.edu.sg' via Earthworm Community Forum
Paul,

Been out of commission for a while.  Back now.

1) I don't think you need WAVE_RING2.  Why not just use export_generic from WAVE_RING to ImportEW?  If you think you do for some reason, you should use the ringdup_generic module to duplicate messages from one ring to another within the same Earthworm.

2) If Winston will be running on the same computer as Earthworm, use internal IP address, 127.0.0.1, for the host IP address in both export_generic and ImportEW.

You have two Ethernet interfaces.  I am guessing 192.168.42.103/255 is the new private subnet you are using, which does not route to any other subnets.

3) If Winston will not be running on the same computer as Earthworm, use the interface IP address, e.g., 192.168.42.103, for the host IP address in both export_generic and ImportEW.

The reason is export_generic becomes a TCP/IP service on a particular subnet/port.  Subnet 127.0.0.1/8 exists only within a host; services that bind to 127.0.0.1 are not publicly visible on any physical interface.  Services must bind to one or more physical interfaces to be publicly visible outside the machine.


On Jan 4, 2023, at 10:25 AM, Paul Coleman <paul.ale...@gmail.com> wrote:

Hi Larry,
re your questions:

You are able to examine the data in WAVE_WING.  You show no data in WAVE_RING2.  How does data get (from WAVE_RING, I assume) into WAVE_RING2?: I'm using an export_generic module to pass data across the wave_ring buffers. 
WAVE_RING2 is used to supply the data to export_generic: No, it collects the data from the WAVE_RING, this data is imported using import_generic from a different earthworm server(Main server).
What is it supposed to export? it's supposed to make the  data available for winston to access and write to the local database.
To what?  Winston, I think.: Yes to winston.
  Why are you using WAVE_RING2?  I tried using the WAVE_RING  and it still wasn't writing to the database, so I was trying to segment the data so I could isolate or trouble the issue better.
Winston does not use WAVE_RINGs:

Your netstat from uwi-Net looks like ImportEW and Winston are both running on 196.3.3.190 (see the 196.3.3.190:mysql ESTABLISHED connections).: This is the Network attached Storage(NAS) devices IP address it houses the database, this is when it's on the public network.
 I assume the other netstat is your Earthworm system running on 192.168.42.103.: No this is also the NAS and this was when it was on the private network, when the public one was under maintenance. The only changes made were the IP addresses used in the modules and config files. The earthworm module was still running and collecting data from the local network but wasn't able to write to the database on the NAS.
I don't see that port 16006 is LISTENING.  Was Earthworm running? Yes earthworm was running, when I used the getmenu option on earthworm it said there was nothing on the server. But the WAVE_RING buffer had the data being collected from the local network.


Where does Winston run? Winston is running locally. Its in the same root directory as earthworm.
Your export_generic.d is sending data from WAVE_RING2 to a Winston running on the same machine (127.0.0.1): Yes it is
Your WINSTON.CONFIG file uses localhost as the host name.  Does that resolve?
ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.030 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.030 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.028 ms
64 bytes from localhost (127.0.0.1): icmp_seq=6 ttl=64 time=0.029 ms
^C
--- localhost ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5125ms
rtt min/avg/max/mdev = 0.028/0.032/0.041/0.004 ms
I.e., does your DNS still work? Yes it does.
Why not just use 127.0.0.1? I can make the change but it should still work with localhost as the above ping results would suggest.
Your IMPORTEW.CONFIG file says to import data from import.host= 127.0.0.1 #196.3.3.69 #196.3.3.13 #127.0.0.1.  How do you know that syntax works? This is the same syntax used when on the main server. The hashtag is just commenting. It follows that the program ignores it. it the same with all earthworm modules
 I don't know if Winston handles embedded hashes in its options.: It would just see it as a line comment and ignore everything beyond the # sign


I have attached a netstat print out of the equ-03 server and the import and export generic log...
export_generic_20230104.log
equ-03.txt
import_generic_20230104.log
ImportEW.config
Reply all
Reply to author
Forward
0 new messages