Hi Ilya,
That certainly makes sense, but I'm not totally sure how to act on that
information yet. A couple questions:
1.) Given the configuration file I posted (which is basically the same on each
node in the cluster, save that the IP addresses of the nodes to discover are
different), should each of the nodes eventually join the cluster? Am I missing
anything?
2.) Is there a message that I should see in the logs that identifies that the
node has successfully joined the cluster?
3.) How long should I expect the process to take with three nodes (just a loose
estimate)?
Thanks for your ongoing help. It's much appreciated. :)
Devin
On 2/21/20 3:23 AM, Ilya Kasnacheev wrote:
Hello!
Your node has never finished joining to cluster nor was able to self-discover
to form a cluster of its own, as evident by:
"main" #1 prio=5 os_prio=0 tid=0x00007f7e8000d000 nid=0x5fed waiting on
condition [0x00007f7e8875f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.ignite.internal.util.IgniteUtils.sleep(IgniteUtils.java:7778)
at
org.apache.ignite.spi.discovery.tcp.*ServerImpl.sendJoinRequestMessage*(ServerImpl.java:1131)
at
org.apache.ignite.spi.discovery.tcp.*ServerImpl.joinTopology*(ServerImpl.java:910)
at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:391)
at
org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2020)
at
org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:939)
at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1682)
at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)
at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2038)
at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730)
- locked <0x00000005e8cca5b8> (a
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance)
at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
at
org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:861)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:731)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:700)
at org.apache.ignite.Ignition.start(Ignition.java:348)
at
org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:301)
Until node is in topology, obviously it can't serve any requests.
Regards,
--
Ilya Kasnacheev
пт, 21 февр. 2020 г. в 01:55, Devin Anderson <dande...@akamai.com
<mailto:dande...@akamai.com>>:
Hi Ilya,
I'm attaching the `jstack` dump to this message. When I took the dump,
there
were ten requests that had been made to the Apache Ignite REST API using
POST
data of the form:
cmd=add&key=[key]&value=[value]
... where [key] and [value] were proper URI encoded data.
Thanks in advance for any help. I'll take a look as well and try to
figure out
what's going on.
Devin
On 2/20/20 5:43 AM, Ilya Kasnacheev wrote:
> Hello!
>
> Please collect thread dump (jstack) from affected node, share it with us.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> чт, 20 февр. 2020 г. в 16:17, Devin Anderson <dande...@akamai.com
<mailto:dande...@akamai.com>
> <mailto:dande...@akamai.com <mailto:dande...@akamai.com>>>:
>
> Hi all,
>
> I'm seeing issues wherein the Apache Ignite REST API appears to accept
> requests, but doesn't ever reply. This doesn't always happen; for
> example, if
> I make a request that I expect the API to reject, I get back a
response:
>
> ----------
>
> # curl -v -X GET 'http://127.0.0.1:8080/ignite
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080_ignite&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=Hhk_7aUuf0SyczRr-esByr4-rhF7d6_AdK2FyS_MjFo&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080_ignite&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=Q3T6HlQSi3TnKwaRcPsb0MWMRbFNexaNfrucVQSrTkI&e=>'
> * Hostname was NOT found in DNS cache
> * Trying 127.0.0.1...
> * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> > GET /ignite HTTP/1.1
> > User-Agent: curl/7.35.0
> > Host: 127.0.0.1:8080
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=VEZ1YiACosFkygqRYUfQg4SBv12OI3TTYzpQDOhT8bE&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=gS2lm03jyjMVp9ZTWC259JI_RG9y4l9QsuvxX4Cz85c&e=>
> > Accept: */*
> >
> < HTTP/1.1 400 Bad Request
> < Date: Thu, 20 Feb 2020 11:21:22 GMT
> < Content-Type: application/json;charset=utf-8
> < Content-Length: 0
> * Server Jetty(9.4.11.v20180605) is not blacklisted
> < Server: Jetty(9.4.11.v20180605)
> <
> * Connection #0 to host 127.0.0.1 left intact
>
> ----------
>
> I expect the (above) request above to fail because I don't supply the
> required
> `cmd` parameter.
>
> However, if I make a request that I believe should succeed, I never
> receive a
> response:
>
> ----------
>
> # curl -v 'http://127.0.0.1:8080/ignite?cmd=version
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080_ignite-3Fcmd-3Dversion&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=b1MZBDEsOiVfh5l7ltu2DgXaYnh_5XtnKPg1RgsDfTI&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080_ignite-3Fcmd-3Dversion&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=USDfyc0TCRCJRx4vzXe9ezgsCMJ8YfFh2IK983DMgrc&e=>'
> * Hostname was NOT found in DNS cache
> * Trying 127.0.0.1...
> * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> > GET /ignite?cmd=version HTTP/1.1
> > User-Agent: curl/7.35.0
> > Host: 127.0.0.1:8080
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=VEZ1YiACosFkygqRYUfQg4SBv12OI3TTYzpQDOhT8bE&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__127.0.0.1-3A8080&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=gS2lm03jyjMVp9ZTWC259JI_RG9y4l9QsuvxX4Cz85c&e=>
> > Accept: */*
> >
>
> ----------
>
> `curl` will wait forever for a response that never arrives.
>
> I tried looking for logs output by the REST API so that I could
debug the
> issue, but failed to find any log entries emitted from the REST API.
>
> Given that I'm new to Apache Ignite, I suspect that I'm almost
certainly
> doing
> something wrong, but I have absolutely no idea what that could be.
>
> I have a few questions:
>
> 1.) Has anyone encountered an issue similar to this with the REST API?
> If so,
> how did you solve it?
> 2.) Can anyone tell me where I might find REST API log entries?
> 3.) I have persistence enabled in the XML configuration. Would that
conflict
> with the REST API?
> 4.) I have additional nodes (3 nodes in total) in the XML
configuration.
> AFAICT from log entries and some liberal use of `ss`, the nodes are
> communicating with each other. Would having multiple nodes
conflict with
> the
> REST API?
> 5.) Is there anything else I'm missing that might not be obvious to me
> because
> I'm new to Apache Ignite?
>
> Other than (3) and (4), I think the configuration file I'm using is
> rather bland:
>
> ----------
>
> <beans xmlns="http://www.springframework.org/schema/beans
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=QS1N4uN0i6B10p6B-YPORLbXGqiH4ve3DC9FLR-9HH4&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=uORaM4cyX6R3dKSjnm0_K8A4230IGy7LPWUzRAG_IV4&e=>"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.w3.org_2001_XMLSchema-2Dinstance&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=UyopUd5Ot09OGVA6KNi_oTS8JCxjI42wdeGJQbrC2UQ&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.w3.org_2001_XMLSchema-2Dinstance&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=vdA3V10EDd-kLU4fjTYawM1o1NL-UvHO1iiW4VxHUyw&e=>"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=QS1N4uN0i6B10p6B-YPORLbXGqiH4ve3DC9FLR-9HH4&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=uORaM4cyX6R3dKSjnm0_K8A4230IGy7LPWUzRAG_IV4&e=>
> http://www.springframework.org/schema/beans/spring-beans.xsd
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans_spring-2Dbeans.xsd&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=nxds_HJL4Wp8JgHdOCFCwfFGfocNDpGEKHbOigV9HgY&s=1W2X_AlApjVwM2r9Q9I8hQniVWhjpGvzeGWSbA7z0Oc&e=>
>
<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.springframework.org_schema_beans_spring-2Dbeans.xsd&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=O-a0zsxmvZZBVCsKS7owS9oPa3AKjd7Xpau8laEriDM&m=0D1iM7MuHAG3uQxX5V8Iv_9kNyO25FNACjcqQnHaaLs&s=Reg5uEVfbW-0vucPqzp0oUT2MSnUoevTyriLXqXkAkY&e=>">
> <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>
> <property name="dataStorageConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataStorageConfiguration">
> <!--
> Default memory region that grows endlessly. A cache is
bound
> to this
> memory region unless it sets another one in its
> CacheConfiguration/
> -->
> <property name="defaultDataRegionConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="persistenceEnabled" value="true"/>
> <property name="name" value="Default_Region"/>
> <!-- 100 MB memory region with disabled eviction -->
> <property name="initialSize" value="#{100 * 1024 *
1024}"/>
> </bean>
> </property>
> </bean>
> </property>
>
> <property name="discoverySpi">
> <bean
class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
> <property name="ipFinder">
> <bean
>
class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
> <property name="addresses">
> <list>
> <value>[other node address]</value><value>[other node
> address]</value>
> </list>
> </property>
> </bean>
> </property>
> </bean>
> </property>
>
> </bean>
> </beans>
>
> ----------
>
> (Obviously, each instance of '[other node address]' is substituted
with a
> real
> IP address in the actual files I'm using.)
>
> Thanks in advance for any help.
>
> --
> Devin
>