AH created IGNITE-12137:
---------------------------

             Summary: ODBC: Application hang when connecting to a starting 
single node
                 Key: IGNITE-12137
                 URL: https://issues.apache.org/jira/browse/IGNITE-12137
             Project: Ignite
          Issue Type: Bug
          Components: odbc
    Affects Versions: 2.7.5
         Environment: Windows 7
            Reporter: AH


If I repeatedly try to connect with ODBC before starting only one node, it will 
at one time connect but the first query causes my application to hang.
After reading that ODBC driver is not thread safe, I make sure to issue 
statement on one thread at a time and the behaviour is still the same.

+console output:+


D:\apache-ignite-2.7.5-bin\platforms\dotnet\bin>Apache.Ignite.exe
Sep 03, 2019 9:32:21 AM org.springframework.beans.factory.xml.XmlBeanDefinitionR
eader loadBeanDefinitions
INFO: Loading XML bean definitions from URL [file:/D:/apache-ignite-2.7.5-bin/co
nfig/default-config.xml]
Sep 03, 2019 9:32:21 AM org.springframework.context.support.AbstractApplicationC
ontext prepareRefresh
INFO: Refreshing org.springframework.context.support.GenericApplicationContext@2
7082746: startup date [Tue Sep 03 09:32:21 CEST 2019]; root of context hierarchy

[09:32:22] __________ ________________
[09:32:22] / _/ ___/ |/ / _/_ __/ __/
[09:32:22] _/ // (7 7 // / / / / _/
[09:32:22] /___/\___/_/|_/___/ /_/ /___/
[09:32:22]
[09:32:22] ver. 2.7.5#20190603-sha1:be4f2a15
[09:32:22] 2018 Copyright(C) Apache Software Foundation
[09:32:22]
[09:32:22] Ignite documentation: http://ignite.apache.org
[09:32:22]
[09:32:22] Quiet mode.
[09:32:22] ^-- Logging to file 'D:\apache-ignite-2.7.5-bin\work\log\ignite-413
535b7.0.log'
[09:32:22] ^-- Logging by 'JavaLogger [quiet=true, config=null]'
[09:32:22] ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-
v" to ignite.\{sh|bat}
[09:32:22]
[09:32:22] OS: Windows 7 6.1 amd64
[09:32:22] VM information: Java(TM) SE Runtime Environment 1.8.0_191-b12 Oracle
Corporation Java HotSpot(TM) 64-Bit Server VM 25.191-b12
[09:32:22] Please set system property '-Djava.net.preferIPv4Stack=true' to avoid
 possible problems in mixed environments.
[09:32:22] Initial heap size is 192MB (should be no less than 512MB, use -Xms512
m -Xmx512m).
[09:32:22] Configured plugins:
[09:32:22] ^-- None
[09:32:22]
[09:32:22] Configured failure handler: [hnd=StopNodeOrHaltFailureHandler [trySto
p=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WO
RKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]]]
[09:32:23] Message queue limit is set to 0 which may lead to potential OOMEs whe
n running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to message qu
eues growth on sender and receiver sides.
[09:32:23] Security status [authentication=off, tls/ssl=off]
[09:32:25,782][SEVERE][client-connector-#41][ClientListenerProcessor] Runtime er
ror caught during grid runnable execution: GridWorker [name=message-received-not
ify, igniteInstanceName=null, finished=false, heartbeatTs=1567495945774, hashCod
e=215381183, interrupted=false, runner=client-connector-#41]
java.lang.NullPointerException
 at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.
nextConnectionId(ClientListenerNioListener.java:306)
 at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.
prepareContext(ClientListenerNioListener.java:285)
 at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.
onHandshake(ClientListenerNioListener.java:223)
 at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.
onMessage(ClientListenerNioListener.java:129)
 at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.
onMessage(ClientListenerNioListener.java:45)
 at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onM
essageReceived(GridNioFilterChain.java:279)
 at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessa
geReceived(GridNioFilterAdapter.java:109)
 at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(G
ridNioAsyncNotifyFilter.java:97)
 at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java
:120)
 at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorke
rPool.java:70)
 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:748)
[09:32:37,140][SEVERE][exchange-worker-#48][GridCachePartitionExchangeManager] F
ailed to process custom exchange task: ClientCacheChangeDummyDiscoveryMessage [r
eqId=435a4891-cdd1-47a0-8d3b-5e5978392cf8, cachesToClose=null, startCaches=[Orga
nization]]
java.lang.NullPointerException
 at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManage
r.processClientCachesChanges(CacheAffinitySharedManager.java:635)
 at org.apache.ignite.internal.processors.cache.GridCacheProcessor.proces
sCustomExchangeTask(GridCacheProcessor.java:391)
 at org.apache.ignite.internal.processors.cache.GridCachePartitionExchang
eManager$ExchangeWorker.processCustomTask(GridCachePartitionExchangeManager.java
:2476)
 at org.apache.ignite.internal.processors.cache.GridCachePartitionExchang
eManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2621)
 at org.apache.ignite.internal.processors.cache.GridCachePartitionExchang
eManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2540)
 at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java
:120)
 at java.lang.Thread.run(Thread.java:748)
[09:32:37] Performance suggestions for grid (fix if possible)
[09:32:37] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true
[09:32:37] ^-- Enable G1 Garbage Collector (add '-XX:+UseG1GC' to JVM options)

[09:32:37] ^-- Specify JVM heap max size (add '-Xmx<size>[g|G|m|M|k|K]' to JVM
 options)
[09:32:37] ^-- Set max direct memory size if getting 'OOME: Direct buffer memo
ry' (add '-XX:MaxDirectMemorySize=<size>[g|G|m|M|k|K]' to JVM options)
[09:32:37] ^-- Disable processing of calls to System.gc() (add '-XX:+DisableEx
plicitGC' to JVM options)
[09:32:37] ^-- Enable ATOMIC mode if not using transactions (set 'atomicityMod
e' to ATOMIC)
[09:32:37] ^-- Disable fully synchronous writes (set 'writeSynchronizationMode
' to PRIMARY_SYNC or FULL_ASYNC)
[09:32:37] Refer to this page for more performance suggestions: https://apacheig
nite.readme.io/docs/jvm-and-system-tuning
[09:32:37]
[09:32:37] To start Console Management & Monitoring run ignitevisorcmd.\{sh|bat}
[09:32:37] Data Regions Configured:
[09:32:37] ^-- default [initSize=256.0 MiB, maxSize=2.4 GiB, persistence=false
]
[09:32:37]
[09:32:37] Ignite node started OK (id=413535b7)
[09:32:37] Topology snapshot [ver=1, locNode=413535b7, servers=1, clients=0, sta
te=ACTIVE, CPUs=4, offheap=2.4GB, heap=2.6GB]

+Windbg output:+


0:000> k
ChildEBP RetAddr 
WARNING: Stack unwind information not available. Following frames may be wrong.
0018e758 74cc6d20 ntdll!NtWaitForSingleObject+0x15
0018e844 7575673e mswsock+0x6d20
0018e8c4 59ad5a3a WS2_32!select+0x9f
0018e9fc 59ad5018 
ignite_odbc!ignite::odbc::system::TcpSocketClient::WaitOnSocket+0x5a 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\os\win\src\system\tcp_socket_client.cpp
 @ 434]
0018ea14 59aeff41 
ignite_odbc!ignite::odbc::system::TcpSocketClient::Receive+0x18 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\os\win\src\system\tcp_socket_client.cpp
 @ 256]
0018eae0 59aefdb0 ignite_odbc!ignite::odbc::Connection::ReceiveAll+0x61 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\connection.cpp @ 354]
0018eb90 59af1c14 ignite_odbc!ignite::odbc::Connection::Receive+0xb0 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\connection.cpp @ 311]
0018ebcc 59b045a5 
ignite_odbc!ignite::odbc::Connection::SyncMessage<ignite::odbc::QueryExecuteRequest,ignite::odbc::QueryExecuteResponse>+0x94
 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\include\ignite\odbc\connection.h 
@ 219]
0018ed64 59b03fa4 
ignite_odbc!ignite::odbc::query::DataQuery::MakeRequestExecute+0x105 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\query\data_query.cpp @ 230]
0018ed70 59b149ce ignite_odbc!ignite::odbc::query::DataQuery::Execute+0x14 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\query\data_query.cpp @ 58]
0018edc8 59b146f5 
ignite_odbc!ignite::odbc::Statement::InternalExecuteSqlQuery+0x21e 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\statement.cpp @ 705]
0018ede4 59afc83f ignite_odbc!ignite::odbc::Statement::ExecuteSqlQuery+0x75 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\statement.cpp @ 635]
0018ef5c 59af5743 ignite_odbc!ignite::SQLExecDirect+0x1ef 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\odbc.cpp @ 399]
0018ef6c 696ae3a4 ignite_odbc!SQLExecDirect+0x13 
[d:\apache-ignite-2.7.5-bin\platforms\cpp\odbc\src\entry_points.cpp @ 121]
0018ef90 6969e3dc ODBC32!SQLSetEnvAttr+0xa614
0018efb8 005123e0 ODBC32!SQLExecDirectA+0xa1



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to