[jira] [Commented] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-11-20 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-11312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16979038#comment-16979038
 ] 

Lev Agafonov commented on IGNITE-11312:
---

[~Pavlukhin], thank you for review. I take another time and found tests which 
is testing that JDBC thin client parameters showld work without 'ignite.jdbc' 
prefix 
[https://github.com/apache/ignite/blob/master/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinConnectionSelfTest.java#L288]

So, I need some more time to investigate the issue.

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-10-04 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-11312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16944257#comment-16944257
 ] 

Lev Agafonov commented on IGNITE-11312:
---

[~isapego], could you please do a final review?

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-29 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16940650#comment-16940650
 ] 

Lev Agafonov commented on IGNITE-12032:
---

[~sboikov], could you please review my changes?

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Minor
>  Labels: newbie, usability
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-09-29 Thread Lev Agafonov (Jira)


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

Lev Agafonov reassigned IGNITE-11312:
-

Assignee: Lev Agafonov  (was: Suraj Singh)

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-25 Thread Lev Agafonov (Jira)


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

Lev Agafonov updated IGNITE-12032:
--
Issue Type: Improvement  (was: Bug)

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Minor
>  Labels: newbie, usability
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-09-25 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-11312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16937450#comment-16937450
 ] 

Lev Agafonov commented on IGNITE-11312:
---

[~surajsn], [~slukyanov]

Guys, if you don't object - I would like to pick up and resolve this ticket.

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Suraj Singh
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-09-24 Thread Lev Agafonov (Jira)


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

Lev Agafonov updated IGNITE-11312:
--
Fix Version/s: 2.8

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Suraj Singh
>Priority: Major
>  Labels: newbie
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-11312) JDBC: Thin driver doesn't reports incorrect property names

2019-09-24 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-11312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16936453#comment-16936453
 ] 

Lev Agafonov commented on IGNITE-11312:
---

Hello, Igniters!

I investigated the issue and prepared PR. Could you please assign this ticket 
on me?

> JDBC: Thin driver doesn't reports incorrect property names
> --
>
> Key: IGNITE-11312
> URL: https://issues.apache.org/jira/browse/IGNITE-11312
> Project: Ignite
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Stanislav Lukyanov
>Assignee: Suraj Singh
>Priority: Major
>  Labels: newbie
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> JDBC driver reports the properties it supports via getPropertyInfo method. It 
> currently reports the property names as simple strings, like 
> "enforceJoinOrder". However, when the properties are processed on connect 
> they are looked up with prefix "ignite.jdbc", e.g. 
> "ignite.jdbc.enforceJoinOrder".
> Because of this UI tools like DBeaver can't properly pass the properties to 
> Ignite. For example, when "enforceJoinOrder" is set to true in "Connection 
> settings" -> "Driver properties" menu of DBeaver it has no effect.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-17 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16931117#comment-16931117
 ] 

Lev Agafonov commented on IGNITE-12032:
---

[~isapego], [~dmagda] 

Hello, Igor! Yep, I'm new to Ignite and started contribute recently.

Let me make summary, I've already investigated on this ticket:
 # The root cause of this error is closing +network+ connection from user 
application side, using thin client without notifying server about closing 
+database+ connection itself. It's similar to finishing work with your personal 
computer by immediate disconnecting plug from socket :). In this case server 
doesn't expect that network connection is closed and we got WARN message from 
Ignite on server side: "_Closing NIO session because of unhandled exception_" 
and the IOException from Java itself.
 # The right way of finishing work with database connection is: 
resultset.close(); statement.close(), connection.close(). In case of this issue 
- `connection.close()` from user application side is enough to get things good.
 # As a solution I'd like to make WARN message (in class GridNioServer) more 
user-friendly, giving a clue for the most often reason what goes wrong and how 
it can be fixed, by changing current WARN message from "_Closing NIO session 
because of unhandled exception_" to "Client connection lost, make sure 
connection.close() called before closing database connection". If everything 
clear, and you don't object - I'd like to make a PR.

Thank you!

 

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Minor
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Updated] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-13 Thread Lev Agafonov (Jira)


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

Lev Agafonov updated IGNITE-12032:
--
Component/s: (was: odbc)
 thin client

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-12 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16929000#comment-16929000
 ] 

Lev Agafonov commented on IGNITE-12032:
---

[~dmagda], thank you. All this messages are shown on the server node side.

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Assigned] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-12 Thread Lev Agafonov (Jira)


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

Lev Agafonov reassigned IGNITE-12032:
-

Assignee: Lev Agafonov

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Assignee: Lev Agafonov
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-12 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16928286#comment-16928286
 ] 

Lev Agafonov commented on IGNITE-12032:
---

Denis, thank you for helping me :)

I go deeper and could also reproduce exactly same stack trace against JDBC thin 
client.

The test:
{code:java}
import java.sql._
import org.scalatest.{FunSuite, Matchers}

class JdbcTest extends FunSuite with Matchers {

  test("Jdbc incorrect session close test") {
val igniteHost = "*.*.*.*"
val ignitePort = "10800"

Class.forName("org.apache.ignite.IgniteJdbcThinDriver")
val t = new Thread() {
  override def run() = {
val conn = 
DriverManager.getConnection(s"jdbc:ignite:thin://${igniteHost}:${ignitePort}")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}{code}
The stack trace:

 
{code:java}
[12-Sep-2019 
09:18:13][ERROR][grid-nio-worker-client-listener-0-#29][ClientListenerProcessor]
 Failed to process selector key [ses=GridSelectorNioSessionImpl 
[worker=ByteBufferNioClientWorker [readBuf=java.nio.HeapByteBuffer[pos=0 
lim=8192 cap=8192], super=AbstractNioClientWorker [idx=0, bytesRcvd=0, 
bytesSent=0, bytesRcvd0=0, bytesSent0=0, select=true, super=GridWorker 
[name=grid-nio-worker-client-listener-0, igniteInstanceName=null, 
finished=false, heartbeatTs=1568269092688, hashCode=1630725146, 
interrupted=false, runner=grid-nio-worker-client-listener-0-#29]]], 
writeBuf=null, readBuf=null, inRecovery=null, outRecovery=null, 
closeSocket=true, super=GridNioSessionImpl [locAddr=/*.*.*.*:10800, 
rmtAddr=/*.*.*.*:59186, createTime=1568269092688, closeTime=0, bytesSent=0, 
bytesRcvd=0, bytesSent0=0, bytesRcvd0=0, sndSchedTime=1568269092688, 
lastSndTime=1568269092688, lastRcvTime=1568269092688, readsPaused=false, 
filterChain=FilterChain[filters=[GridNioAsyncNotifyFilter, GridNioCodecFilter 
[parser=ClientListenerBufferedParser, directMode=false]], accepted=true, 
markedForClose=false]]]
java.io.IOException: An existing connection was forcibly closed by the remote 
host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at 
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1120)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2407)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2174)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1815)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at java.lang.Thread.run(Thread.java:748)
[12-Sep-2019 09:18:13][WARN 
][grid-nio-worker-client-listener-0-#29][ClientListenerProcessor] Closing NIO 
session because of unhandled exception [cls=class 
o.a.i.i.util.nio.GridNioException, msg=An existing connection was forcibly 
closed by the remote host]
{code}
 

So, my suggestion that this kind of problem doesn't related to Odbc module, but 
to Core one.

If I do call conn.close() method - no errors are thrown in both JDBC and ODBC 
connections.

I think it will be good enough to make a small patch, making things more clear 
by changing current WARN message:

"Closing NIO session because of unhandled exception"

to something like 

"Network connection lost, closing NIO connection. Please, check database 
connection is closed in safe manner, by calling connection.close() method"

 

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, 

[jira] [Comment Edited] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-11 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16927441#comment-16927441
 ] 

Lev Agafonov edited comment on IGNITE-12032 at 9/11/19 10:01 AM:
-

Hello,

I investigated the issue, seems that exception is thrown from [this 
line|https://github.com/apache/ignite/blob/ignite-2.7.6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java#L2673]

I also was able to reproduce this stack trace with following test:

 
{code:java}
import java.sql._

import org.scalatest.{FunSuite, Matchers}

class OdbcTest extends FunSuite with Matchers {
  test("Odbc close connection") {
val dsn = "Ignite_srv"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
val t = new Thread() {
  override def run() = {
val conn = DriverManager.getConnection(s"jdbc:odbc:$dsn")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}
{code}
As you can see - there is commented 'conn.close()' in my test, and actually 
this produces error.

Of course, it absolutely normal to close database connection, but it should be 
done in proper way, by calling `close` connection method.

In my opinion throwing error on unexpectedly closed network connection - is 
correct. In case it changed to INFO,  the problem of loosing network connection 
will be hidden.

So, I suppose that problem should be fixed by correct closing database 
connection with adding `connection.close()` to client application, before 
"{color:#00}process using this thin clients is finished".{color}

 

 


was (Author: levagafonov):
Hello,

I investigated the issue, seems that exception is thrown from [this 
line|#L2673].]

I also was able to reproduce this stack trace with following test:

 
{code:java}
import java.sql._

import org.scalatest.{FunSuite, Matchers}

class OdbcTest extends FunSuite with Matchers {
  test("Odbc close connection") {
val dsn = "Ignite_srv"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
val t = new Thread() {
  override def run() = {
val conn = DriverManager.getConnection(s"jdbc:odbc:$dsn")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}
{code}
As you can see - there is commented 'conn.close()' in my test, and actually 
this produces error.

Of course, it absolutely normal to close database connection, but it should be 
done in proper way, by calling `close` connection method.

In my opinion throwing error on unexpectedly closed network connection - is 
correct. In case it changed to INFO,  the problem of loosing network connection 
will be hidden.

So, I suppose that problem should be fixed by correct closing database 
connection with `connection.close()` to client application, before 
"{color:#00}process using this thin clients is finished".{color}

 

 

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at 

[jira] [Comment Edited] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-11 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16927441#comment-16927441
 ] 

Lev Agafonov edited comment on IGNITE-12032 at 9/11/19 9:43 AM:


Hello,

I investigated the issue, seems that exception is thrown from [this 
line|#L2673].]

I also was able to reproduce this stack trace with following test:

 
{code:java}
import java.sql._

import org.scalatest.{FunSuite, Matchers}

class OdbcTest extends FunSuite with Matchers {
  test("Odbc close connection") {
val dsn = "Ignite_srv"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
val t = new Thread() {
  override def run() = {
val conn = DriverManager.getConnection(s"jdbc:odbc:$dsn")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}
{code}
As you can see - there is commented 'conn.close()' in my test, and actually 
this produces error.

Of course, it absolutely normal to close database connection, but it should be 
done in proper way, by calling `close` connection method.

In my opinion throwing error on unexpectedly closed network connection - is 
correct. In case it changed to INFO,  the problem of loosing network connection 
will be hidden.

So, I suppose that problem should be fixed by correct closing database 
connection with `connection.close()` to client application, before 
"{color:#00}process using this thin clients is finished".{color}

 

 


was (Author: levagafonov):
Hello,

I investigated the issue, seems that exception is thrown from [this 
line|[https://github.com/apache/ignite/blob/ignite-2.7.6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java#L2673].]

I also was able to reproduce this stack trace with following test:

 
{code:java}
import java.sql._

import org.scalatest.{FunSuite, Matchers}

class OdbcTest extends FunSuite with Matchers {
  test("Odbc close connection") {
val dsn = "Ignite_srv"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
val t = new Thread() {
  override def run() = {
val conn = DriverManager.getConnection(s"jdbc:odbc:$dsn")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}
{code}
As you can see - there is commented 'conn.close()' in my test, and actually 
this produces error.

 

Of course, it absolutely normal to close database connection, but it should be 
done in proper way, by calling `close` connection method.

In my opinion throwing error on unexpectedly closed network connection - is 
correct. In case it changed to INFO,  the problem of loosing network connection 
between thin client and will be hidden.

So, I suppose that problem should be fixed by correct closing database 
connection with `connection.close()` to client application, before 
"{color:#00}process using this thin clients is finished".{color}

 

 

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at 

[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-11 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16927441#comment-16927441
 ] 

Lev Agafonov commented on IGNITE-12032:
---

Hello,

I investigated the issue, seems that exception is thrown from [this 
line|[https://github.com/apache/ignite/blob/ignite-2.7.6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java#L2673].]

I also was able to reproduce this stack trace with following test:

 
{code:java}
import java.sql._

import org.scalatest.{FunSuite, Matchers}

class OdbcTest extends FunSuite with Matchers {
  test("Odbc close connection") {
val dsn = "Ignite_srv"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
val t = new Thread() {
  override def run() = {
val conn = DriverManager.getConnection(s"jdbc:odbc:$dsn")
//conn.close()
  }
}
t.start()
Thread.sleep(100)
t.interrupt()
  }
}
{code}
As you can see - there is commented 'conn.close()' in my test, and actually 
this produces error.

 

Of course, it absolutely normal to close database connection, but it should be 
done in proper way, by calling `close` connection method.

In my opinion throwing error on unexpectedly closed network connection - is 
correct. In case it changed to INFO,  the problem of loosing network connection 
between thin client and will be hidden.

So, I suppose that problem should be fixed by correct closing database 
connection with `connection.close()` to client application, before 
"{color:#00}process using this thin clients is finished".{color}

 

 

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Issue Comment Deleted] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-10 Thread Lev Agafonov (Jira)


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

Lev Agafonov updated IGNITE-12032:
--
Comment: was deleted

(was: Hello!

I'd like to work on this ticket. Could you please assign it to me?)

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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


[jira] [Commented] (IGNITE-12032) Server node prints exception when ODBC driver disconnects

2019-09-09 Thread Lev Agafonov (Jira)


[ 
https://issues.apache.org/jira/browse/IGNITE-12032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16925966#comment-16925966
 ] 

Lev Agafonov commented on IGNITE-12032:
---

Hello!

I'd like to work on this ticket. Could you please assign it to me?

> Server node prints exception when ODBC driver disconnects
> -
>
> Key: IGNITE-12032
> URL: https://issues.apache.org/jira/browse/IGNITE-12032
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc
>Affects Versions: 2.7.5
>Reporter: Evgenii Zhuravlev
>Priority: Major
>  Labels: newbie, usability
> Fix For: 2.8
>
>
> Whenever a process using ODBC clients is finished, it's printing in the 
> node logs this exception: 
> {code:java}
> *[07:45:19,559][SEVERE][grid-nio-worker-client-listener-1-#30][ClientListenerProcessor]
>  
> Failed to process selector key [s 
> es=GridSelectorNioSessionImpl [worker=ByteBufferNioClientWorker 
> [readBuf=java.nio.HeapByteBuffer[pos=0 lim=8192 cap=8192 
> ], super=AbstractNioClientWorker [idx=1, bytesRcvd=0, bytesSent=0, 
> bytesRcvd0=0, bytesSent0=0, select=true, super=GridWo 
> rker [name=grid-nio-worker-client-listener-1, igniteInstanceName=null, 
> finished=false, heartbeatTs=1564289118230, hashCo 
> de=1829856117, interrupted=false, 
> runner=grid-nio-worker-client-listener-1-#30]]], writeBuf=null, 
> readBuf=null, inRecove 
> ry=null, outRecovery=null, super=GridNioSessionImpl 
> [locAddr=/0:0:0:0:0:0:0:1:10800, rmtAddr=/0:0:0:0:0:0:0:1:63697, cre 
> ateTime=1564289116225, closeTime=0, bytesSent=1346, bytesRcvd=588, 
> bytesSent0=0, bytesRcvd0=0, sndSchedTime=156428911623 
> 5, lastSndTime=1564289116235, lastRcvTime=1564289116235, readsPaused=false, 
> filterChain=FilterChain[filters=[GridNioAsyn 
> cNotifyFilter, GridNioCodecFilter [parser=ClientListenerBufferedParser, 
> directMode=false]], accepted=true, markedForClos 
> e=false]]] 
> java.io.IOException: An existing connection was forcibly closed by the 
> remote host 
> at sun.nio.ch.SocketDispatcher.read0(Native Method) 
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
> at sun.nio.ch.IOUtil.read(IOUtil.java:197) 
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:11
>  
> 04) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNi
>  
> oServer.java:2389) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:215
>  
> 6) 
> at 
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1797)
>  
> at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) 
> at java.lang.Thread.run(Thread.java:748)* 
> {code}
> It's absolutely normal behavior when ODBC client disconnects from the node, 
> so, we shouldn't print exception in the log. We should replace it with 
> something like INFO message about ODBC client disconnection.
> Thread from user list: 
> http://apache-ignite-users.70518.x6.nabble.com/exceptions-in-Ignite-node-when-a-thin-client-process-ends-td28970.html



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