I just started using alluxio in my local environment through Docker. I am seeing this exception on master node:
2023-04-26 16:26:34,321 WARN [Master Update Check](InstanceMetadataServiceResourceFetcher.java:105) - Fail to retrieve token
com.amazonaws.SdkClientException: Failed to connect to service endpoint:
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)
at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:69)
at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:66)
at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:402)
at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:371)
at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:367)
at com.amazonaws.util.EC2MetadataUtils.getInstanceInfo(EC2MetadataUtils.java:247)
at alluxio.util.EnvironmentUtils.isEC2WithInstanceIdentity(EnvironmentUtils.java:166)
at alluxio.util.EnvironmentUtils.isEC2(EnvironmentUtils.java:69)
at alluxio.check.UpdateCheck.addEC2Info(UpdateCheck.java:208)
at alluxio.check.UpdateCheck.addUserAgentEnvironments(UpdateCheck.java:145)
at alluxio.check.UpdateCheck.getUserAgentString(UpdateCheck.java:121)
at alluxio.check.UpdateCheck.getLatestVersion(UpdateCheck.java:87)
at alluxio.master.meta.UpdateChecker.heartbeat(UpdateChecker.java:57)
at alluxio.heartbeat.HeartbeatThread.run(HeartbeatThread.java:128)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:607)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at sun.net.www.http.HttpClient.New(HttpClient.java:339)
at sun.net.www.http.HttpClient.New(HttpClient.java:357)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1228)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1207)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
at com.amazonaws.internal.ConnectionUtils.connectToEndpoint(ConnectionUtils.java:52)
at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:80)
... 20 more
I checked alluxio code base and it seems this condition was introduce
here and even covered with tests
here. My question is, do we need to generate this exception on a Docker container, which is running on a host machine which does not have AWS credentials / access?
My Env:
Alluxio version: 2.9.3
Docker version 20.10.21, build baeda1f
Arch: Apple M1 Max
OS: Ventura 13.3.1
Running this command from doc:
docker run -d --rm \
-p 19999:19999 \
-p 19998:19998 \
--net=alluxio_network \
--name=alluxio-master \
-e ALLUXIO_JAVA_OPTS=" \
-Dalluxio.master.mount.table.root.ufs=/opt/alluxio/underFSStorage \
-Dalluxio.master.hostname=alluxio-master" \
alluxio/alluxio master