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'
* 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
> 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'
* 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
> 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"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<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