Volttron platform not accepting IP address during set up - volttron

I'm trying to get the matlab agent in Linux connected to the standalone agent in Windows. I start by setting up a platform (using vcfg) on Volttron. However, I get this error when I try to define an IP address and port on the volttron instance:
What is the vip address? [tcp://127.0.0.1]: tcp://192.168.56.101 What
is the port for the vip address? [22916]:
ERROR: That address has already been bound to. What is the vip
address? [tcp://192.168.56.101]: tcp://192.168.56.155 What is the port
for the vip address? [22916]: ERROR: That address has already been
bound to.
No matter the address I give, it says it has already been bound to. I removed the .volttron directory that contains the known_hosts, etc. but to no avail. The only IP address that seems to work is 127.0.0.2. However with that the standalone agent does not connect to the Volttron platform. I added the authentication credentials of the standalone agent in volttron and made sure the keys were correctly configured. This is all that I get:
2019-08-08 10:24:16,059 volttron.platform.vip.agent.core DEBUG: identity: standalone_matlab
2019-08-08 10:24:16,059 volttron.platform.vip.agent.core DEBUG: agent_uuid: None
2019-08-08 10:24:16,059 volttron.platform.vip.agent.core DEBUG: serverkey: None
2019-08-08 10:24:16,069 volttron.platform.vip.agent.core DEBUG: AGENT RUNNING on ZMQ Core standalone_matlab
2019-08-08 10:24:16,072 volttron.platform.vip.zmq_connection DEBUG: ZMQ connection standalone_matlab
After a while, it times out:
2019-08-08 10:25:14,540 volttron.platform.vip.zmq_connection DEBUG: ********************************************************************
2019-08-08 10:25:14,542 volttron.platform.vip.zmq_connection DEBUG: Closing connection to ZMQ: standalone_matlab
2019-08-08 10:25:14,542 volttron.platform.vip.zmq_connection DEBUG: ********************************************************************
I am missing this line which indicates that a connection has been made.
volttron.platform.vip.agent.core INFO: Connected to platform: router: ebae9efa-5e8f-49e3-95a0-2020ddff9e8a version: 1.0 identity: standalone_matlab
Also, I already set my network adapter to host-only. Can someone please help me know what I'm doing wrong?

I finally figured out what the problem was. It was a ZMQ issue. ZMQ was refusing to bind to the address that I was giving to the wizard. It threw up this error:
Traceback (most recent call last): File "", line 1, in
File "zmq/backend/cython/socket.pyx", line 495, in
zmq.backend.cython.socket.Socket.bind
(zmq/backend/cython/socket.c:5327) File
"zmq/backend/cython/checkrc.pxd", line 25, in
zmq.backend.cython.checkrc._check_rc
(zmq/backend/cython/socket.c:9542) zmq.error.ZMQError: Cannot assign
requested address
The fix was simply to do "ifconfig" and find the IP address that was assigned to my Linux system and provide that to the wizard.

Related

Why does my Mosquitto broker fail to start on boot, but works when started manually?

I have a UDOO x86 running Ubuntu 18.04.5 LTS, with Mosquitto v2. This setup has worked as expected until a recent Ubuntu update.
Now, Mosquitto fails to start on boot. In the Mosquitto log file I see that it correctly finds my config file, but then fails with:
Opening ipv4 listen socket on port 1883.
Error: Cannot assign requested address
It then immediately attempts to restart four more times in rapid succession before (apparently) giving up.
Strangely, if I start Mosquitto manually (using sudo systemctl start mosquitto) immediately after boot, the broker starts without error and works properly (both listeners, see below).
My mosquitto.conf:
log_type all
allow_anonymous true
listener 1883 10.11.12.222 # <-- local IP address of my machine
listener 1883 localhost
I've determined that the error is caused by the line with the IP address. If I use only localhost, or if I just use listener 1883 (which I think binds to all adapters?), mosquitto starts and works correctly.
The computer has two network adapters -- an Ethernet adapter statically assigned to 10.11.12.222, and a wireless adapter on a different subnet (using DHCP) connected to the interwebs. I'd like limit my listener to the Ethernet adapter only (and localhost), hence the desire to specify the IP address.
I've tried turning off allow_anonymous and adding a password file -- this doesn't change the behavior.

Protocol error when executing cpp-driver datastax

I am currently workinig on datastax cpp-driver in C and was working around some examples when I came across a very trivial problem. While trying to execute the Basic Authentication Script here, I found this error showing up and the code execution getting stuck.
The Error:
1587040775.210 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.3 because of the following error: Underlying connection error: Connect error 'connection refused'
1587040775.210 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.2 because of the following error: Underlying connection error: Connect error 'connection refused'
1587040775.211 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.1 because of the following error: Underlying connection error: Received error response 'Invalid or unsupported protocol version (66); supported versions are (3/v3, 4/v4, 5/v5-beta)' (0x0200000A)
1587040775.211 [WARN] (cluster_connector.cpp:289:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Host 127.0.0.1 does not support protocol version DSEv2. Trying protocol version DSEv1...
1587040775.212 [ERROR] (cluster_connector.cpp:192:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Unable to establish a control connection to host 127.0.0.1 because of the following error: Underlying connection error: Received error response 'Invalid or unsupported protocol version (65); supported versions are (3/v3, 4/v4, 5/v5-beta)' (0x0200000A)
1587040775.212 [WARN] (cluster_connector.cpp:289:void datastax::internal::core::ClusterConnector::on_connect(datastax::internal::core::ControlConnector*)): Host 127.0.0.1 does not support protocol version DSEv1. Trying protocol version v4...
What could be these protocols that are not supported by my machine? Also, after it comes to the last warning, which is trying protocol v4 it gets stuck.
I'm using Casssandra 3.10+, Cpp-driver 2.13.
Anybody with a workaround or a solution would be of much help. Thanks in advance
I've looked around a bunch to find some documentation to back this up but I can't find any, so this part is conjecture. It appears that server version 3 uses protocol V3. It looks like server version 4 (still in beta) will use protocol V4. I suspect V5 is a future iteration that is being planned and still not written in stone yet (and why it's tagged as beta in the warning).
This part isn't conjecture.
If you add this to your code before you connect to the cluster:
cass_cluster_set_protocol_version(cluster, CASS_PROTOCOL_VERSION_V3);
All the warnings about downgrading to different protocols should go away.

Azkaban Execute error

Got following Error when Executing flow.
Error submitting flow bar. azkaban.executor.ExecutorManagerException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:10000 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
I changed some lines in azkaban.properties.
default.timezone.id=Asia/Tokyo
jetty.port=8081
executor.port=10000
azkaban using azkaban-solo-server.
It looks as though the azkaban-web-server is not able to contact the azkaban-exec-server. The azkaban executor is a separate process from the azkaban web interface and uses a separate configuration.
Firstly, confirm that the executor is running and listening on the correct port. eg. for a non-windows environment:
$ ps -elf | grep azkaban-exec-server
If it's not running, then it will need to be started. If it is running, then you need to ensure that the listening port of the executor is the same as the executor port configured in the azkaban-web-server azkaban.properties. You can do this by checking the -Dexecutorport argument to the running azkaban-exec-server process or by checking the executor.port value in the azkaban-exec-server azkaban.properties.
If this value differs from the executor.port value in the azkaban-web-server azkaban.properties then you need to ensure that the values match (either by modifying executor.port in the azkaban-web-server or azkaban-exec-server azkaban.properties) and that the relevant service(s) get restarted following any configuration changes.

Tomcat instance fails to start: ERROR: transport error 202: bind failed: Address already in use

I have two tomcat instances with shared tomcat installation on a ubuntu box.
Each server has its own shutdown port and own listener port.
When i start the second server (either one) I get the following error:
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197):
No transports initialized [../../../src/share/back/debugInit.c:750]
FATAL ERROR in native method:
JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
I am not trying to run these servers in debug mode. Have no additional startup options supplied.
I have checked other threads here but none of the solutions work for me. I've done netstat on the concerned port and there is nothing.

Connect to cassandra on Google Cloud Compute

I deployed a Cassandra cluster through their launcher: https://cloud.google.com/launcher/explore?q=cassandra
I can connect to the VM fine, through SSH/PuTTY.
Then when I try to connect with for example DBeaver I get:
com.datastax.driver.core.exceptions.NoHostAvailableExeption: All host(s) tried for query failed(tried: /x.x.x.x:9160)
com.datastax.driver.core.ConnectionExption:[/x.x.x.x:9160] Unexpected error during transport initialization. Connection has been closed
Or with cassandra-driver (nodejs), I get:
All host(s) tried for query failed. First host tried, x.x.x.x:9160: Error: read ECONNRESET. See innerErrors.
InnerErrors: { 'x.x.x.x:9160': { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' } }
Info: Represents an error when a query cannot be performed because no host is available or could be reached by the driver.
I've forwarded the 9160 port in the google developer console and it seems to work because when I stop the cassandra server on the VM it gives a different error, indicating connection is refused:
All host(s) tried for query failed. First host tried, x.x.x.x:9160: Error: connect ECONNREFUSED. See innerErrors.
InnerErrors: { 'x.x.x.x:9160':
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' } }
Info: Represents an error when a query cannot be performed because no host is available or could be reached by the driver.
Now, I've tried editing the cassandra.yaml rcp_adress to the actual external address instead of 0.0.0.0.
I've also tried the internal serverfarm address.
I've not changed the default authentication (but also tried with auth):
authenticator: AllowAllAuthenticator
# authenticator: PasswordAuthenticator
authorizer: AllowAllAuthorizer
# authorizer: CassandraAuthorizer
I'm at a loss, the connection seems to work, but cassandra seems to not allow a login or reset the connection?
You are trying to connect on the thrift port (9160). You should be using the native protocol port (9042).

Resources