[jira] (IGNITE-22865) NPE is swallowed in entrails of mapToPublicException

2024-10-03 Thread Igor Sapego (Jira)


[ https://issues.apache.org/jira/browse/IGNITE-22865 ]


Igor Sapego deleted comment on IGNITE-22865:
--

was (Author: isapego):
That is not a bug actually, it was initially decided that we will only send a 
single cause to the client and not the whole chain. Let's discuss it again.

> NPE is swallowed in entrails of mapToPublicException
> 
>
> Key: IGNITE-22865
> URL: https://issues.apache.org/jira/browse/IGNITE-22865
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 3.0.0-beta1
>Reporter: Evgeny Stanilovsky
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> NPE raised in internal implementation is not visible in final upper 
> exception, internal stack trace from log (probably it`s client side problem):
> {noformat}
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$convertToPublicFuture$0(TransactionsExceptionMapperUtil.java:51)
>  ~[main/:?]
>   at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>  [?:?]
>   ...
> Caused by: org.apache.ignite.tx.TransactionException
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$mapToPublicTransactionException$1(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.mapToPublicTransactionException(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   ... 31 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$prepareFinish$10(TxManagerImpl.java:597)
>  ~[main/:?]
> {noformat}
> final (test raised, client side) exception looks like:
> {noformat}
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
>   at 
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
>   at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
>   at 
> org.apache.ignite.internal.client.tx.ClientTransaction.commit(ClientTransaction.java:95)
>   at 
> org.apache.ignite.internal.client.tx.ClientLazyTransaction.commit(ClientLazyTransaction.java:53)
>   at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test0(ItIgniteNodeRestartTest.java:1168)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> {noformat}
> thus no NPE mention is found here.
> fast reproducer :
> {noformat}
> @Test
> public void test01() {
> startNodes(1);
> IgniteClient igniteClient = 
> IgniteClient.builder().addresses("127.0.0.1:10800").build();
> igniteClient.sql().execute(null, "create table t0(id int primary key, 
> val int)");
> Transaction tx = igniteClient.transactions().begin();
> ResultSet res = igniteClient.sql().execute(tx, "select * from 
> t0");
> res.hasNext();
> tx.commit();
> }
> {noformat}
> and change DistributedQueryManager#enlistPartitions change enlist 
> implementation on IgniteRelShuttle anonymous class like :
> {noformat}
> tx.enlist(tableP

[jira] [Commented] (IGNITE-22865) NPE is swallowed in entrails of mapToPublicException

2024-10-03 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22865:
--

The feature is actually available. One have to set 
`clientConnector.sendServerExceptionStackTraceToClient=true` to see a full 
stack-trace on the client side. It's set to `false` by default due to security 
considerations.

> NPE is swallowed in entrails of mapToPublicException
> 
>
> Key: IGNITE-22865
> URL: https://issues.apache.org/jira/browse/IGNITE-22865
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 3.0.0-beta1
>Reporter: Evgeny Stanilovsky
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> NPE raised in internal implementation is not visible in final upper 
> exception, internal stack trace from log (probably it`s client side problem):
> {noformat}
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$convertToPublicFuture$0(TransactionsExceptionMapperUtil.java:51)
>  ~[main/:?]
>   at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>  [?:?]
>   ...
> Caused by: org.apache.ignite.tx.TransactionException
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$mapToPublicTransactionException$1(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.mapToPublicTransactionException(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   ... 31 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$prepareFinish$10(TxManagerImpl.java:597)
>  ~[main/:?]
> {noformat}
> final (test raised, client side) exception looks like:
> {noformat}
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
>   at 
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
>   at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
>   at 
> org.apache.ignite.internal.client.tx.ClientTransaction.commit(ClientTransaction.java:95)
>   at 
> org.apache.ignite.internal.client.tx.ClientLazyTransaction.commit(ClientLazyTransaction.java:53)
>   at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test0(ItIgniteNodeRestartTest.java:1168)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> {noformat}
> thus no NPE mention is found here.
> fast reproducer :
> {noformat}
> @Test
> public void test01() {
> startNodes(1);
> IgniteClient igniteClient = 
> IgniteClient.builder().addresses("127.0.0.1:10800").build();
> igniteClient.sql().execute(null, "create table t0(id int primary key, 
> val int)");
> Transaction tx = igniteClient.transactions().begin();
> ResultSet res = igniteClient.sql().execute(tx, "select * from 
> t0");
> res.hasNext();
> tx.commit();
> }
> {noformat}
> and change DistributedQueryManager#

[jira] [Comment Edited] (IGNITE-22865) NPE is swallowed in entrails of mapToPublicException

2024-10-03 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-22865 at 10/3/24 10:02 AM:


The feature is actually available. One have to set 
{{clientConnector.sendServerExceptionStackTraceToClient=true}} to see a full 
stack-trace on the client side. It's set to {{false}} by default due to 
security considerations.


was (Author: isapego):
The feature is actually available. One have to set 
`clientConnector.sendServerExceptionStackTraceToClient=true` to see a full 
stack-trace on the client side. It's set to `false` by default due to security 
considerations.

> NPE is swallowed in entrails of mapToPublicException
> 
>
> Key: IGNITE-22865
> URL: https://issues.apache.org/jira/browse/IGNITE-22865
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 3.0.0-beta1
>Reporter: Evgeny Stanilovsky
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> NPE raised in internal implementation is not visible in final upper 
> exception, internal stack trace from log (probably it`s client side problem):
> {noformat}
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$convertToPublicFuture$0(TransactionsExceptionMapperUtil.java:51)
>  ~[main/:?]
>   at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>  [?:?]
>   ...
> Caused by: org.apache.ignite.tx.TransactionException
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$mapToPublicTransactionException$1(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.mapToPublicTransactionException(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   ... 31 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$prepareFinish$10(TxManagerImpl.java:597)
>  ~[main/:?]
> {noformat}
> final (test raised, client side) exception looks like:
> {noformat}
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
>   at 
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
>   at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
>   at 
> org.apache.ignite.internal.client.tx.ClientTransaction.commit(ClientTransaction.java:95)
>   at 
> org.apache.ignite.internal.client.tx.ClientLazyTransaction.commit(ClientLazyTransaction.java:53)
>   at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test0(ItIgniteNodeRestartTest.java:1168)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> {noformat}
> thus no NPE mention is found here.
> fast reproducer :
> {noformat}
> @Test
> public void test01() {
> startNodes(1);
> IgniteClient igniteClient = 
> IgniteClient.builder().addresses("127.0.0.1:10800").build();
> igniteClient.sql().execute(null,

[jira] [Updated] (IGNITE-23218) DB API Driver 3: Improve the error raising

2024-10-01 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23218:
-
Reviewer:   (was: Pavel Tupitsyn)

> DB API Driver 3: Improve the error raising
> --
>
> Key: IGNITE-23218
> URL: https://issues.apache.org/jira/browse/IGNITE-23218
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> Currently, in most places of our Driver, we just set PyExc_RuntimeError when 
> error is occurred,  no matter what is the error. PEP 249 however [mandates a 
> number of exception types|https://peps.python.org/pep-0249/#exceptions] to be 
> used in different cases. Make sure we use proper error types.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (IGNITE-23218) DB API Driver 3: Improve the error raising

2024-10-01 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-23218 at 10/1/24 7:59 AM:
---

Ready for review.


was (Author: isapego):
Ready for review. [~ptupitsyn], take a look please.

> DB API Driver 3: Improve the error raising
> --
>
> Key: IGNITE-23218
> URL: https://issues.apache.org/jira/browse/IGNITE-23218
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> Currently, in most places of our Driver, we just set PyExc_RuntimeError when 
> error is occurred,  no matter what is the error. PEP 249 however [mandates a 
> number of exception types|https://peps.python.org/pep-0249/#exceptions] to be 
> used in different cases. Make sure we use proper error types.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22865) NPE is swallowed in entrails of mapToPublicException

2024-10-01 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22865:
--

That is not a bug actually, it was initially decided that we will only send a 
single cause to the client and not the whole chain. Let's discuss it again.

> NPE is swallowed in entrails of mapToPublicException
> 
>
> Key: IGNITE-22865
> URL: https://issues.apache.org/jira/browse/IGNITE-22865
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 3.0.0-beta1
>Reporter: Evgeny Stanilovsky
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> NPE raised in internal implementation is not visible in final upper 
> exception, internal stack trace from log (probably it`s client side problem):
> {noformat}
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$convertToPublicFuture$0(TransactionsExceptionMapperUtil.java:51)
>  ~[main/:?]
>   at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>  [?:?]
>   ...
> Caused by: org.apache.ignite.tx.TransactionException
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$mapToPublicTransactionException$1(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.mapToPublicTransactionException(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   ... 31 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$prepareFinish$10(TxManagerImpl.java:597)
>  ~[main/:?]
> {noformat}
> final (test raised, client side) exception looks like:
> {noformat}
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
>   at 
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
>   at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
>   at 
> org.apache.ignite.internal.client.tx.ClientTransaction.commit(ClientTransaction.java:95)
>   at 
> org.apache.ignite.internal.client.tx.ClientLazyTransaction.commit(ClientLazyTransaction.java:53)
>   at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test0(ItIgniteNodeRestartTest.java:1168)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> {noformat}
> thus no NPE mention is found here.
> fast reproducer :
> {noformat}
> @Test
> public void test01() {
> startNodes(1);
> IgniteClient igniteClient = 
> IgniteClient.builder().addresses("127.0.0.1:10800").build();
> igniteClient.sql().execute(null, "create table t0(id int primary key, 
> val int)");
> Transaction tx = igniteClient.transactions().begin();
> ResultSet res = igniteClient.sql().execute(tx, "select * from 
> t0");
> res.hasNext();
> tx.commit();
> }
> {noformat}
> and change DistributedQueryManager#enlistPartitions change enlist 
> implementation on IgniteRelShuttle 

[jira] [Commented] (IGNITE-23262) Thin 3.0: Cache table partition count

2024-09-24 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23262:
--

Looks good to me.

> Thin 3.0: Cache table partition count
> -
>
> Key: IGNITE-23262
> URL: https://issues.apache.org/jira/browse/IGNITE-23262
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> * Partition count can't change for an existing table
> * Features like Data Streamer need partition count to initialize 
> per-partition buffers
> Currently, we retrieve full partition assignment while we only need the 
> count, which delays streamer readiness and causes unnecessary network 
> requests.
> Cache partition count to speed up streamer initialization.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-23133) Java thin 3.0: Flaky NPE in TcpClientChannel.handshakeRes

2024-09-19 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23133:
--

Looks good to me.

> Java thin 3.0: Flaky NPE in TcpClientChannel.handshakeRes
> -
>
> Key: IGNITE-23133
> URL: https://issues.apache.org/jira/browse/IGNITE-23133
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> {code}
>  
> [2024-09-03T09:13:45,181][ERROR][ForkJoinPool.commonPool-worker-3][TcpClientChannel]
>  Failed to deserialize server response [remoteAddress=127.0.0.1:10801]: null
>   java.lang.NullPointerException: null
> at 
> org.apache.ignite.internal.client.TcpClientChannel.handshakeRes(TcpClientChannel.java:663)
>  ~[ignite-client-3.0.0-SNAPSHOT.jar:?]
> at 
> org.apache.ignite.internal.client.TcpClientChannel.lambda$handshakeAsync$5(TcpClientChannel.java:585)
>  ~[ignite-client-3.0.0-SNAPSHOT.jar:?]
> at 
> org.apache.ignite.internal.client.TcpClientChannel.complete(TcpClientChannel.java:407)
>  ~[ignite-client-3.0.0-SNAPSHOT.jar:?]
> at 
> org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:424)
>  ~[ignite-client-3.0.0-SNAPSHOT.jar:?]
> at 
> org.apache.ignite.internal.client.TcpClientChannel.lambda$onMessage$3(TcpClientChannel.java:276)
>  ~[ignite-client-3.0.0-SNAPSHOT.jar:?]
> at 
> java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
>  [?:?]
> at 
> java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) 
> [?:?]
> at 
> java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
>  [?:?]
> at 
> java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
> at 
> java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) 
> [?:?]
> at 
> java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
>  [?:?]
> {code}
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_IntegrationTests_ModuleRunner/8446381?hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildDeploymentsSection=false&expandBuildProblemsSection=true&expandBuildChangesSection=true
> Looks like *sock.remoteAddress()* can return null.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-23157) NPE in ClientBinaryTupleUtils.appendValue on unknown type

2024-09-18 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23157:
--

Looks good to me.

> NPE in ClientBinaryTupleUtils.appendValue on unknown type
> -
>
> Key: IGNITE-23157
> URL: https://issues.apache.org/jira/browse/IGNITE-23157
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> If the user tries to upsert a tuple with an unsupported object inside, and 
> assertions are disabled, we get an NPE instead of a sensible exception.
> {code}
> var table = defaultTable().recordView();
> var tuple = Tuple.create()
> .set("id", DEFAULT_ID)
> .set("name", new ArrayList());
> table.upsert(null, tuple);
> {code}
> {code}
> java.lang.NullPointerException: null
>   at 
> org.apache.ignite.internal.client.proto.ClientBinaryTupleUtils.appendValue(ClientBinaryTupleUtils.java:444)
>  ~[ignite-client-common-9.0.127-SNAPSHOT.jar:?]
>   at 
> org.apache.ignite.internal.client.table.ClientTupleSerializer.appendValue(ClientTupleSerializer.java:412)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.client.table.ClientTupleSerializer.writeTupleRaw(ClientTupleSerializer.java:147)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.client.table.ClientTupleSerializer.writeTuple(ClientTupleSerializer.java:121)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.client.table.ClientTupleSerializer.writeTuple(ClientTupleSerializer.java:77)
>  ~[main/:?]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22745) DB API Driver 3: Provide wider data types support

2024-09-17 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22745:
--

[~ptupitsyn], thanks! Fixed comments, can you take another look?

> DB API Driver 3: Provide wider data types support
> -
>
> Key: IGNITE-22745
> URL: https://issues.apache.org/jira/browse/IGNITE-22745
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Let's make sure that we support all data types (stated in the epic), and type 
> conversation functions and constructors: 
> https://peps.python.org/pep-0249/#type-objects-and-constructors



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-23218) DB API Driver 3: Improve the error raising

2024-09-17 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23218:
-
Summary: DB API Driver 3: Improve the error raising  (was: DB API Driver 3: 
Improve the error handling)

> DB API Driver 3: Improve the error raising
> --
>
> Key: IGNITE-23218
> URL: https://issues.apache.org/jira/browse/IGNITE-23218
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>
> Currently, in most places of our Driver, we just set PyExc_RuntimeError when 
> error is occurred,  no matter what is the error. PEP 249 however [mandates a 
> number of exception types|https://peps.python.org/pep-0249/#exceptions] to be 
> used in different cases. Make sure we use proper error types.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-23218) DB API Driver 3: Improve the error handling

2024-09-17 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-23218:


 Summary: DB API Driver 3: Improve the error handling
 Key: IGNITE-23218
 URL: https://issues.apache.org/jira/browse/IGNITE-23218
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python
Reporter: Igor Sapego
Assignee: Igor Sapego


Currently, in most places of our Driver, we just set PyExc_RuntimeError when 
error is occurred,  no matter what is the error. PEP 249 however [mandates a 
number of exception types|https://peps.python.org/pep-0249/#exceptions] to be 
used in different cases. Make sure we use proper error types.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-23217) DB API Driver 3: Add support for PERIOD data type

2024-09-17 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-23217:


 Summary: DB API Driver 3: Add support for PERIOD data type
 Key: IGNITE-23217
 URL: https://issues.apache.org/jira/browse/IGNITE-23217
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python
Reporter: Igor Sapego
Assignee: Igor Sapego


Currently, PERIOD data type is not supported by the DB API Driver, because 
there is no matching type on Python's side to use for it. Need to investigate 
this and either choose some library or add our own implementation of this type 
in Python.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (IGNITE-22745) DB API Driver 3: Provide wider data types support

2024-09-16 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-22745 at 9/17/24 12:51 AM:


Ready for review. [~ptupitsyn], can you take a look, please?


was (Author: isapego):
Ready for review.

> DB API Driver 3: Provide wider data types support
> -
>
> Key: IGNITE-22745
> URL: https://issues.apache.org/jira/browse/IGNITE-22745
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Let's make sure that we support all data types (stated in the epic), and type 
> conversation functions and constructors: 
> https://peps.python.org/pep-0249/#type-objects-and-constructors



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22719) Python DB API Driver 3.0

2024-09-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22719:
-
Description: 
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|Timestamp(float)|
|UUID|STRING|uuid.UUID|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|???|
|DURATION|DATETIME|datetime.timedelta|




  was:
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|???|
|DURATION|DATETIME|datetime.timedelta|





> Python DB API Driver 3.0
> 
>
> Key: IGNITE-22719
> URL: https://issues.apache.org/jira/browse/IGNITE-22719
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> h3. Requirements
> * The implementation of the Python DB API or the Driver should be implemented 
> using Python 3;
> * The Driver should comply with Python DB-API 2.

[jira] [Created] (IGNITE-23214) Can not use DURATION parameters in select queries

2024-09-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-23214:


 Summary: Can not use DURATION parameters in select queries
 Key: IGNITE-23214
 URL: https://issues.apache.org/jira/browse/IGNITE-23214
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Igor Sapego


An SQL query to reproduce:
{code:sql}
SELECT ?
{code}
With a DURATION type parameter.


Exception:
{noformat}
Error processing client request [connectionId=375, id=0, op=50, 
remoteAddress=/192.168.1.133:61204]:org.apache.ignite.sql.SqlException: 
IGN-CMN-65535 TraceId:2a5ea9c9-e5e2-4edb-8cd7-d943cbb266d9
 java.util.concurrent.CompletionException: org.apache.ignite.sql.SqlException: 
IGN-CMN-65535 TraceId:2a5ea9c9-e5e2-4edb-8cd7-d943cbb266d9
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.lambda$executeAsync$4(ClientSqlExecuteRequest.java:184)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986)
 [?:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniExceptionallyStage(CompletableFuture.java:1004)
 [?:?]
at 
java.base/java.util.concurrent.CompletableFuture.exceptionally(CompletableFuture.java:2309)
 [?:?]
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.executeAsync(ClientSqlExecuteRequest.java:181)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.process(ClientSqlExecuteRequest.java:89)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:797)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:605)
 [ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.channelRead(ClientInboundMessageHandler.java:330)
 [ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
 [netty-codec-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
 [netty-codec-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
 [netty-handler-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.nio.NioEven

[jira] [Updated] (IGNITE-23214) Can not use DURATION parameters in select queries

2024-09-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23214:
-
Description: 
An SQL query to reproduce:
{code:sql}
SELECT ?
{code}
With a DURATION type parameter.


Exception:
{noformat}
...
Caused by: java.lang.NullPointerException
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.tryCreateCacheKeyFromParameterValues(PrepareServiceImpl.java:674)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.getPlanIfParameterHaveValues(PrepareServiceImpl.java:630)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.prepareQuery(PrepareServiceImpl.java:339)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.prepareAsync0(PrepareServiceImpl.java:264)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.prepareAsync(PrepareServiceImpl.java:248)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.lambda$executeParsedStatement$14(SqlQueryProcessor.java:603)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
 ~[?:?]
at 
java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2237)
 ~[?:?]
at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.executeParsedStatement(SqlQueryProcessor.java:603)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.lambda$querySingle$8(SqlQueryProcessor.java:529)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
 ~[?:?]
at 
java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2237)
 ~[?:?]
at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.querySingle(SqlQueryProcessor.java:512)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.queryAsync(SqlQueryProcessor.java:433)
 ~[ignite-sql-engine-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.executeAsync(ClientSqlExecuteRequest.java:169)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
... 29 more
{noformat}


  was:
An SQL query to reproduce:
{code:sql}
SELECT ?
{code}
With a DURATION type parameter.


Exception:
{noformat}
Error processing client request [connectionId=375, id=0, op=50, 
remoteAddress=/192.168.1.133:61204]:org.apache.ignite.sql.SqlException: 
IGN-CMN-65535 TraceId:2a5ea9c9-e5e2-4edb-8cd7-d943cbb266d9
 java.util.concurrent.CompletionException: org.apache.ignite.sql.SqlException: 
IGN-CMN-65535 TraceId:2a5ea9c9-e5e2-4edb-8cd7-d943cbb266d9
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.lambda$executeAsync$4(ClientSqlExecuteRequest.java:184)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986)
 [?:?]
at 
java.base/java.util.concurrent.CompletableFuture.uniExceptionallyStage(CompletableFuture.java:1004)
 [?:?]
at 
java.base/java.util.concurrent.CompletableFuture.exceptionally(CompletableFuture.java:2309)
 [?:?]
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.executeAsync(ClientSqlExecuteRequest.java:181)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.process(ClientSqlExecuteRequest.java:89)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:797)
 ~[ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:605)
 [ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.channelRead(ClientInboundMessageHandler.java:330)
 [ignite-client-handler-3.0.0-SNAPSHOT.jar:?]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
 [netty-transport-4.1.113.Final.jar:4.1.113.Final]
at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
 [netty-transport-4.1.113.F

[jira] [Commented] (IGNITE-23204) .NET: TestCastToDecimalPrecision causes other tests to fail

2024-09-13 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23204:
--

Looks good to me

> .NET: TestCastToDecimalPrecision causes other tests to fail
> ---
>
> Key: IGNITE-23204
> URL: https://issues.apache.org/jira/browse/IGNITE-23204
> Project: Ignite
>  Issue Type: Bug
>  Components: .NET, platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Timeout was increased in IGNITE-23177, but expensive decimal conversion (due 
> to IGNITE-23170) blocks system threads and causes other tests to fail.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22719) Python DB API Driver 3.0

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22719:
-
Description: 
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|???|
|DURATION|DATETIME|datetime.timedelta|




  was:
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|datetime.timedelta|
|DURATION|DATETIME|datetime.timedelta|





> Python DB API Driver 3.0
> 
>
> Key: IGNITE-22719
> URL: https://issues.apache.org/jira/browse/IGNITE-22719
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> h3. Requirements
> * The implementation of the Python DB API or the Driver should be implemented 
> using Python 3;
> * The Driver should comply with 

[jira] [Comment Edited] (IGNITE-23177) .NET: Thin 3.0: TestCastToDecimalPrecision is flaky - exceeds 15 seconds

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-23177 at 9/12/24 1:07 PM:
---

Looks good to me.


was (Author: isapego):
Looks goof to me.

> .NET: Thin 3.0: TestCastToDecimalPrecision is flaky - exceeds 15 seconds
> 
>
> Key: IGNITE-23177
> URL: https://issues.apache.org/jira/browse/IGNITE-23177
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Caused by IGNITE-21743 and IGNITE-23170 - decimal handling performance issues.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-23177) .NET: Thin 3.0: TestCastToDecimalPrecision is flaky - exceeds 15 seconds

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23177:
--

Looks goof to me.

> .NET: Thin 3.0: TestCastToDecimalPrecision is flaky - exceeds 15 seconds
> 
>
> Key: IGNITE-23177
> URL: https://issues.apache.org/jira/browse/IGNITE-23177
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Caused by IGNITE-21743 and IGNITE-23170 - decimal handling performance issues.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22719) Python DB API Driver 3.0

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22719:
--

Update: removed NUMBER and BITMASK from the table, as they are not supported 
anymore: IGNITE-22283

> Python DB API Driver 3.0
> 
>
> Key: IGNITE-22719
> URL: https://issues.apache.org/jira/browse/IGNITE-22719
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> h3. Requirements
> * The implementation of the Python DB API or the Driver should be implemented 
> using Python 3;
> * The Driver should comply with Python DB-API 2.0: 
> https://peps.python.org/pep-0249/;
> * Performance of the Driver should be similar to the performance of other 
> clients and drivers, e.g. JDBC;
> * The first implementation should be as simple as possible, but it should be 
> functional and allow for improvements in future;
> * Preferably the Driver should be designed in such a way that makes it 
> possible in the future to extend Driver’s API and turn it into a full-fledged 
> Python Client.
> h4. Code Reuse
> It is proposed to re-use the protocol part, which is currently used by ODBC 
> and JDBC drivers. Its functionality should be more than enough for 
> implementation of the Driver, as the DB API is much simpler than both JDBC 
> and ODBC.
> It is also proposed to re-use C++ code for data packing-unpacking (protocol 
> messages, binary tuples).
> It’s important to point out that in most of the implementations of such 
> drivers, C/C++ code is duplicated in Python, but the first implementation of 
> our Driver won’t include duplication of C++ code for the sake of simplicity. 
> This means, if the user won’t be able to compile our C++ code on their 
> platform for any reason, they won’t be able to use our Driver.
> h4. Type Mapping
> The implementation of the specification is pretty straightforward and there 
> is no need to discuss implementation of methods in detail. The only part that 
> should probably be discussed is a data type mapping.
> The following type mapping is suggested for the Driver:
> ||Ignite Type||DB API Type||Python Type||
> |NIL|None|None|
> |BOOLEAN|NUMBER|bool|
> |INT8|NUMBER|int|
> |INT16|NUMBER|int|
> |INT32|NUMBER|int|
> |INT64|NUMBER|int|
> |FLOAT|NUMBER|float|
> |DOUBLE|NUMBER|float|
> |DECIMAL|NUMBER|decimal.Decimal|
> |DATE|DATETIME|datetime.date|
> |TIME|DATETIME|datetime.time|
> |DATETIME|DATETIME|datetime.datetime|
> |TIMESTAMP|NUMBER|datetime.datetime|
> |UUID|STRING|uuid.UUID|
> |BITMASK|NUMBER|int|
> |STRING|STRING|str|
> |BYTE_ARRAY|BINARY|bytes|
> |PERIOD|DATETIME|datetime.timedelta|
> |DURATION|DATETIME|datetime.timedelta|
> |NUMBER|NUMBER|decimal.Decimal|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22719) Python DB API Driver 3.0

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22719:
-
Description: 
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|datetime.timedelta|
|DURATION|DATETIME|datetime.timedelta|




  was:
h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|BITMASK|NUMBER|int|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|datetime.timedelta|
|DURATION|DATETIME|datetime.timedelta|
|NUMBER|NUMBER|decimal.Decimal|




> Python DB API Driver 3.0
> 
>
> Key: IGNITE-22719
> URL: https://issues.apache.org/jira/browse/IGNITE-22719
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> h3. Requirements
> * The implementation of the Python DB API or the Driver should b

[jira] [Updated] (IGNITE-22857) C++ 3.0: Delete unsupported column types NUMBER and BITMASK

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22857:
-
Component/s: platforms
 thin client

> C++ 3.0: Delete unsupported column types NUMBER and BITMASK
> ---
>
> Key: IGNITE-22857
> URL: https://issues.apache.org/jira/browse/IGNITE-22857
> Project: Ignite
>  Issue Type: Improvement
>  Components: odbc, platforms, thin client
>Reporter: Maksim Zhuravkov
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> Number and Bitmask types are not supported by the server and should be 
> removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-22857) C++ 3.0: Delete unsupported column types NUMBER and BITMASK

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego reassigned IGNITE-22857:


Assignee: Igor Sapego

> C++ 3.0: Delete unsupported column types NUMBER and BITMASK
> ---
>
> Key: IGNITE-22857
> URL: https://issues.apache.org/jira/browse/IGNITE-22857
> Project: Ignite
>  Issue Type: Improvement
>  Components: odbc
>Reporter: Maksim Zhuravkov
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> Number and Bitmask types are not supported by the server and should be 
> removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22857) C++ 3.0: Delete unsupported column types NUMBER and BITMASK

2024-09-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22857:
-
Summary: C++ 3.0: Delete unsupported column types NUMBER and BITMASK  (was: 
ODBC 3.0: Delete unsupported column types NUMBER and BITMASK)

> C++ 3.0: Delete unsupported column types NUMBER and BITMASK
> ---
>
> Key: IGNITE-22857
> URL: https://issues.apache.org/jira/browse/IGNITE-22857
> Project: Ignite
>  Issue Type: Improvement
>  Components: odbc
>Reporter: Maksim Zhuravkov
>Priority: Major
>  Labels: ignite-3
>
> Number and Bitmask types are not supported by the server and should be 
> removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22048) .NET: Thin 3.0: Add Gradle task to run tests

2024-09-10 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22048:
--

Looks good to me.

> .NET: Thin 3.0: Add Gradle task to run tests
> 
>
> Key: IGNITE-22048
> URL: https://issues.apache.org/jira/browse/IGNITE-22048
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Trivial
>  Labels: .NET, ignite-3
> Fix For: 3.1
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add a Gradle task to run .NET tests.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-23175) Test compute_test.all_arg_types fails on Java 21

2024-09-10 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-23175:


 Summary: Test compute_test.all_arg_types fails on Java 21
 Key: IGNITE-23175
 URL: https://issues.apache.org/jira/browse/IGNITE-23175
 Project: Ignite
  Issue Type: Bug
  Components: platforms, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego


The test fails on TC: 
https://ci.ignite.apache.org/test/-7738411458477080149?currentProjectId=ApacheIgnite3xGradle_Test&expandTestHistoryChartSection=true

The problem seems to be in the different implementation of toString() for 
floats in Java 21. Let's fix the test.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22862) Add address information to ClientConnectionException stacktrace

2024-09-09 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22862:
-
Labels: ise newbie t  (was: ise newbie)

> Add address information to ClientConnectionException stacktrace
> ---
>
> Key: IGNITE-22862
> URL: https://issues.apache.org/jira/browse/IGNITE-22862
> Project: Ignite
>  Issue Type: Task
>Reporter: Ilya Shishkov
>Assignee: Maksim Davydov
>Priority: Minor
>  Labels: ise, newbie, t
> Fix For: 2.17
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> It will be useful to find out from stacktrace which address connection causes 
> error. Currently, stacktrace does not have address information:
> {code}
> org.apache.ignite.client.ClientConnectionException: Connection refused
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:197)
>   at 
> org.apache.ignite.internal.client.thin.TcpClientChannel.(TcpClientChannel.java:208)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1055)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1033)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:837)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:749)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:733)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:155)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:127)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.start(TcpIgniteClient.java:442)
>   at org.apache.ignite.Ignition.startClient(Ignition.java:587)
>   at 
> org.apache.ignite.examples.client.ClientPutGetExample.main(ClientPutGetExample.java:45)
> Caused by: org.apache.ignite.client.ClientConnectionException: Connection 
> refused
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:172)
>   ... 11 more
> Caused by: java.net.ConnectException: Connection refused
>   at java.base/sun.nio.ch.Net.connect0(Native Method)
>   at java.base/sun.nio.ch.Net.connect(Net.java:483)
>   at java.base/sun.nio.ch.Net.connect(Net.java:472)
>   at 
> java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:692)
>   at java.base/sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:152)
>   ... 11 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22862) Add address information to ClientConnectionException stacktrace

2024-09-09 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22862:
-
Component/s: thin client

> Add address information to ClientConnectionException stacktrace
> ---
>
> Key: IGNITE-22862
> URL: https://issues.apache.org/jira/browse/IGNITE-22862
> Project: Ignite
>  Issue Type: Task
>  Components: thin client
>Reporter: Ilya Shishkov
>Assignee: Maksim Davydov
>Priority: Minor
>  Labels: ise, newbie
> Fix For: 2.17
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> It will be useful to find out from stacktrace which address connection causes 
> error. Currently, stacktrace does not have address information:
> {code}
> org.apache.ignite.client.ClientConnectionException: Connection refused
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:197)
>   at 
> org.apache.ignite.internal.client.thin.TcpClientChannel.(TcpClientChannel.java:208)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1055)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1033)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:837)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:749)
>   at 
> org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:733)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:155)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:127)
>   at 
> org.apache.ignite.internal.client.thin.TcpIgniteClient.start(TcpIgniteClient.java:442)
>   at org.apache.ignite.Ignition.startClient(Ignition.java:587)
>   at 
> org.apache.ignite.examples.client.ClientPutGetExample.main(ClientPutGetExample.java:45)
> Caused by: org.apache.ignite.client.ClientConnectionException: Connection 
> refused
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:172)
>   ... 11 more
> Caused by: java.net.ConnectException: Connection refused
>   at java.base/sun.nio.ch.Net.connect0(Native Method)
>   at java.base/sun.nio.ch.Net.connect(Net.java:483)
>   at java.base/sun.nio.ch.Net.connect(Net.java:472)
>   at 
> java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:692)
>   at java.base/sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
>   at 
> org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:152)
>   ... 11 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-23137) vars.bat is different from vars.env

2024-09-09 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23137:
-
Component/s: (was: platforms)

> vars.bat is different from vars.env
> ---
>
> Key: IGNITE-23137
> URL: https://issues.apache.org/jira/browse/IGNITE-23137
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 3.0
>Reporter: Igor
>Priority: Major
>  Labels: ignite-3
>
> Linux environment setup (vars.env) contains the next string:
> {code:java}
> JVM_GC_LOG_NAME="gc.log.$(date -u +%Y%m%d_%H%M%S)"
> {code}
> While Windows environment setup (vars.bat) has the next:
> {code:java}
> set JVM_GC_LOG_NAME=gc.log
> {code}
> As result the *`gc.log` has different names in different platforms.*
> I would suggest to use something like this instead:
> {code:java}
> for /f %%a in ('powershell -Command "Get-Date -format MMdd__HHmmss"') do 
> set datetime=%%a
> set JVM_GC_LOG_NAME="gc.log.%datetime%"
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-23126) DB API Driver 3: Implement execution with parameters

2024-09-02 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23126:
-
Description: 
Let's support execution of the query with the parametric parameters.
See https://peps.python.org/pep-0249/#execute and 
https://peps.python.org/pep-0249/#setinputsizes for details.
 

  was:
Let's support execution of the same query with an array of different 
parameters. This is especially useful for fast insertion of multiple records 
using DDL.
See https://peps.python.org/pep-0249/#executemany for details.

At least the following methods should be implemented as a result:

{code:python}
pyignite3.Cursor.executemany()
{code}
 


> DB API Driver 3: Implement execution with parameters
> 
>
> Key: IGNITE-23126
> URL: https://issues.apache.org/jira/browse/IGNITE-23126
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's support execution of the query with the parametric parameters.
> See https://peps.python.org/pep-0249/#execute and 
> https://peps.python.org/pep-0249/#setinputsizes for details.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-23126) DB API Driver 3: Implement execution with parameters

2024-09-02 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-23126:


 Summary: DB API Driver 3: Implement execution with parameters
 Key: IGNITE-23126
 URL: https://issues.apache.org/jira/browse/IGNITE-23126
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Let's support execution of the same query with an array of different 
parameters. This is especially useful for fast insertion of multiple records 
using DDL.
See https://peps.python.org/pep-0249/#executemany for details.

At least the following methods should be implemented as a result:

{code:python}
pyignite3.Cursor.executemany()
{code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22747) DB API Driver 3: Add scripts and TC suites for building the Driver

2024-09-02 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22747:
--

Added suite to Run::All

> DB API Driver 3: Add scripts and TC suites for building the Driver
> --
>
> Key: IGNITE-22747
> URL: https://issues.apache.org/jira/browse/IGNITE-22747
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> The large part of the driver is currently implemented in C++. That means, we 
> should pre-build native part of the Driver for as many platforms as possible.
> For now, let's stick to the Linux, Windows, x64, and the supported versions 
> of Python 3:
> https://devguide.python.org/versions/



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-23074) .NET: Thin 3.0: Support marshallers in MapReduce

2024-09-02 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23074:
-
Issue Type: Improvement  (was: Bug)

> .NET: Thin 3.0: Support marshallers in MapReduce
> 
>
> Key: IGNITE-23074
> URL: https://issues.apache.org/jira/browse/IGNITE-23074
> Project: Ignite
>  Issue Type: Improvement
>  Components: compute, platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> See changes in IGNITE-22787 and TODOs in code with this ticket number.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22747) DB API Driver 3: Add scripts and TC suites for building the Driver

2024-09-01 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22747:
--

Suite created: 
https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunPythonClientTests/8443782
Tests pass on TC.

> DB API Driver 3: Add scripts and TC suites for building the Driver
> --
>
> Key: IGNITE-22747
> URL: https://issues.apache.org/jira/browse/IGNITE-22747
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The large part of the driver is currently implemented in C++. That means, we 
> should pre-build native part of the Driver for as many platforms as possible.
> For now, let's stick to the Linux, Windows, x64, and the supported versions 
> of Python 3:
> https://devguide.python.org/versions/



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-23025) Java thin 3.0: Use all replicas for partition awareness

2024-08-26 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-23025:
-
Epic Link: IGNITE-19479

> Java thin 3.0: Use all replicas for partition awareness
> ---
>
> Key: IGNITE-23025
> URL: https://issues.apache.org/jira/browse/IGNITE-23025
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, client uses primary replicas for partition awareness:
> * Get primary replica per partition from server (*Map*)
> * Compute target replica from key
> * If a direct connection exists to that replica, use it. Otherwise, use any 
> other connection.
> We can improve performance for certain requests (RO transactions) by using 
> non-primary replicas as well:
> * Get all replicas per partition from server (first = primary) 
> (*Map>*)
> * Compute target partition from key
> * Iterate over the list of replicas in original order to find an active 
> direct connection
> In other words, "use primary replica if possible, otherwise use non-primary 
> replica, otherwise use any connection".



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22984) Thin 3.0: Add endpoint info to connection errors

2024-08-26 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22984:
--

Looks good to me.

> Thin 3.0: Add endpoint info to connection errors
> 
>
> Key: IGNITE-22984
> URL: https://issues.apache.org/jira/browse/IGNITE-22984
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Attachments: ignite-3-client-handshake-timeout.txt
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, connection errors look like this:
> {code}
> org.apache.ignite.client.IgniteClientConnectionException: IGN-CLIENT-1 
> TraceId:70edbf14-72b3-423c-81a4-b9f518328742 Handshake timeout
> {code}
> The exception can include a lot of suppressed retry errors, all with similar 
> messages (see attached). It is not clear whether the same server times out or 
> different servers.
> * Add endpoint information to the exception message, e.g. "Handshake timeout: 
> 1.2.3.4:10800"
> * Review all connection errors



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-23067) Thin 3.0: Incorrect timeout used for heartbeats

2024-08-26 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23067:
--

Looks good to me 

> Thin 3.0: Incorrect timeout used for heartbeats
> ---
>
> Key: IGNITE-23067
> URL: https://issues.apache.org/jira/browse/IGNITE-23067
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> *TcpClientChannel#HeartbeatTask* uses *if (connectTimeout > 0)* check instead 
> of *heartbeatTimeout*.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-23000) Client handshake blocks Netty thread for authentication

2024-08-22 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-23000:
--

Looks good to me.

> Client handshake blocks Netty thread for authentication
> ---
>
> Key: IGNITE-23000
> URL: https://issues.apache.org/jira/browse/IGNITE-23000
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Critical
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> *ClientInboundMessageHandler#handshake* takes a lock and calls 
> *Authenticator#authenticate*, which can take a long time (a second or more)
> * We should never block Netty threads (taking locks, blocking on futures, etc)
> * *Authenticator#authenticate* must be async
> * *ClientInboundMessageHandler#handshake* must be async



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22964) Java thin: client init hangs when cluster discovery is enabled and returned addresses are not reachable

2024-08-20 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22964:
--

Looks good to me.

> Java thin: client init hangs when cluster discovery is enabled and returned 
> addresses are not reachable
> ---
>
> Key: IGNITE-22964
> URL: https://issues.apache.org/jira/browse/IGNITE-22964
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
> Fix For: 2.17
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Initial *ReliableChannel#channelsInit* synchronously calls 
> *discoveryCtx::refresh*, causing the client initialization to hang on 
> unreachable addresses
> * *discoveryCtx::refresh* must be run only in background threads
> * Client initialization should finish as soon as a connection is established 
> to one of the configured addresses
> *channelsCnt.get() == 0* check does not work properly: 
> https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannel.java#L747



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-22865) NPE is swallowed in entrails of mapToPublicException

2024-08-19 Thread Igor Sapego (Jira)


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

Igor Sapego reassigned IGNITE-22865:


Assignee: Igor Sapego

> NPE is swallowed in entrails of mapToPublicException
> 
>
> Key: IGNITE-22865
> URL: https://issues.apache.org/jira/browse/IGNITE-22865
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 3.0.0-beta1
>Reporter: Evgeny Stanilovsky
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> NPE raised in internal implementation is not visible in final upper 
> exception, internal stack trace from log (probably it`s client side problem):
> {noformat}
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$convertToPublicFuture$0(TransactionsExceptionMapperUtil.java:51)
>  ~[main/:?]
>   at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>  [?:?]
>   ...
> Caused by: org.apache.ignite.tx.TransactionException
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.lambda$mapToPublicTransactionException$1(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
>  ~[main/:?]
>   at 
> org.apache.ignite.internal.tx.impl.TransactionsExceptionMapperUtil.mapToPublicTransactionException(TransactionsExceptionMapperUtil.java:71)
>  ~[main/:?]
>   ... 31 more
> Caused by: java.lang.NullPointerException
>   at 
> org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$prepareFinish$10(TxManagerImpl.java:597)
>  ~[main/:?]
> {noformat}
> final (test raised, client side) exception looks like:
> {noformat}
> org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
>   at 
> org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
>   at org.apache.ignite.internal.util.ViewUtils.sync(ViewUtils.java:54)
>   at 
> org.apache.ignite.internal.client.tx.ClientTransaction.commit(ClientTransaction.java:95)
>   at 
> org.apache.ignite.internal.client.tx.ClientLazyTransaction.commit(ClientLazyTransaction.java:53)
>   at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test0(ItIgniteNodeRestartTest.java:1168)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.tx.TransactionException: IGN-TX-6 
> TraceId:350d6455-4b5a-4ff2-860e-707b574ac72a
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:789)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:723)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
> {noformat}
> thus no NPE mention is found here.
> fast reproducer :
> {noformat}
> @Test
> public void test01() {
> startNodes(1);
> IgniteClient igniteClient = 
> IgniteClient.builder().addresses("127.0.0.1:10800").build();
> igniteClient.sql().execute(null, "create table t0(id int primary key, 
> val int)");
> Transaction tx = igniteClient.transactions().begin();
> ResultSet res = igniteClient.sql().execute(tx, "select * from 
> t0");
> res.hasNext();
> tx.commit();
> }
> {noformat}
> and change DistributedQueryManager#enlistPartitions change enlist 
> implementation on IgniteRelShuttle anonymous class like :
> {noformat}
> tx.enlist(tablePartId,
> new IgniteBiTuple<>(
>   

[jira] [Updated] (IGNITE-22985) Thin 3.0: Review reconnect throttling behavior

2024-08-19 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22985:
-
Priority: Minor  (was: Major)

> Thin 3.0: Review reconnect throttling behavior
> --
>
> Key: IGNITE-22985
> URL: https://issues.apache.org/jira/browse/IGNITE-22985
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Minor
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Attachments: ignite-3-client-handshake-timeout.txt
>
>
> Reconnect throttling behavior may need improvements:
> * When throttling is applied, we throw an exception
> * This exception happens without any user action during automatic retries
> * Resulting exception has a lot of identical "Reconnect is not allowed due to 
> applied throttling" exceptions in suppressed list, making the entire 
> exception enormous (see attachment)
> Potential improvements:
> * Do not throw exception on throttling, just wait for the period to expire
> * Trim stack traces
> * Combine duplicate exceptions into one



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22794) .NET: TestMicrosoftConsoleLogger is flaky

2024-08-16 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22794:
--

Looks good to me

> .NET: TestMicrosoftConsoleLogger is flaky
> -
>
> Key: IGNITE-22794
> URL: https://issues.apache.org/jira/browse/IGNITE-22794
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Still flaky, IGNITE-20967 fix was not enough.
> {code}
> System.ArgumentOutOfRangeException : Index was out of range. Must be 
> non-negative and less than the size of the collection. (Parameter 
> 'chunkLength')
>at System.Text.StringBuilder.ToString()
>at Apache.Ignite.Tests.LoggingTests.TestMicrosoftConsoleLogger() in 
> /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/LoggingTests.cs:line
>  101
>at 
> NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
>at 
> NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter
>  awaiter)
>at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
>at 
> NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext
>  context)
>at 
> NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext
>  context)
>at 
> NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.b__0()
>at 
> NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext
>  context, Action action)
> {code}
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8334607?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&expandBuildTestsSection=true&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true&expandBuildChangesSection=true



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22644) .NET: Add Client Marshaller API

2024-08-14 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22644:
--

Looks good to me.

> .NET: Add Client Marshaller API
> ---
>
> Key: IGNITE-22644
> URL: https://issues.apache.org/jira/browse/IGNITE-22644
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Aleksandr
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Compute API provides JobDescriptor in java 
> https://github.com/apache/ignite-3/blob/7dedc06ea25b9c63dcdfb69290c7862c754a0d8f/modules/api/src/main/java/org/apache/ignite/compute/JobDescriptor.java#L29
>  
> With this api I can define argument and result marshallers in the java 
> client: 
> {code:java}
>  String result = compute.execute(
> JobTarget.node(targetNode),
> JobDescriptor.builder(ArgMarshalingJob.class)
> .argumentMarshaller(new ArgumentStringMarshaller())
> .resultMarshaller(new ResultStringUnMarshaller())
> .build(),
> "Input"
> );
> // ... 
>  static class ArgumentStringMarshaller implements ByteArrayMarshaler {
> @Override
> public byte @Nullable [] marshal(@Nullable String object) {
> return ByteArrayMarshaler.super.marshal(object + 
> ":marshalledOnClient");
> }
> }
> static class ResultStringUnMarshaller implements 
> ByteArrayMarshaler {
> @Override
> public @Nullable String unmarshal(byte @Nullable [] raw) {
> return ByteArrayMarshaler.super.unmarshal(raw) + 
> ":unmarshalledOnClient";
> }
> }
> {code}
> Argument marshaller is called on the client side during job argument packing, 
> so, the argument is sent as marshalled byte[]. Result marhaller unmarshalls 
> the result from the job from byte[] to the target type. 
> Invariant: If one has defined argument/result marshaller in JobDescriptor 
> then they must define argument/result marshaller in the compute job. 
> By default marshallers are null everywhere. Null means "No marshaller 
> defined", the existing serialization is used. More in IEP: 
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-124%3A+User+Object+Serialization
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22964) Java thin: client init hangs when cluster discovery is enabled and returned addresses are not reachable

2024-08-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22964:
-
Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes 
Required)

> Java thin: client init hangs when cluster discovery is enabled and returned 
> addresses are not reachable
> ---
>
> Key: IGNITE-22964
> URL: https://issues.apache.org/jira/browse/IGNITE-22964
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
> Fix For: 2.17
>
>
> Initial *ReliableChannel#channelsInit* call synchronously calls 
> *discoveryCtx::refresh*, causing the client initialization to hang on 
> unreachable addresses
> * *discoveryCtx::refresh* must be run only in background threads
> * Client initialization should finish as soon as a connection is established 
> to one of the configured addresses
> *channelsCnt.get() == 0* check does not work properly: 
> https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannel.java#L747



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-21781) .NET: Thin 3.0: Add integration tests with arbitrary key column order table

2024-08-06 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-21781:
--

Looks good to me.

> .NET: Thin 3.0: Add integration tests with arbitrary key column order table
> ---
>
> Key: IGNITE-21781
> URL: https://issues.apache.org/jira/browse/IGNITE-21781
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> IGNITE-19744 is now complete and we can create an actual table with multiple 
> key columns interleaved with non-key columns. Write an integration test to 
> check that all scenarios work correctly: Record and KV, Tuple and POCO.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22934) .NET: Thin 3.0: Tuple equality requires same column order

2024-08-06 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22934:
--

Looks good to me.

> .NET: Thin 3.0: Tuple equality requires same column order
> -
>
> Key: IGNITE-22934
> URL: https://issues.apache.org/jira/browse/IGNITE-22934
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms, thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> *IIgniteTuple.Equals* compares columns in order, and returns *false* for 
> tuples like *[ X=1, Y=2 ]* and *[ Y=2, X=1 ]*.
> This is not convenient and does not match the logic in Java Tuple: 
> https://github.com/apache/ignite-3/blob/a51a7fe483528f801edac6313cd094e0ccabda2a/modules/api/src/main/java/org/apache/ignite/table/Tuple.java#L147



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-17681) Thin 3.0: C++ client - enhansments

2024-08-06 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-17681:
-
Summary: Thin 3.0: C++ client - enhansments  (was: Thin 3.0: C++ client - 
enchantments)

> Thin 3.0: C++ client - enhansments
> --
>
> Key: IGNITE-17681
> URL: https://issues.apache.org/jira/browse/IGNITE-17681
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> This epic tracks progress in C++ features that can enhance user experience



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-17681) Thin 3.0: C++ client - enhancements

2024-08-06 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-17681:
-
Summary: Thin 3.0: C++ client - enhancements  (was: Thin 3.0: C++ client - 
enhansments)

> Thin 3.0: C++ client - enhancements
> ---
>
> Key: IGNITE-17681
> URL: https://issues.apache.org/jira/browse/IGNITE-17681
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> This epic tracks progress in C++ features that can enhance user experience



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-18885) C++: Thin 3.0: Add TLS support

2024-08-05 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-18885:
-
Reviewer: Pavel Tupitsyn

> C++: Thin 3.0: Add TLS support
> --
>
> Key: IGNITE-18885
> URL: https://issues.apache.org/jira/browse/IGNITE-18885
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> SSL/TLS is supported by the server (IGNITE-18578). Implement support in C++ 
> client.
> Client cert must be optional.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22678) ClientPartitionManager should use PARTITION_ASSIGNMENT_FLAG to reset cache

2024-08-02 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22678:
--

Looks good to me

> ClientPartitionManager should use PARTITION_ASSIGNMENT_FLAG to reset cache
> --
>
> Key: IGNITE-22678
> URL: https://issues.apache.org/jira/browse/IGNITE-22678
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, 
> [ClientPartitionManager|https://github.com/apache/ignite-3/blob/105df10e38f5fc7e43c2ad717b3970ac7356728a/modules/client/src/main/java/org/apache/ignite/internal/client/table/ClientPartitionManager.java]
>  uses a hardcoded one-minute cache for partition assignments. 
> We should use *ReliableChannel.partitionAssignmentTimestamp* to invalidate 
> the cache.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22893) .NET: Thin 3.0: TestFailedSchemaLoadTaskIsRetried is flaky

2024-08-02 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22893:
--

Looks good to me

> .NET: Thin 3.0: TestFailedSchemaLoadTaskIsRetried is flaky
> --
>
> Key: IGNITE-22893
> URL: https://issues.apache.org/jira/browse/IGNITE-22893
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Test can fail when automatic reconnect is triggered with a heartbeat 
> (background timer). 
> Reproduce the failure by using frequent heartbeats:
> {code}
> var cfg = new IgniteClientConfiguration
> {
> RetryPolicy = new RetryNonePolicy(),
> HeartbeatInterval = TimeSpan.FromMilliseconds(3)
> };
> {code}
> Result:
> {code}
>  Expected: 
>   But was:  null
>at 
> Apache.Ignite.Tests.Table.SchemaUpdateTest.TestFailedSchemaLoadTaskIsRetried()
>  in 
> /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/Table/SchemaUpdateTest.cs:line
>  79
>at 
> NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
>at 
> NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter
>  awaiter)
>at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
>at 
> NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext
>  context)
>at 
> NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext
>  context)
>at 
> NUnit.Framework.Internal.Commands.TimeoutCommand.<>c__DisplayClass5_0.b__0()
>at System.Threading.Tasks.Task`1.InnerInvoke()
> 1)at 
> Apache.Ignite.Tests.Table.SchemaUpdateTest.TestFailedSchemaLoadTaskIsRetried()
>  in 
> /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/Table/SchemaUpdateTest.cs:line
>  79
>at 
> System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.ExecutionContextCallback(Object
>  s)
> {code}
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8362885?hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildTestsSection=true&expandBuildDeploymentsSection=false&expandCode+Inspection=true&expandBuildProblemsSection=true&expandBuildChangesSection=true



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22856) .NET: Thin 3.0: Delete unsupported column types NUMBER and BITMASK

2024-08-02 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22856:
--

Looks good to me

> .NET: Thin 3.0: Delete unsupported column types NUMBER and BITMASK
> --
>
> Key: IGNITE-22856
> URL: https://issues.apache.org/jira/browse/IGNITE-22856
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Maksim Zhuravkov
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Number and Bitmask elements of ColumnType enum are not supported by the 
> server and should be removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22872) Thin 3.0: Add heartbeat benchmarks

2024-08-01 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22872:
--

Looks good to me

> Thin 3.0: Add heartbeat benchmarks
> --
>
> Key: IGNITE-22872
> URL: https://issues.apache.org/jira/browse/IGNITE-22872
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> * Add heartbeat benchmarks (see IGNITE-22642)
> * Compare .NET and Java clients
> * Profile to check for low-hanging fruits



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22013) Java thin 3.0: KeyValueView does not work with single-column table

2024-07-31 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22013:
--

Looks good to me.

> Java thin 3.0: KeyValueView does not work with single-column table
> --
>
> Key: IGNITE-22013
> URL: https://issues.apache.org/jira/browse/IGNITE-22013
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add the following test to *ItTablePutGetEmbeddedTest*, it works in embedded 
> mode, but not in thin client mode:
> {code:java}
> @Test
> public void testKVWithoutVClient() {
> String tableName = "TEST_TABLE_1";
> sql("CREATE TABLE " + tableName + " (id int primary key)");
> sql("INSERT INTO " + tableName + " (id) VALUES (1)");
> KeyValueView kvView = 
> tables().table(tableName).keyValueView();
> Assertions.assertDoesNotThrow(() -> kvView.get(null, 
> Tuple.create().set("id", 1)));
> }
> {code}
> Exception:
> {code}
> org.opentest4j.AssertionFailedError: Unexpected exception thrown: 
> org.apache.ignite.lang.IgniteException: Failed to deserialize server 
> response: columnCount > 0
>   at 
> org.apache.ignite.internal.table.ItTablePutGetEmbeddedTest.testKVWithoutVClient(ItTablePutGetEmbeddedTest.java:57)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CLIENT-2 
> TraceId:3301aea6-56cd-4aa5-862d-e5de576ff50e Failed to deserialize server 
> response: columnCount > 0
>   at 
> java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:765)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:699)
>   at 
> org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:525)
>   at 
> org.apache.ignite.internal.client.ClientUtils.copyExceptionWithCauseIfPossible(ClientUtils.java:73)
>   at 
> org.apache.ignite.internal.client.ClientUtils.ensurePublicException(ClientUtils.java:54)
>   at 
> org.apache.ignite.internal.client.ClientUtils.sync(ClientUtils.java:97)
>   at 
> org.apache.ignite.internal.client.table.ClientKeyValueBinaryView.get(ClientKeyValueBinaryView.java:75)
>   at 
> org.apache.ignite.internal.client.table.ClientKeyValueBinaryView.get(ClientKeyValueBinaryView.java:56)
>   at 
> org.apache.ignite.internal.table.ItTablePutGetEmbeddedTest.lambda$testKVWithoutVClient$0(ItTablePutGetEmbeddedTest.java:57)
>   ... 4 more
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CLIENT-2 
> TraceId:3301aea6-56cd-4aa5-862d-e5de576ff50e Failed to deserialize server 
> response: columnCount > 0
>   at 
> org.apache.ignite.internal.client.TcpClientChannel.complete(TcpClientChannel.java:376)
>   at 
> org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:415)
>   at 
> org.apache.ignite.internal.client.TcpClientChannel.lambda$onMessage$3(TcpClientChannel.java:238)
>   at 
> java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
>   at 
> java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
>   at 
> java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
>   at 
> java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
>   at 
> java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
>   at 
> java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
> Caused by: java.lang.AssertionError: columnCount > 0
>   at 
> org.apache.ignite.internal.client.table.MutableTupleBinaryTupleAdapter.(MutableTupleBinaryTupleAdapter.java:59)
>   at 
> org.apache.ignite.internal.client.table.ClientTuple.(ClientTuple.java:58)
>   at 
> org.apache.ignite.internal.client.table.ClientTupleSerializer.readValueTuple(ClientTupleSerializer.java:340)
>   at 
> org.apache.ignite.internal.client.table.ClientKeyValueBinaryView.lambda$getAsync$1(ClientKeyValueBinaryView.java:86)
>   at 
> org.apache.ignite.internal.client.table.ClientTable.readSchemaAndReadData(ClientTable.java:511)
>   at 
> org.apache.ignite.internal.client.table.ClientTable.lambda$doSch

[jira] [Commented] (IGNITE-21595) .NET: Update static analysis packages and fix new inspections

2024-07-30 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-21595:
--

Looks good to me.

> .NET: Update static analysis packages and fix new inspections
> -
>
> Key: IGNITE-21595
> URL: https://issues.apache.org/jira/browse/IGNITE-21595
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> * Bump Microsoft.CodeAnalysis.NetAnalyzers from 6.0.0 to 8.0.0
> * Bump Microsoft.CodeAnalysis.CSharp and Microsoft.CodeAnalysis.Analyzers
> * Bump StyleCop.Analyzers from 1.2.0-beta.435 to 1.2.0-beta.556
> * Bump NUnit.Analyzers from 3.6.1 to 3.10.0
> * Bump Microsoft.Extensions.Logging.Console and 
> Microsoft.Extensions.Logging.Abstractions to 8.0.0
> Dependabot PRs for those have failing builds because new inspections trigger 
> warnings and errors:
> https://github.com/apache/ignite-3/pull/3256, 
> https://github.com/apache/ignite-3/pull/3271, 
> https://github.com/apache/ignite-3/pull/3268, 
> https://github.com/apache/ignite-3/pull/3294



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22847) Add TaskDescriptor to compute API

2024-07-29 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22847:
--

Looks good to me.

> Add TaskDescriptor to compute API
> -
>
> Key: IGNITE-22847
> URL: https://issues.apache.org/jira/browse/IGNITE-22847
> Project: Ignite
>  Issue Type: Improvement
>  Components: compute
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Similar to *JobDescriptor* (IGNITE-22425), add *TaskDescriptor* for 
> *MapReduce* method family, to keep the API consistent.
> {code:java}
> public class TaskDescriptor {
> private final String taskClassName;
> private final List units;
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22751) .NET: Enable NuGet audit

2024-07-29 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22751:
--

Looks good to me.

> .NET: Enable NuGet audit
> 
>
> Key: IGNITE-22751
> URL: https://issues.apache.org/jira/browse/IGNITE-22751
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Add the following to  the *Directory.Build.props* file to enable security 
> audit during package restore:
> {code}
> true
> all
> low
> {code}
> This will fail the build if vulnerable dependencies are present (direct or 
> transitive).
> https://learn.microsoft.com/en-us/nuget/concepts/auditing-packages



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22642) Thin 3.0: Add an internal API to send heartbeat requests

2024-07-29 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22642:
--

Looks good to me.

> Thin 3.0: Add an internal API to send heartbeat requests
> 
>
> Key: IGNITE-22642
> URL: https://issues.apache.org/jira/browse/IGNITE-22642
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Igor Sapego
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We have a heartbeat mechanism in Ignite 3 Java Client. This can be a useful 
> instrument to benchmark network, but there is no currently API (even 
> internal) that could allow easily do that. Let's add something like 
> TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable payload);



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22285) Embedded Data Streamer with Receiver

2024-07-18 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22285:
--

Looks good to me.

> Embedded Data Streamer with Receiver
> 
>
> Key: IGNITE-22285
> URL: https://issues.apache.org/jira/browse/IGNITE-22285
> Project: Ignite
>  Issue Type: Improvement
>  Components: streaming
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: iep-102, iep-121, ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Implement data streamer with receiver in embedded Java API - see 
> [IEP-121|https://cwiki.apache.org/confluence/display/IGNITE/IEP-121%3A+Data+Streamer+with+Receiver]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22770) testBytesSentReceived fails with short version string

2024-07-18 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22770:
--

Looks good to me

> testBytesSentReceived fails with short version string
> -
>
> Key: IGNITE-22770
> URL: https://issues.apache.org/jira/browse/IGNITE-22770
> Project: Ignite
>  Issue Type: Bug
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> * Change *IgniteProductVersion.CURRENT_VERSION* to something short "3.0.0"
> * Run *org.apache.ignite.client.ClientMetricsTest#testBytesSentReceived*
> {code}
> java.lang.AssertionError: 
> Expected: a value greater than <80L>
>  but: <77L> was less than <80L>
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22752) The C++ thin client package has an ambiguous name

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22752:


 Summary: The C++ thin client package has an ambiguous name
 Key: IGNITE-22752
 URL: https://issues.apache.org/jira/browse/IGNITE-22752
 Project: Ignite
  Issue Type: Bug
  Components: platforms, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego


The resulted package name is ignite-client-3.0.0.zip. We should probably rename 
it to ignite-cpp-client-3.0.0.zip to keep the naming consistent with Java and 
.NET clients.
{noformat}
ignite-dotnet-client-3.0.0.zip
ignite-java-client-3.0.0.zip
{noformat}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22719) Python DB API Driver 3.0

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22719:
-
Labels: ignite-3  (was: )

> Python DB API Driver 3.0
> 
>
> Key: IGNITE-22719
> URL: https://issues.apache.org/jira/browse/IGNITE-22719
> Project: Ignite
>  Issue Type: Epic
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> h3. Requirements
> * The implementation of the Python DB API or the Driver should be implemented 
> using Python 3;
> * The Driver should comply with Python DB-API 2.0: 
> https://peps.python.org/pep-0249/;
> * Performance of the Driver should be similar to the performance of other 
> clients and drivers, e.g. JDBC;
> * The first implementation should be as simple as possible, but it should be 
> functional and allow for improvements in future;
> * Preferably the Driver should be designed in such a way that makes it 
> possible in the future to extend Driver’s API and turn it into a full-fledged 
> Python Client.
> h4. Code Reuse
> It is proposed to re-use the protocol part, which is currently used by ODBC 
> and JDBC drivers. Its functionality should be more than enough for 
> implementation of the Driver, as the DB API is much simpler than both JDBC 
> and ODBC.
> It is also proposed to re-use C++ code for data packing-unpacking (protocol 
> messages, binary tuples).
> It’s important to point out that in most of the implementations of such 
> drivers, C/C++ code is duplicated in Python, but the first implementation of 
> our Driver won’t include duplication of C++ code for the sake of simplicity. 
> This means, if the user won’t be able to compile our C++ code on their 
> platform for any reason, they won’t be able to use our Driver.
> h4. Type Mapping
> The implementation of the specification is pretty straightforward and there 
> is no need to discuss implementation of methods in detail. The only part that 
> should probably be discussed is a data type mapping.
> The following type mapping is suggested for the Driver:
> ||Ignite Type||DB API Type||Python Type||
> |NIL|None|None|
> |BOOLEAN|NUMBER|bool|
> |INT8|NUMBER|int|
> |INT16|NUMBER|int|
> |INT32|NUMBER|int|
> |INT64|NUMBER|int|
> |FLOAT|NUMBER|float|
> |DOUBLE|NUMBER|float|
> |DECIMAL|NUMBER|decimal.Decimal|
> |DATE|DATETIME|datetime.date|
> |TIME|DATETIME|datetime.time|
> |DATETIME|DATETIME|datetime.datetime|
> |TIMESTAMP|NUMBER|datetime.datetime|
> |UUID|STRING|uuid.UUID|
> |BITMASK|NUMBER|int|
> |STRING|STRING|str|
> |BYTE_ARRAY|BINARY|bytes|
> |PERIOD|DATETIME|datetime.timedelta|
> |DURATION|DATETIME|datetime.timedelta|
> |NUMBER|NUMBER|decimal.Decimal|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22747) DB API Driver 3: Add scripts and TC suites for building the Driver

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22747:


 Summary: DB API Driver 3: Add scripts and TC suites for building 
the Driver
 Key: IGNITE-22747
 URL: https://issues.apache.org/jira/browse/IGNITE-22747
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


The large part of the driver is currently implemented in C++. That means, we 
should pre-build native part of the Driver for as many platforms as possible.
For now, let's stick to the Linux, Windows, x64, and the supported versions of 
Python 3:
https://devguide.python.org/versions/



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22746) DB API Driver 3: Add documentation publishing

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22746:


 Summary: DB API Driver 3: Add documentation publishing
 Key: IGNITE-22746
 URL: https://issues.apache.org/jira/browse/IGNITE-22746
 Project: Ignite
  Issue Type: Improvement
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Implement a proper documentation, and make sure it can be compiled (e.g. with 
Sphinx) and published (e.g. on readthedocs).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22745) DB API Driver 3: Provide wider data types support

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22745:


 Summary: DB API Driver 3: Provide wider data types support
 Key: IGNITE-22745
 URL: https://issues.apache.org/jira/browse/IGNITE-22745
 Project: Ignite
  Issue Type: Task
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Let's make sure that we support all data types (stated in the epic), and type 
conversation functions and constructors: 
https://peps.python.org/pep-0249/#type-objects-and-constructors



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22745) DB API Driver 3: Provide wider data types support

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22745:
-
Issue Type: Improvement  (was: Task)

> DB API Driver 3: Provide wider data types support
> -
>
> Key: IGNITE-22745
> URL: https://issues.apache.org/jira/browse/IGNITE-22745
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's make sure that we support all data types (stated in the epic), and type 
> conversation functions and constructors: 
> https://peps.python.org/pep-0249/#type-objects-and-constructors



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22744) DB API Driver 3: Conduct compliance testing of the Driver

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22744:


 Summary: DB API Driver 3: Conduct compliance testing of the Driver
 Key: IGNITE-22744
 URL: https://issues.apache.org/jira/browse/IGNITE-22744
 Project: Ignite
  Issue Type: Task
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Use the following suite to check the Driver compliance:
https://github.com/baztian/dbapi-compliance

Optionally, integrate the test into our test suite.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22743) DB API Driver 3: Implement execution of SQL scripts

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22743:


 Summary: DB API Driver 3: Implement execution of SQL scripts
 Key: IGNITE-22743
 URL: https://issues.apache.org/jira/browse/IGNITE-22743
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Ignite 3 is currently supports execution of scripts. Let's make sure that this 
feature can also be used with DB API Driver.

Links to check:
https://peps.python.org/pep-0249/#nextset



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22742) DB API Driver 3: Implement execution with a batch of parameters

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22742:


 Summary: DB API Driver 3: Implement execution with a batch of 
parameters
 Key: IGNITE-22742
 URL: https://issues.apache.org/jira/browse/IGNITE-22742
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Let's support execution of the same query with an array of different 
parameters. This is especially useful for fast insertion of multiple records 
using DDL.
See https://peps.python.org/pep-0249/#executemany for details.

At least the following methods should be implemented as a result:

{code:python}
pyignite3.Cursor.executemany()
{code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22741) DB API Driver 3: Implement simple data fetching

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22741:
-
Labels: ignite-3  (was: )

> DB API Driver 3: Implement simple data fetching
> ---
>
> Key: IGNITE-22741
> URL: https://issues.apache.org/jira/browse/IGNITE-22741
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> Let's add an ability to fetch queried data from cursor.
> At least the following methods should be implemented:
> {code:python}
> pyignite3.Cursor.fetchone()
> {code}
> The following methods can be implemented as the part of this ticket, or a 
> separate ticket for them should be created:
> {code:python}
> pyignite3.Cursor.fetchmany()
> pyignite3.Cursor.fetchall()
> {code} 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22741) DB API Driver 3: Implement simple data fetching

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22741:


 Summary: DB API Driver 3: Implement simple data fetching
 Key: IGNITE-22741
 URL: https://issues.apache.org/jira/browse/IGNITE-22741
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego


Let's add an ability to fetch queried data from cursor.
At least the following methods should be implemented:

{code:python}
pyignite3.Cursor.fetchone()
{code}

The following methods can be implemented as the part of this ticket, or a 
separate ticket for them should be created:
{code:python}
pyignite3.Cursor.fetchmany()
pyignite3.Cursor.fetchall()
{code} 




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22740) DB API Driver 3: Implement transaction support

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22740:
-
Labels: ignite-3  (was: )

> DB API Driver 3: Implement transaction support
> --
>
> Key: IGNITE-22740
> URL: https://issues.apache.org/jira/browse/IGNITE-22740
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python, thin client
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's implement transactions support for the Python DB API Driver.
> For this, at least the following methods should be implemented properly:
> {code:python}
> pyignite3.Connection.commit()
> pyignite3.Connection.rollback()
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22469) DB API Driver 3: Implement simple query execution

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22469:
-
Description: 
Let's start implementation ability to execute queries using our Python Driver 
for Ignite 3, Should be able to query data, insert records and run DDL.
The following methods should be implemented:

{code:python}
pyignite3.Connection.cursor()
pyignite3.Cursor.execute()
pyignite3.Cursor.close()
{code}


  was:Let's start implementation ability to execute queries using our Python 
Driver for Ignite 3, Should be able to query data, insert records and run DDL.


> DB API Driver 3: Implement simple query execution
> -
>
> Key: IGNITE-22469
> URL: https://issues.apache.org/jira/browse/IGNITE-22469
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation ability to execute queries using our Python Driver 
> for Ignite 3, Should be able to query data, insert records and run DDL.
> The following methods should be implemented:
> {code:python}
> pyignite3.Connection.cursor()
> pyignite3.Cursor.execute()
> pyignite3.Cursor.close()
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22469) DB API Driver 3: Implement simple query execution

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22469:
-
Summary: DB API Driver 3: Implement simple query execution  (was: DB API 
Driver 3: Implement query execution for the DB API Driver)

> DB API Driver 3: Implement simple query execution
> -
>
> Key: IGNITE-22469
> URL: https://issues.apache.org/jira/browse/IGNITE-22469
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation ability to execute queries using our Python Driver 
> for Ignite 3, Should be able to query data, insert records and run DDL.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22740) DB API Driver 3: Implement transaction support

2024-07-16 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22740:


 Summary: DB API Driver 3: Implement transaction support
 Key: IGNITE-22740
 URL: https://issues.apache.org/jira/browse/IGNITE-22740
 Project: Ignite
  Issue Type: Improvement
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego
 Fix For: 3.0.0-beta2


Let's implement transactions support for the Python DB API Driver.
For this, at least the following methods should be implemented properly:

{code:python}
pyignite3.Connection.commit()
pyignite3.Connection.rollback()
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22469) DB API Driver 3: Implement query execution for the DB API Driver

2024-07-16 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22469:
-
Summary: DB API Driver 3: Implement query execution for the DB API Driver  
(was: Python Client 3: Implement query execution for the DB API Driver)

> DB API Driver 3: Implement query execution for the DB API Driver
> 
>
> Key: IGNITE-22469
> URL: https://issues.apache.org/jira/browse/IGNITE-22469
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation ability to execute queries using our Python Driver 
> for Ignite 3, Should be able to query data, insert records and run DDL.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22645) C++ Client Marshaler API

2024-07-15 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22645:
--

[~aleksandr.pakhomov], can you please add a proper description for the ticket? 
I can not estimate it the way it is right now.


> C++ Client Marshaler API
> 
>
> Key: IGNITE-22645
> URL: https://issues.apache.org/jira/browse/IGNITE-22645
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> tbd



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22644) .NET Client Marshaler API

2024-07-15 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22644:
--

[~aleksandr.pakhomov], can you please add a proper description for the ticket? 
I can not estimate it the way it is right now.


> .NET Client Marshaler API
> -
>
> Key: IGNITE-22644
> URL: https://issues.apache.org/jira/browse/IGNITE-22644
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>
> tbd



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-22644) .NET Client Marshaler API

2024-07-15 Thread Igor Sapego (Jira)


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

Igor Sapego reassigned IGNITE-22644:


Assignee: Pavel Tupitsyn

> .NET Client Marshaler API
> -
>
> Key: IGNITE-22644
> URL: https://issues.apache.org/jira/browse/IGNITE-22644
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>
> tbd



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (IGNITE-22645) C++ Client Marshaler API

2024-07-15 Thread Igor Sapego (Jira)


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

Igor Sapego reassigned IGNITE-22645:


Assignee: Igor Sapego

> C++ Client Marshaler API
> 
>
> Key: IGNITE-22645
> URL: https://issues.apache.org/jira/browse/IGNITE-22645
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> tbd



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22728) C++ compilation hangs on Mac

2024-07-15 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22728:
--

Works on Windows.

> C++ compilation hangs on Mac
> 
>
> Key: IGNITE-22728
> URL: https://issues.apache.org/jira/browse/IGNITE-22728
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr Polovtsev
>Assignee: Aleksandr Polovtsev
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When running {{./gradlew cmakeBuildClient}} on my Mac the build process hangs 
> seemingly stuck forever compiling a C++ source file. However, I discovered 
> that the issue is with the CMake Gradle plugin used by Ignite.
> There's a fix in a different fork of this plugin that we are interested in: 
> https://github.com/crimsonmagick/gradle-cmake-plugin/commit/da513dd66e38d90debe45df5f75655b9398807fa
> I propose to switch to this fork instead as it fixes the aforementioned issue 
> and the Gradle build completes successfully.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22353) DB API Driver 3: Implement a basic version of the DB API Driver

2024-07-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22353:
-
Summary: DB API Driver 3: Implement a basic version of the DB API Driver  
(was: Python Client 3: Implement a basic version of the DB API Driver)

> DB API Driver 3: Implement a basic version of the DB API Driver
> ---
>
> Key: IGNITE-22353
> URL: https://issues.apache.org/jira/browse/IGNITE-22353
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Let's start implementation of Python Driver for Ignite 3, complying with [PEP 
> 249|https://peps.python.org/pep-0249/], by implementing a project stub, with 
> basic test infrastructure and ability to establish connection to the node. No 
> useful functionality at this point.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22469) Python Client 3: Implement query execution for the DB API Driver

2024-07-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22469:
-
Epic Link: IGNITE-22719  (was: IGNITE-6)

> Python Client 3: Implement query execution for the DB API Driver
> 
>
> Key: IGNITE-22469
> URL: https://issues.apache.org/jira/browse/IGNITE-22469
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, python
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation ability to execute queries using our Python Driver 
> for Ignite 3, Should be able to query data, insert records and run DDL.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22353) Python Client 3: Implement a basic version of the DB API Driver

2024-07-12 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22353:
-
Epic Link: IGNITE-22719  (was: IGNITE-6)

> Python Client 3: Implement a basic version of the DB API Driver
> ---
>
> Key: IGNITE-22353
> URL: https://issues.apache.org/jira/browse/IGNITE-22353
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Let's start implementation of Python Driver for Ignite 3, complying with [PEP 
> 249|https://peps.python.org/pep-0249/], by implementing a project stub, with 
> basic test infrastructure and ability to establish connection to the node. No 
> useful functionality at this point.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22719) Python DB API Driver 3.0

2024-07-12 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22719:


 Summary: Python DB API Driver 3.0
 Key: IGNITE-22719
 URL: https://issues.apache.org/jira/browse/IGNITE-22719
 Project: Ignite
  Issue Type: Epic
  Components: platforms, python, thin client
Reporter: Igor Sapego
Assignee: Igor Sapego


h3. Requirements
* The implementation of the Python DB API or the Driver should be implemented 
using Python 3;
* The Driver should comply with Python DB-API 2.0: 
https://peps.python.org/pep-0249/;
* Performance of the Driver should be similar to the performance of other 
clients and drivers, e.g. JDBC;
* The first implementation should be as simple as possible, but it should be 
functional and allow for improvements in future;
* Preferably the Driver should be designed in such a way that makes it possible 
in the future to extend Driver’s API and turn it into a full-fledged Python 
Client.

h4. Code Reuse
It is proposed to re-use the protocol part, which is currently used by ODBC and 
JDBC drivers. Its functionality should be more than enough for implementation 
of the Driver, as the DB API is much simpler than both JDBC and ODBC.
It is also proposed to re-use C++ code for data packing-unpacking (protocol 
messages, binary tuples).
It’s important to point out that in most of the implementations of such 
drivers, C/C++ code is duplicated in Python, but the first implementation of 
our Driver won’t include duplication of C++ code for the sake of simplicity. 
This means, if the user won’t be able to compile our C++ code on their platform 
for any reason, they won’t be able to use our Driver.

h4. Type Mapping
The implementation of the specification is pretty straightforward and there is 
no need to discuss implementation of methods in detail. The only part that 
should probably be discussed is a data type mapping.

The following type mapping is suggested for the Driver:

||Ignite Type||DB API Type||Python Type||
|NIL|None|None|
|BOOLEAN|NUMBER|bool|
|INT8|NUMBER|int|
|INT16|NUMBER|int|
|INT32|NUMBER|int|
|INT64|NUMBER|int|
|FLOAT|NUMBER|float|
|DOUBLE|NUMBER|float|
|DECIMAL|NUMBER|decimal.Decimal|
|DATE|DATETIME|datetime.date|
|TIME|DATETIME|datetime.time|
|DATETIME|DATETIME|datetime.datetime|
|TIMESTAMP|NUMBER|datetime.datetime|
|UUID|STRING|uuid.UUID|
|BITMASK|NUMBER|int|
|STRING|STRING|str|
|BYTE_ARRAY|BINARY|bytes|
|PERIOD|DATETIME|datetime.timedelta|
|DURATION|DATETIME|datetime.timedelta|
|NUMBER|NUMBER|decimal.Decimal|





--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22718) Test ItThinClientWorkerShutdownTest.localExecutionWorkerShutdown is flaky

2024-07-12 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22718:
--

Please, make sure to un-mute test on TC  once the ticket is fixed and state it 
explicitly in comments.

> Test ItThinClientWorkerShutdownTest.localExecutionWorkerShutdown is flaky
> -
>
> Key: IGNITE-22718
> URL: https://issues.apache.org/jira/browse/IGNITE-22718
> Project: Ignite
>  Issue Type: Bug
>  Components: compute, thin client
>Reporter: Igor Sapego
>Priority: Major
>  Labels: ignite-3
>
> The following test is flaky on TC:
> https://ci.ignite.apache.org/test/-7107221117137918015?currentProjectId=ApacheIgnite3xGradle_Test_IntegrationTests&expandTestHistoryChartSection=true



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22718) Test ItThinClientWorkerShutdownTest.localExecutionWorkerShutdown is flaky

2024-07-12 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22718:


 Summary: Test 
ItThinClientWorkerShutdownTest.localExecutionWorkerShutdown is flaky
 Key: IGNITE-22718
 URL: https://issues.apache.org/jira/browse/IGNITE-22718
 Project: Ignite
  Issue Type: Bug
  Components: compute, thin client
Reporter: Igor Sapego


The following test is flaky on TC:
https://ci.ignite.apache.org/test/-7107221117137918015?currentProjectId=ApacheIgnite3xGradle_Test_IntegrationTests&expandTestHistoryChartSection=true



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (IGNITE-22353) Python Client 3: Implement a basic version of the DB API Driver

2024-07-11 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-22353 at 7/11/24 2:13 PM:
---

Ready for review. [~ptupitsyn], [~dzabotlin], can you take a look?


was (Author: isapego):
Ready for review. [~ptupitsyn], [~ademakov], can you take a look?

> Python Client 3: Implement a basic version of the DB API Driver
> ---
>
> Key: IGNITE-22353
> URL: https://issues.apache.org/jira/browse/IGNITE-22353
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Let's start implementation of Python Driver for Ignite 3, complying with [PEP 
> 249|https://peps.python.org/pep-0249/], by implementing a project stub, with 
> basic test infrastructure and ability to establish connection to the node. No 
> useful functionality at this point.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22523) Thin 3.0: Reserve op code range for third party plugins

2024-07-11 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22523:
--

Looks good to me.

> Thin 3.0: Reserve op code range for third party plugins
> ---
>
> Key: IGNITE-22523
> URL: https://issues.apache.org/jira/browse/IGNITE-22523
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 3.0.0-beta1
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Ignite 3 thin client protocol is built to be extensible and compatible. 
> Reserve a range of op codes that can be used by third-party plugins and 
> extensions.
> Proposed op code range: 1000 - 2000.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22353) Python Client 3: Implement a simple version of the DB API Driver

2024-07-11 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22353:
-
Summary: Python Client 3: Implement a simple version of the DB API Driver  
(was: Python Client 3: Implement a project stub for the DB API Driver)

> Python Client 3: Implement a simple version of the DB API Driver
> 
>
> Key: IGNITE-22353
> URL: https://issues.apache.org/jira/browse/IGNITE-22353
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation of Python Driver for Ignite 3, complying with [PEP 
> 249|https://peps.python.org/pep-0249/], by implementing a project stub, with 
> basic test infrastructure and ability to establish connection to the node. No 
> useful functionality at this point.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22353) Python Client 3: Implement a basic version of the DB API Driver

2024-07-11 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22353:
-
Summary: Python Client 3: Implement a basic version of the DB API Driver  
(was: Python Client 3: Implement a simple version of the DB API Driver)

> Python Client 3: Implement a basic version of the DB API Driver
> ---
>
> Key: IGNITE-22353
> URL: https://issues.apache.org/jira/browse/IGNITE-22353
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Let's start implementation of Python Driver for Ignite 3, complying with [PEP 
> 249|https://peps.python.org/pep-0249/], by implementing a project stub, with 
> basic test infrastructure and ability to establish connection to the node. No 
> useful functionality at this point.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22150) .NET Thin 3.0: Implement Table partition API

2024-07-09 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22150:
--

Approved with a question

> .NET Thin 3.0: Implement Table partition API
> 
>
> Key: IGNITE-22150
> URL: https://issues.apache.org/jira/browse/IGNITE-22150
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Mikhail Pochatkin
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Need to implement *org.apache.ignite.table.partition.PartitionManager* 
> interface in .NET Thin Client. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (IGNITE-22677) Fix C++ dependency handling for MacOS

2024-07-08 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-22677:
--

Looks good to me.

> Fix C++ dependency handling for MacOS 
> --
>
> Key: IGNITE-22677
> URL: https://issues.apache.org/jira/browse/IGNITE-22677
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Dmitrii Zabotlin
>Assignee: Dmitrii Zabotlin
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We can replace `find_package(epoll-shim)` with the `FetchContent` directive 
> to download and build dependency automatically.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22642) Thin 3.0: Add an internal API to send heartbeat requests

2024-07-02 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22642:
-
Environment: (was: We have a heartbeat mechanism in Ignite 3 Java 
Client. This can be a useful instrument to benchmark network, but there is no 
currently API (even internal) that could allow easily do that. Let's add 
something like TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable 
payload);)

> Thin 3.0: Add an internal API to send heartbeat requests
> 
>
> Key: IGNITE-22642
> URL: https://issues.apache.org/jira/browse/IGNITE-22642
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
>Reporter: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We have a heartbeat mechanism in Ignite 3 Java Client. This can be a useful 
> instrument to benchmark network, but there is no currently API (even 
> internal) that could allow easily do that. Let's add something like 
> TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable payload);



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22642) Thin 3.0: Add an internal API to send heartbeat requests

2024-07-02 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22642:
-
Description: We have a heartbeat mechanism in Ignite 3 Java Client. This 
can be a useful instrument to benchmark network, but there is no currently API 
(even internal) that could allow easily do that. Let's add something like 
TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable payload);

> Thin 3.0: Add an internal API to send heartbeat requests
> 
>
> Key: IGNITE-22642
> URL: https://issues.apache.org/jira/browse/IGNITE-22642
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
> Environment: We have a heartbeat mechanism in Ignite 3 Java Client. 
> This can be a useful instrument to benchmark network, but there is no 
> currently API (even internal) that could allow easily do that. Let's add 
> something like TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable 
> payload);
>Reporter: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> We have a heartbeat mechanism in Ignite 3 Java Client. This can be a useful 
> instrument to benchmark network, but there is no currently API (even 
> internal) that could allow easily do that. Let's add something like 
> TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable payload);



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (IGNITE-22642) Thin 3.0: Add an internal API to send heartbeat requests

2024-07-02 Thread Igor Sapego (Jira)


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

Igor Sapego updated IGNITE-22642:
-
Component/s: platforms

> Thin 3.0: Add an internal API to send heartbeat requests
> 
>
> Key: IGNITE-22642
> URL: https://issues.apache.org/jira/browse/IGNITE-22642
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms, thin client
> Environment: We have a heartbeat mechanism in Ignite 3 Java Client. 
> This can be a useful instrument to benchmark network, but there is no 
> currently API (even internal) that could allow easily do that. Let's add 
> something like TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable 
> payload);
>Reporter: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (IGNITE-22642) Thin 3.0: Add an internal API to send heartbeat requests

2024-07-02 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-22642:


 Summary: Thin 3.0: Add an internal API to send heartbeat requests
 Key: IGNITE-22642
 URL: https://issues.apache.org/jira/browse/IGNITE-22642
 Project: Ignite
  Issue Type: Improvement
  Components: thin client
 Environment: We have a heartbeat mechanism in Ignite 3 Java Client. 
This can be a useful instrument to benchmark network, but there is no currently 
API (even internal) that could allow easily do that. Let's add something like 
TcpClientChannel.sendHeartBeat(@Nullable nodeName, @Nullable payload);
Reporter: Igor Sapego
 Fix For: 3.0.0-beta2






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (IGNITE-22527) C++ 3.0: Add parameter object to Compute API

2024-06-28 Thread Igor Sapego (Jira)


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

Igor Sapego edited comment on IGNITE-22527 at 6/28/24 12:19 PM:


Ready for review. [~dzabotlin], can you take a look please?


was (Author: isapego):
Ready for review. [~ptupitsyn], [~dzabotlin], can you guys take a look please?

> C++ 3.0: Add parameter object to Compute API
> 
>
> Key: IGNITE-22527
> URL: https://issues.apache.org/jira/browse/IGNITE-22527
> Project: Ignite
>  Issue Type: Improvement
>  Components: compute, platforms
>Reporter: Igor Sapego
>Assignee: Igor Sapego
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> *compute* methods have too many arguments. The following part repeats and can 
> be combined into a single argument *job_descriptor*: *units*, 
> *job_class_name*, *options*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


  1   2   3   4   5   6   7   8   9   10   >