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)