[jira] [Commented] (IGNITE-12833) JDBC thin client SELECT hangs under 2.8.0
[ https://issues.apache.org/jira/browse/IGNITE-12833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17110953#comment-17110953 ] Mikhail Petrov commented on IGNITE-12833: - [IGNITE-12579|https://issues.apache.org/jira/browse/IGNITE-12579] and [IGNITE-12759|https://issues.apache.org/jira/browse/IGNITE-12759] patches solve the described problem completely. > JDBC thin client SELECT hangs under 2.8.0 > - > > Key: IGNITE-12833 > URL: https://issues.apache.org/jira/browse/IGNITE-12833 > Project: Ignite > Issue Type: Bug > Components: jdbc, security >Affects Versions: 2.8 >Reporter: Veena Mithare >Priority: Blocker > Labels: iep-41 > Attachments: JdbcSelectHangsIn2.8.0Mail.txt > > > | > |When security is enabled, and an update or select sql is issued from > dbeaver, the security context in > class GridIOManager , > method -createGridIoMessage - > line - ctx.security().securityContext() returns the securitycontext of the > thin client. > The message generated out of createGridIoMessage is passed on to the next > node. > This is used in > class - IgniteSecurityProcessor > method - ( withContext) > line - ctx.discovery().node(uuid) > on the next node : > @Override public OperationSecurityContext withContext(UUID nodeId) > { return withContext( secCtxs.computeIfAbsent(nodeId, > > uuid -> nodeSecurityContext( marsh, > U.resolveClassLoader(ctx.config()), ctx.discovery().node(uuid) > ) ) ); } > The ctx.discovery().node(uuid) used to > determine the ClusterNode that is passed into nodeSecurityContext() returns > null, since the uuid is that of the remote client id not the remote node id. > Hence > class: SecurityUtils.java > method : nodeSecurityContext > line : byte[] subjBytes = > node.attribute(IgniteNodeAttributes.ATTR_SECURITY_SUBJECT_V2); > Throws null pointer exception since node is null. > Related ticket : > IGNITE-12579 > > Related discussion : > [http://apache-ignite-users.70518.x6.nabble.com/2-8-0-JDBC-Thin-Client-Unable-to-load-the-tables-via-DBeaver-td31681.html#a31847]| > | -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12833) JDBC thin client SELECT hangs under 2.8.0
[ https://issues.apache.org/jira/browse/IGNITE-12833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17085712#comment-17085712 ] Taras Ledkov commented on IGNITE-12833: --- Looks like the patch IGNITE-12759 must fix the issue. > JDBC thin client SELECT hangs under 2.8.0 > - > > Key: IGNITE-12833 > URL: https://issues.apache.org/jira/browse/IGNITE-12833 > Project: Ignite > Issue Type: Bug > Components: jdbc, security >Affects Versions: 2.8 >Reporter: Veena Mithare >Priority: Blocker > Labels: iep-41 > Attachments: JdbcSelectHangsIn2.8.0Mail.txt > > > | > |When security is enabled, and an update or select sql is issued from > dbeaver, the security context in > class GridIOManager , > method -createGridIoMessage - > line - ctx.security().securityContext() returns the securitycontext of the > thin client. > The message generated out of createGridIoMessage is passed on to the next > node. > This is used in > class - IgniteSecurityProcessor > method - ( withContext) > line - ctx.discovery().node(uuid) > on the next node : > @Override public OperationSecurityContext withContext(UUID nodeId) > { return withContext( secCtxs.computeIfAbsent(nodeId, > > uuid -> nodeSecurityContext( marsh, > U.resolveClassLoader(ctx.config()), ctx.discovery().node(uuid) > ) ) ); } > The ctx.discovery().node(uuid) used to > determine the ClusterNode that is passed into nodeSecurityContext() returns > null, since the uuid is that of the remote client id not the remote node id. > Hence > class: SecurityUtils.java > method : nodeSecurityContext > line : byte[] subjBytes = > node.attribute(IgniteNodeAttributes.ATTR_SECURITY_SUBJECT_V2); > Throws null pointer exception since node is null. > Related ticket : > IGNITE-12579 > > Related discussion : > [http://apache-ignite-users.70518.x6.nabble.com/2-8-0-JDBC-Thin-Client-Unable-to-load-the-tables-via-DBeaver-td31681.html#a31847]| > | -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12833) JDBC thin client SELECT hangs under 2.8.0
[ https://issues.apache.org/jira/browse/IGNITE-12833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066562#comment-17066562 ] Veena Mithare commented on IGNITE-12833: [^ConversationWithDenisOnSelectHangs.txt] HI Ilya, It is a blocker for 2.8.0 . We cannot use 2.8.0 because the selects/inserts on dbeaver hangs when security is enabled. It is easy to reproduce this. Please use a security enabled project, enable security and do a select on any table on dbeaver, the select hangs. I have given the details on why it hangs as well in the description of the ticket. I am also attaching a conversation I had with [~garus.d.g] , regards, Veena. > JDBC thin client SELECT hangs under 2.8.0 > - > > Key: IGNITE-12833 > URL: https://issues.apache.org/jira/browse/IGNITE-12833 > Project: Ignite > Issue Type: Bug > Components: security >Affects Versions: 2.8 >Reporter: Veena Mithare >Priority: Major > Labels: iep-41 > Attachments: JdbcSelectHangsIn2.8.0Mail.txt > > > | > |When security is enabled, and an update or select sql is issued from > dbeaver, the security context in > class GridIOManager , > method -createGridIoMessage - > line - ctx.security().securityContext() returns the securitycontext of the > thin client. > The message generated out of createGridIoMessage is passed on to the next > node. > This is used in > class - IgniteSecurityProcessor > method - ( withContext) > line - ctx.discovery().node(uuid) > on the next node : > @Override public OperationSecurityContext withContext(UUID nodeId) > { return withContext( secCtxs.computeIfAbsent(nodeId, > > uuid -> nodeSecurityContext( marsh, > U.resolveClassLoader(ctx.config()), ctx.discovery().node(uuid) > ) ) ); } > The ctx.discovery().node(uuid) used to > determine the ClusterNode that is passed into nodeSecurityContext() returns > null, since the uuid is that of the remote client id not the remote node id. > Hence > class: SecurityUtils.java > method : nodeSecurityContext > line : byte[] subjBytes = > node.attribute(IgniteNodeAttributes.ATTR_SECURITY_SUBJECT_V2); > Throws null pointer exception since node is null. > Related ticket : > IGNITE-12579 > > Related discussion : > [http://apache-ignite-users.70518.x6.nabble.com/2-8-0-JDBC-Thin-Client-Unable-to-load-the-tables-via-DBeaver-td31681.html#a31847]| > | -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12833) JDBC thin client SELECT hangs under 2.8.0
[ https://issues.apache.org/jira/browse/IGNITE-12833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066470#comment-17066470 ] Ilya Kasnacheev commented on IGNITE-12833: -- Is it a blocker for 2.8.1? Do you have a stand-alone reproducer? > JDBC thin client SELECT hangs under 2.8.0 > - > > Key: IGNITE-12833 > URL: https://issues.apache.org/jira/browse/IGNITE-12833 > Project: Ignite > Issue Type: Bug > Components: security >Affects Versions: 2.8 >Reporter: Veena Mithare >Priority: Major > Labels: iep-41 > > | > |When security is enabled, and an update or select sql is issued from > dbeaver, the security context in > class GridIOManager , > method -createGridIoMessage - > line - ctx.security().securityContext() returns the securitycontext of the > thin client. > The message generated out of createGridIoMessage is passed on to the next > node. > This is used in > class - IgniteSecurityProcessor > method - ( withContext) > line - ctx.discovery().node(uuid) > on the next node : > @Override public OperationSecurityContext withContext(UUID nodeId) > { return withContext( secCtxs.computeIfAbsent(nodeId, > > uuid -> nodeSecurityContext( marsh, > U.resolveClassLoader(ctx.config()), ctx.discovery().node(uuid) > ) ) ); } > The ctx.discovery().node(uuid) used to > determine the ClusterNode that is passed into nodeSecurityContext() returns > null, since the uuid is that of the remote client id not the remote node id. > Hence > class: SecurityUtils.java > method : nodeSecurityContext > line : byte[] subjBytes = > node.attribute(IgniteNodeAttributes.ATTR_SECURITY_SUBJECT_V2); > Throws null pointer exception since node is null. > Related ticket : > IGNITE-12579 > > Related discussion : > [http://apache-ignite-users.70518.x6.nabble.com/2-8-0-JDBC-Thin-Client-Unable-to-load-the-tables-via-DBeaver-td31681.html#a31847]| > | -- This message was sent by Atlassian Jira (v8.3.4#803005)