[ 
https://issues.apache.org/jira/browse/IGNITE-2405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Miron Aseev updated IGNITE-2405:
--------------------------------
    Description: 
It seems that Apache Ignite runs an infinite loop if it can't connect to the 
resolved hostname.

For example, if you specify the hostname of the local machine as an address for 
the TCPSpi, then Apache Ignite resolves it 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915].
 

But after that, for some reasons, it fails to connect to the resolved address 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L925].
 

As a result, the control flow goes to the catch block where the exception is 
logged (It's an IgniteSpiException. It seems it can't get access to the host 
according to the exception message - "Network operation timed out. Increase 
'failureDetectionTimeout' configuration property 
[failureDetectionTimeout=10000]"). 
In the end, we get an infinite loop.

On the other hand, If I set an ip address (127.0.0.1) instead of the hostname, 
Ignite gets an empty list 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915]
 and the control flow breaks the loop 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L918]
 and goes forward.

Here's a log information which Ignite produces during its work.

{code}
Jan 19, 2016 7:33:02 PM java.util.logging.LogManager$RootLogger log
SEVERE: Failed to resolve default logging config file: 
config/java.util.logging.properties
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: 

>>>    __________  ________________  
>>>   /  _/ ___/ |/ /  _/_  __/ __/  
>>>  _/ // (7 7    // /  / / / _/    
>>> /___/\___/_/|_/___/ /_/ /___/   
>>> 
>>> ver. 1.5.0-final#20151229-sha1:f1f8cda2
>>> 2015 Copyright(C) Apache Software Foundation
>>> 
>>> Ignite documentation: http://ignite.apache.org

Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Config URL: n/a
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Daemon mode: off
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: OS: Linux 3.13.0-74-generic amd64
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: OS user: maseev
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Language runtime: Java Platform API Specification ver. 1.8
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM information: Java(TM) SE Runtime Environment 1.8.0_40-b26 Oracle 
Corporation Java HotSpot(TM) 64-Bit Server VM 25.40-b25
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM total memory: 3.5GB
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Remote Management [restart: off, REST: on, JMX (remote: off)]
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: IGNITE_HOME=null
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM arguments: 
[-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51947,suspend=y,server=n, 
-ea, -DIGNITE_QUIET=false, -Didea.junit.sm_runner, -Dfile.encoding=UTF-8]
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Configured caches ['ignite-marshaller-sys-cache', 'ignite-sys-cache', 
'ignite-atomics-sys-cache']
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Initial heap size is 250MB (should be no less than 512MB, use -Xms512m 
-Xmx512m).
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Non-loopback local IPs: 172.17.0.1, 192.168.88.252, 
fe80:0:0:0:42:2aff:feff:fe3d%docker0, fe80:0:0:0:f2de:f1ff:feb6:5301%eth0
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Enabled local MACs: 02422AFFFE3D, F0DEF1B65301
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Configured plugins:
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO:   ^-- None
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: 
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: IPC shared memory server endpoint started [port=48103, 
tokDir=/tmp/ignite/work/ipc/shmem/62396752-fb2f-4402-bff6-9f5f2d4fc0b3-8658]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound shared memory communication to TCP port [port=48103, 
locHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound to TCP port [port=47103, locHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Checkpoints are disabled (to enable configure any GridCheckpointSpi 
implementation)
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Collision resolution is disabled (all jobs will be activated upon 
arrival).
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Swap space is disabled. To enable use FileSwapSpaceSpi.
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Security status [authentication=off, tls/ssl=off]
Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Command protocol successfully started [name=TCP binary, 
host=0.0.0.0/0.0.0.0, port=11214]
Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound to TCP port [port=47503, localHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:13 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Your version is up to date.
{code}

And here's a simple 
[test|https://github.com/maseev/ignite/blob/master/src/test/java/io/github/maseev/IgniteTest.java#L23]
 which reproduces the problem. You can run it with maven by executing it with 
{code}mvn test{code}

  was:
It seems that Apache Ignite runs an infinite loop if it can't connect to the 
resolved hostname.

For example, if you specify the hostname of the local machine as an address for 
the TCPSpi, then Apache Ignite resolves it 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915].
 

But after that, for some reasons, it fails to connect to the resolved address 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L925].
 

As a result, the control flow goes to the catch block where the exception is 
logged (It's an IgniteSpiException. It seems it can't get acces to the host 
according to the exception message - "Network operation timed out. Increase 
'failureDetectionTimeout' configuration property 
[failureDetectionTimeout=10000]"). 
In the end, we get an infinite loop.

On the other hand, If I set an ip address (127.0.0.1) instead of the hostname, 
Ignite gets an empty list 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915]
 and the control flow breaks the loop 
[here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L918]
 and goes forward.

Here's a log information which Ignite produces during its work.

{code}
Jan 19, 2016 7:33:02 PM java.util.logging.LogManager$RootLogger log
SEVERE: Failed to resolve default logging config file: 
config/java.util.logging.properties
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: 

>>>    __________  ________________  
>>>   /  _/ ___/ |/ /  _/_  __/ __/  
>>>  _/ // (7 7    // /  / / / _/    
>>> /___/\___/_/|_/___/ /_/ /___/   
>>> 
>>> ver. 1.5.0-final#20151229-sha1:f1f8cda2
>>> 2015 Copyright(C) Apache Software Foundation
>>> 
>>> Ignite documentation: http://ignite.apache.org

Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Config URL: n/a
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Daemon mode: off
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: OS: Linux 3.13.0-74-generic amd64
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: OS user: maseev
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Language runtime: Java Platform API Specification ver. 1.8
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM information: Java(TM) SE Runtime Environment 1.8.0_40-b26 Oracle 
Corporation Java HotSpot(TM) 64-Bit Server VM 25.40-b25
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM total memory: 3.5GB
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Remote Management [restart: off, REST: on, JMX (remote: off)]
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: IGNITE_HOME=null
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: VM arguments: 
[-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51947,suspend=y,server=n, 
-ea, -DIGNITE_QUIET=false, -Didea.junit.sm_runner, -Dfile.encoding=UTF-8]
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Configured caches ['ignite-marshaller-sys-cache', 'ignite-sys-cache', 
'ignite-atomics-sys-cache']
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Initial heap size is 250MB (should be no less than 512MB, use -Xms512m 
-Xmx512m).
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Non-loopback local IPs: 172.17.0.1, 192.168.88.252, 
fe80:0:0:0:42:2aff:feff:fe3d%docker0, fe80:0:0:0:f2de:f1ff:feb6:5301%eth0
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Enabled local MACs: 02422AFFFE3D, F0DEF1B65301
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Configured plugins:
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO:   ^-- None
Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
INFO: 
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: IPC shared memory server endpoint started [port=48103, 
tokDir=/tmp/ignite/work/ipc/shmem/62396752-fb2f-4402-bff6-9f5f2d4fc0b3-8658]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound shared memory communication to TCP port [port=48103, 
locHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound to TCP port [port=47103, locHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Checkpoints are disabled (to enable configure any GridCheckpointSpi 
implementation)
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Collision resolution is disabled (all jobs will be activated upon 
arrival).
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
WARNING: Swap space is disabled. To enable use FileSwapSpaceSpi.
Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Security status [authentication=off, tls/ssl=off]
Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Command protocol successfully started [name=TCP binary, 
host=0.0.0.0/0.0.0.0, port=11214]
Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Successfully bound to TCP port [port=47503, localHost=0.0.0.0/0.0.0.0]
Jan 19, 2016 7:33:13 PM org.apache.ignite.logger.java.JavaLogger info
INFO: Your version is up to date.
{code}

And here's a simple 
[test|https://github.com/maseev/ignite/blob/master/src/test/java/io/github/maseev/IgniteTest.java#L23]
 which reproduces the problem. You can run it with maven by executing it with 
{code}mvn test{code}


> Ignite is blocking the thread in case it can't connect to the node
> ------------------------------------------------------------------
>
>                 Key: IGNITE-2405
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2405
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 1.5.0.final
>            Reporter: Miron Aseev
>              Labels: community, newbie
>         Attachments: log.out, log.out, log.out
>
>
> It seems that Apache Ignite runs an infinite loop if it can't connect to the 
> resolved hostname.
> For example, if you specify the hostname of the local machine as an address 
> for the TCPSpi, then Apache Ignite resolves it 
> [here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915].
>  
> But after that, for some reasons, it fails to connect to the resolved address 
> [here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L925].
>  
> As a result, the control flow goes to the catch block where the exception is 
> logged (It's an IgniteSpiException. It seems it can't get access to the host 
> according to the exception message - "Network operation timed out. Increase 
> 'failureDetectionTimeout' configuration property 
> [failureDetectionTimeout=10000]"). 
> In the end, we get an infinite loop.
> On the other hand, If I set an ip address (127.0.0.1) instead of the 
> hostname, Ignite gets an empty list 
> [here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L915]
>  and the control flow breaks the loop 
> [here|https://github.com/apache/ignite/blob/b3d347e35a254928fd1c4a0473f1b17d642c72f3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java#L918]
>  and goes forward.
> Here's a log information which Ignite produces during its work.
> {code}
> Jan 19, 2016 7:33:02 PM java.util.logging.LogManager$RootLogger log
> SEVERE: Failed to resolve default logging config file: 
> config/java.util.logging.properties
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: 
> >>>    __________  ________________  
> >>>   /  _/ ___/ |/ /  _/_  __/ __/  
> >>>  _/ // (7 7    // /  / / / _/    
> >>> /___/\___/_/|_/___/ /_/ /___/   
> >>> 
> >>> ver. 1.5.0-final#20151229-sha1:f1f8cda2
> >>> 2015 Copyright(C) Apache Software Foundation
> >>> 
> >>> Ignite documentation: http://ignite.apache.org
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Config URL: n/a
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Daemon mode: off
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: OS: Linux 3.13.0-74-generic amd64
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: OS user: maseev
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Language runtime: Java Platform API Specification ver. 1.8
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: VM information: Java(TM) SE Runtime Environment 1.8.0_40-b26 Oracle 
> Corporation Java HotSpot(TM) 64-Bit Server VM 25.40-b25
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: VM total memory: 3.5GB
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Remote Management [restart: off, REST: on, JMX (remote: off)]
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: IGNITE_HOME=null
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: VM arguments: 
> [-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51947,suspend=y,server=n,
>  -ea, -DIGNITE_QUIET=false, -Didea.junit.sm_runner, -Dfile.encoding=UTF-8]
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Configured caches ['ignite-marshaller-sys-cache', 'ignite-sys-cache', 
> 'ignite-atomics-sys-cache']
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger warning
> WARNING: Initial heap size is 250MB (should be no less than 512MB, use 
> -Xms512m -Xmx512m).
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Non-loopback local IPs: 172.17.0.1, 192.168.88.252, 
> fe80:0:0:0:42:2aff:feff:fe3d%docker0, fe80:0:0:0:f2de:f1ff:feb6:5301%eth0
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Enabled local MACs: 02422AFFFE3D, F0DEF1B65301
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Configured plugins:
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO:   ^-- None
> Jan 19, 2016 7:33:03 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: 
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: IPC shared memory server endpoint started [port=48103, 
> tokDir=/tmp/ignite/work/ipc/shmem/62396752-fb2f-4402-bff6-9f5f2d4fc0b3-8658]
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Successfully bound shared memory communication to TCP port [port=48103, 
> locHost=0.0.0.0/0.0.0.0]
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Successfully bound to TCP port [port=47103, locHost=0.0.0.0/0.0.0.0]
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
> WARNING: Checkpoints are disabled (to enable configure any GridCheckpointSpi 
> implementation)
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
> WARNING: Collision resolution is disabled (all jobs will be activated upon 
> arrival).
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger warning
> WARNING: Swap space is disabled. To enable use FileSwapSpaceSpi.
> Jan 19, 2016 7:33:04 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Security status [authentication=off, tls/ssl=off]
> Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Command protocol successfully started [name=TCP binary, 
> host=0.0.0.0/0.0.0.0, port=11214]
> Jan 19, 2016 7:33:05 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Successfully bound to TCP port [port=47503, localHost=0.0.0.0/0.0.0.0]
> Jan 19, 2016 7:33:13 PM org.apache.ignite.logger.java.JavaLogger info
> INFO: Your version is up to date.
> {code}
> And here's a simple 
> [test|https://github.com/maseev/ignite/blob/master/src/test/java/io/github/maseev/IgniteTest.java#L23]
>  which reproduces the problem. You can run it with maven by executing it with 
> {code}mvn test{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to