[jira] [Commented] (IGNITE-15569) Calcite. JOIN with USING fails.

2021-12-14 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky commented on IGNITE-15569:
-

thanks ! looks good.

> Calcite. JOIN with USING fails.
> ---
>
> Key: IGNITE-15569
> URL: https://issues.apache.org/jira/browse/IGNITE-15569
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Evgeny Stanilovsky
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: calcite, calcite2-required, calcite3-required, ignite-3
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> {noformat}
> statement ok
> CREATE TABLE t1 (a INTEGER, b INTEGER)
> statement ok
> INSERT INTO t1 VALUES (1, 2)
> statement ok
> CREATE TABLE t2 (b INTEGER, c INTEGER)
> statement ok
> INSERT INTO t2 VALUES (2, 3)
> statement ok
> CREATE TABLE t3 (c INTEGER, d INTEGER)
> statement ok
> INSERT INTO t3 VALUES (3, 4)
> query 
> SELECT * FROM t1 JOIN t2 USING (b) JOIN t3 USING (c) ORDER BY 1, 2, 3, 4;
> 
> 1 2   3   4
> {noformat}
> fails with
> {noformat}
> java.lang.ArrayIndexOutOfBoundsException: 7
>   at 
> com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:60)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl$Permute.permute(SqlValidatorImpl.java:7084)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandStar(SqlValidatorImpl.java:662)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:424)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4414)
>   at 
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3657)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:182)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16127) Update Ignite dependency log4j

2021-12-14 Thread Aleksandr (Jira)


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

Aleksandr updated IGNITE-16127:
---
Description: Update Ignite dependency: log4j to 2.16  (was: Update Ignite 
dependency: log4j to 2.160)

> Update Ignite dependency log4j
> --
>
> Key: IGNITE-16127
> URL: https://issues.apache.org/jira/browse/IGNITE-16127
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Aleksandr
>Priority: Major
>
> Update Ignite dependency: log4j to 2.16



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-14555) Calcite engine. Create table from query result

2021-12-14 Thread Evgeny Stanilovsky (Jira)


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

Evgeny Stanilovsky commented on IGNITE-14555:
-

guys, i found in _test_join_types.test_ignored_ we still have such a problem:

{noformat}
class org.apache.ignite.IgniteException: Error at: (test_join_types.test:12). 
Statement: Statement [queries=ArrayList [create table a as select i::tinyint AS 
i from range(1, 101, 1) t1(i)], expected=OK]

at 
org.apache.ignite.internal.processors.query.calcite.logical.SqlScriptRunner$Statement.execute(SqlScriptRunner.java:420)
at 
org.apache.ignite.internal.processors.query.calcite.logical.SqlScriptRunner.run(SqlScriptRunner.java:131)
at 
org.apache.ignite.internal.processors.query.calcite.logical.ScriptTestRunner$1.run(ScriptTestRunner.java:219)
at java.lang.Thread.run(Thread.java:748)
Caused by: class 
org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to parse 
query.
{noformat}


> Calcite engine. Create table from query result
> --
>
> Key: IGNITE-14555
> URL: https://issues.apache.org/jira/browse/IGNITE-14555
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Konstantin Orlov
>Assignee: Aleksey Plekhanov
>Priority: Minor
>  Labels: calcite3-required, ignite-3
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> Provide ability to create table from the result of the query: {{CREATE TABLE 
> my_tbl AS }}.
> Affected tests:
> {{modules/calcite/src/test/sql/types/decimal/decimal_aggregates.test_ignore}}
> {{modules/calcite/src/test/sql/insert/test_insert.test}}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16127) Update Ignite dependency log4j

2021-12-14 Thread Aleksandr (Jira)


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

Aleksandr reassigned IGNITE-16127:
--

Assignee: Aleksandr

> Update Ignite dependency log4j
> --
>
> Key: IGNITE-16127
> URL: https://issues.apache.org/jira/browse/IGNITE-16127
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Aleksandr
>Assignee: Aleksandr
>Priority: Major
>
> Update Ignite dependency: log4j to 2.160



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16127) Update Ignite dependency log4j

2021-12-14 Thread Aleksandr (Jira)
Aleksandr created IGNITE-16127:
--

 Summary: Update Ignite dependency log4j
 Key: IGNITE-16127
 URL: https://issues.apache.org/jira/browse/IGNITE-16127
 Project: Ignite
  Issue Type: Improvement
Reporter: Aleksandr


Update Ignite dependency: log4j to 2.160



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16120) Return real page size if encryption is configured for a cache group even when keys are not injected yet

2021-12-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy updated IGNITE-16120:
---
Summary: Return real page size if encryption is configured for a cache 
group even when keys are not injected yet  (was: Return real page size if 
encryption is configured for a region even when keys are not injected yet)

> Return real page size if encryption is configured for a cache group even when 
> keys are not injected yet
> ---
>
> Key: IGNITE-16120
> URL: https://issues.apache.org/jira/browse/IGNITE-16120
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 2.13
>Reporter: Roman Puchkovskiy
>Assignee: Roman Puchkovskiy
>Priority: Major
>
> When encryption is enabled for a region in the configuration, 
> PageMemory#realPageSize(int) returns a value reduced by some 
> encryption-related data overhead. For instance, currently, when full page 
> size (returned by PageMemory#pageSize()) is 4096, #realPageSize(int) returns 
> 4064.
> But #realPageSize(int) starts returning the 'real' realPageSize only when it 
> has some keys for the provided group ID. The injection of keys happens on 
> node join. The following comment explains why:
> //We can't store keys before node join to cluster(on statically configured 
> cache registration).
> //Because, keys should be received from cluster.
> //Otherwise, we would generate different keys on each started node.
> //So, after starting, coordinator saves locally newly generated encryption 
> keys.
> //And sends that keys to every joining node.
> This means that for short period of time (before the keys are injected) 
> #realPageSize(int) returns full page size (4096); this happens when 
> allocating pages with metadata for caches preconfigured in the region 
> configuration, for example. These pages are initialized with wrong page size. 
> Currently, this page size is not used for these pages during initialization, 
> but in the future this might cause some problem.
> My suggestion is to try remove this gap.
>  # First of all, for the preconfigured groups (listed in IgniteConfiguration 
> which is accessible to PageMemoryImpl constructor) we don't need to wait for 
> keys injection: we just have the list of these groups
>  # Another option (probably better) would be to employ some event system to 
> mark a group as encrypted before it gets created. If such a mechanism exists 
> :) If not, maybe it's not that hard to implement it.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15867) Socket shutdown called twice in GridNioServer

2021-12-14 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-15867:


{panel:title=Branch: [pull/9651/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/9651/head] Base: [master] : New Tests 
(32)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Basic 1{color} [[tests 
2|https://ci.ignite.apache.org/viewLog.html?buildId=6323197]]
* {color:#013220}IgniteBasicTestSuite: 
GridNioServerTest.shouldNotLogWarningsOnKeyClose - PASSED{color}
* {color:#013220}IgniteBasicTestSuite: 
IgniteUtilsUnitTest.shouldNotProduceWarningsWhenClosingAnAlreadyClosedSocket - 
PASSED{color}

{color:#8b}PDS 2{color} [[tests 
30|https://ci.ignite.apache.org/viewLog.html?buildId=6323256]]
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testReadBeforeGracefulShutdown[specificConsistentId=false, 
walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testReReadWhenStateWasNotStored[specificConsistentId=false, 
walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testMultiNodeConsumption[specificConsistentId=false, walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testCdcSingleton[specificConsistentId=false, walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testReReadWhenStateWasNotStored[specificConsistentId=true, 
walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testMultiNodeConsumption[specificConsistentId=true, walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testCdcSingleton[specificConsistentId=true, walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testReadAllKeys[specificConsistentId=false, walMode=FSYNC, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testReReadWhenStateWasNotStored[specificConsistentId=true, 
walMode=BACKGROUND, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testMultiNodeConsumption[specificConsistentId=true, 
walMode=BACKGROUND, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
* {color:#013220}IgnitePdsTestSuite2: 
CdcSelfTest.testCdcSingleton[specificConsistentId=true, walMode=BACKGROUND, 
metricExporter=org.apache.ignite.cdc.CdcSelfTest$$Lambda$17/264767425@5dd903be] 
- PASSED{color}
... and 19 new tests

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6323282buildTypeId=IgniteTests24Java8_RunAll]

> Socket shutdown called twice in GridNioServer
> -
>
> Key: IGNITE-15867
> URL: https://issues.apache.org/jira/browse/IGNITE-15867
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 2.11
>Reporter: Ilya Korol
>Assignee: Roman Puchkovskiy
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> After fixing IGNITE-15367 calling 
> {{GridNioServer$AbstractNioClientWorker.closekey(SelectionKey key)}} would 
> produce excessive {{java.nio.channels.ClosedChannelException}} because 
> {{sock.shutdownInput()}} and {{sock.shutdownInput()}} would be called twice:
> {code:java}
> // GridNioServer$AbstractNioClientWorker
> private void closeKey(SelectionKey key) {
> // Shutdown input and output so that remote client will see correct 
> socket close.
> Socket sock = ((SocketChannel)key.channel()).socket();
> try {
> try {
> sock.shutdownInput();   // <-- First time
> }
> catch (IOException ignored) {
> // No-op.
> }
> try {
> sock.shutdownOutput();  // <-- First time
> }
> catch (IOException ignored) {
> // No-op.
> }
> }
> finally {
> U.close(key, log);  // <-- Second time
> U.close(sock, log); 

[jira] [Updated] (IGNITE-16126) [ignite-extensions] Update dependency: log4j to 2.15.0

2021-12-14 Thread Sergei Ryzhov (Jira)


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

Sergei Ryzhov updated IGNITE-16126:
---
Summary: [ignite-extensions] Update dependency: log4j to 2.15.0  (was: 
[ignite-extensions] Update Ignite dependency: log4j to 2.15.0)

> [ignite-extensions] Update dependency: log4j to 2.15.0
> --
>
> Key: IGNITE-16126
> URL: https://issues.apache.org/jira/browse/IGNITE-16126
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergei Ryzhov
>Assignee: Sergei Ryzhov
>Priority: Major
>
> Update Ignite dependency: log4j to 2.15.0
> https://www.randori.com/blog/cve-2021-44228/



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16126) [ignite-extensions] Update dependency: log4j to 2.15.0

2021-12-14 Thread Sergei Ryzhov (Jira)


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

Sergei Ryzhov updated IGNITE-16126:
---
Description: 
Update dependency: log4j to 2.15.0
https://www.randori.com/blog/cve-2021-44228/

  was:
Update Ignite dependency: log4j to 2.15.0
https://www.randori.com/blog/cve-2021-44228/


> [ignite-extensions] Update dependency: log4j to 2.15.0
> --
>
> Key: IGNITE-16126
> URL: https://issues.apache.org/jira/browse/IGNITE-16126
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergei Ryzhov
>Assignee: Sergei Ryzhov
>Priority: Major
>
> Update dependency: log4j to 2.15.0
> https://www.randori.com/blog/cve-2021-44228/



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16126) [ignite-extensions] Update Ignite dependency: log4j to 2.15.0

2021-12-14 Thread Sergei Ryzhov (Jira)


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

Sergei Ryzhov updated IGNITE-16126:
---
Ignite Flags:   (was: Docs Required,Release Notes Required)

> [ignite-extensions] Update Ignite dependency: log4j to 2.15.0
> -
>
> Key: IGNITE-16126
> URL: https://issues.apache.org/jira/browse/IGNITE-16126
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergei Ryzhov
>Assignee: Sergei Ryzhov
>Priority: Major
>
> Update Ignite dependency: log4j to 2.15.0
> https://www.randori.com/blog/cve-2021-44228/



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16126) [ignite-extensions] Update Ignite dependency: log4j to 2.15.0

2021-12-14 Thread Sergei Ryzhov (Jira)
Sergei Ryzhov created IGNITE-16126:
--

 Summary: [ignite-extensions] Update Ignite dependency: log4j to 
2.15.0
 Key: IGNITE-16126
 URL: https://issues.apache.org/jira/browse/IGNITE-16126
 Project: Ignite
  Issue Type: Bug
Reporter: Sergei Ryzhov
Assignee: Sergei Ryzhov


Update Ignite dependency: log4j to 2.15.0
https://www.randori.com/blog/cve-2021-44228/



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16125) Remove LuckyOrange code from website

2021-12-14 Thread Mauricio Stekl (Jira)
Mauricio Stekl created IGNITE-16125:
---

 Summary: Remove LuckyOrange code from website
 Key: IGNITE-16125
 URL: https://issues.apache.org/jira/browse/IGNITE-16125
 Project: Ignite
  Issue Type: Task
  Components: website
Reporter: Mauricio Stekl
Assignee: Erlan Aytpaev


We discontinued LuckyOrange for the new website. The tracking code was removed 
for the main site, but not from the online documentation.

Please update the Jekyll templates and rebuild the docs (latest and previous 
versions).

 

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16124) deleteAllById has wrong signature

2021-12-14 Thread Michael Reiche (Jira)


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

Michael Reiche updated IGNITE-16124:

Description: 
java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata20.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other


2.6.0-RC1
2.9.1




org.apache.ignite
ignite-spring-data_2.0
${ignite.version}



org.apache.ignite
ignite-core
${ignite.version}



org.apache.ignite
ignite-indexing
${ignite.version}



org.apache.ignite
ignite-spring
${ignite.version}



org.springframework.data
spring-data-commons
${spring.data.version}


 

If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
deleteAll is flagged

java: name clash: deleteAll(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository and 
deleteAll(java.lang.Iterable) in 
org.apache.ignite.springdata.repository.IgniteRepository have the same erasure, 
yet neither overrides the other

And 2.2-ext gives the following:

org.apache.ignite
ignite-spring-data-2.2-ext
1.0.0


java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata22.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other



package com.example.ignite;

import org.apache.ignite.springdata.repository.IgniteRepository;
import org.apache.ignite.springdata.repository.config.RepositoryConfig;

@RepositoryConfig(cacheName = "myCache")
public interface EmployeeRepository extends IgniteRepository

{ EmployeeDTO getEmployeeDTOById(ID id); }

  was:
java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata20.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other


2.6.0-RC1
2.9.1




org.apache.ignite
ignite-spring-data_2.0
${ignite.version}



org.apache.ignite
ignite-core
${ignite.version}



org.apache.ignite
ignite-indexing
${ignite.version}



org.apache.ignite
ignite-spring
${ignite.version}



org.springframework.data
spring-data-commons
${spring.data.version}


 

If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
deleteAll is flagged

java: name clash: deleteAll(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository and 
deleteAll(java.lang.Iterable) in 
org.apache.ignite.springdata.repository.IgniteRepository have the same erasure, 
yet neither overrides the other



package com.example.ignite;

import org.apache.ignite.springdata.repository.IgniteRepository;
import org.apache.ignite.springdata.repository.config.RepositoryConfig;

@RepositoryConfig(cacheName = "myCache")
public interface EmployeeRepository extends IgniteRepository {
EmployeeDTO getEmployeeDTOById(ID id);
}


> deleteAllById has wrong signature
> -
>
> Key: IGNITE-16124
> URL: https://issues.apache.org/jira/browse/IGNITE-16124
> Project: Ignite
>  Issue Type: Bug
>Reporter: Michael Reiche
>Priority: Major
>
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata20.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> 
> 2.6.0-RC1
> 2.9.1
> 
> 
> 
> org.apache.ignite
> ignite-spring-data_2.0
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-core
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-indexing
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-spring
> ${ignite.version}
> 
> 
> org.springframework.data
> spring-data-commons
> ${spring.data.version}
> 
>  
> If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
> deleteAll is flagged
> java: name clash: deleteAll(java.lang.Iterable com.example.ignite.EmployeeDTO>) in 
> org.springframework.data.repository.CrudRepository and 
> deleteAll(java.lang.Iterable) in 
> org.apache.ignite.springdata.repository.IgniteRepository have the same 
> erasure, yet neither overrides the other
> And 2.2-ext gives the following:
> org.apache.ignite
> ignite-spring-data-2.2-ext
> 1.0.0
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata22.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> package com.example.ignite;
> import org.apache.ignite.springdata.repository.IgniteRepository;
> import org.apache.ignite.springdata.repository.config.RepositoryConfig;
> 

[jira] [Updated] (IGNITE-16124) deleteAllById has wrong signature

2021-12-14 Thread Michael Reiche (Jira)


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

Michael Reiche updated IGNITE-16124:

Description: 
java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata20.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other


2.6.0-RC1
2.9.1




org.apache.ignite
ignite-spring-data_2.0
${ignite.version}



org.apache.ignite
ignite-core
${ignite.version}



org.apache.ignite
ignite-indexing
${ignite.version}



org.apache.ignite
ignite-spring
${ignite.version}



org.springframework.data
spring-data-commons
${spring.data.version}


 

If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
deleteAll is flagged

java: name clash: deleteAll(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository and 
deleteAll(java.lang.Iterable) in 
org.apache.ignite.springdata.repository.IgniteRepository have the same erasure, 
yet neither overrides the other



package com.example.ignite;

import org.apache.ignite.springdata.repository.IgniteRepository;
import org.apache.ignite.springdata.repository.config.RepositoryConfig;

@RepositoryConfig(cacheName = "myCache")
public interface EmployeeRepository extends IgniteRepository {
EmployeeDTO getEmployeeDTOById(ID id);
}

  was:
java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata20.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other




2.6.0-RC1
2.9.1




org.apache.ignite
ignite-spring-data_2.0
${ignite.version}



org.apache.ignite
ignite-core
${ignite.version}



org.apache.ignite
ignite-indexing
${ignite.version}



org.apache.ignite
ignite-spring
${ignite.version}



org.springframework.data
spring-data-commons
${spring.data.version}



> deleteAllById has wrong signature
> -
>
> Key: IGNITE-16124
> URL: https://issues.apache.org/jira/browse/IGNITE-16124
> Project: Ignite
>  Issue Type: Bug
>Reporter: Michael Reiche
>Priority: Major
>
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata20.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> 
> 2.6.0-RC1
> 2.9.1
> 
> 
> 
> org.apache.ignite
> ignite-spring-data_2.0
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-core
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-indexing
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-spring
> ${ignite.version}
> 
> 
> org.springframework.data
> spring-data-commons
> ${spring.data.version}
> 
>  
> If ignite-spring-data is used instead of ingite-spring-data_2.0,  the method 
> deleteAll is flagged
> java: name clash: deleteAll(java.lang.Iterable com.example.ignite.EmployeeDTO>) in 
> org.springframework.data.repository.CrudRepository and 
> deleteAll(java.lang.Iterable) in 
> org.apache.ignite.springdata.repository.IgniteRepository have the same 
> erasure, yet neither overrides the other
> package com.example.ignite;
> import org.apache.ignite.springdata.repository.IgniteRepository;
> import org.apache.ignite.springdata.repository.config.RepositoryConfig;
> @RepositoryConfig(cacheName = "myCache")
> public interface EmployeeRepository extends 
> IgniteRepository {
> EmployeeDTO getEmployeeDTOById(ID id);
> }



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16124) deleteAllById has wrong signature

2021-12-14 Thread Michael Reiche (Jira)


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

Michael Reiche updated IGNITE-16124:

Summary: deleteAllById has wrong signature  (was: deleteAllByIds has wrong 
signature)

> deleteAllById has wrong signature
> -
>
> Key: IGNITE-16124
> URL: https://issues.apache.org/jira/browse/IGNITE-16124
> Project: Ignite
>  Issue Type: Bug
>Reporter: Michael Reiche
>Priority: Major
>
> java: name clash: deleteAllById(java.lang.Iterable) in 
> org.apache.ignite.springdata20.repository.IgniteRepository and 
> deleteAllById(java.lang.Iterable) in 
> org.springframework.data.repository.CrudRepository have the same erasure, yet 
> neither overrides the other
> 
> 2.6.0-RC1
> 2.9.1
> 
> 
> 
> org.apache.ignite
> ignite-spring-data_2.0
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-core
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-indexing
> ${ignite.version}
> 
> 
> org.apache.ignite
> ignite-spring
> ${ignite.version}
> 
> 
> org.springframework.data
> spring-data-commons
> ${spring.data.version}
> 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16124) deleteAllByIds has wrong signature

2021-12-14 Thread Michael Reiche (Jira)
Michael Reiche created IGNITE-16124:
---

 Summary: deleteAllByIds has wrong signature
 Key: IGNITE-16124
 URL: https://issues.apache.org/jira/browse/IGNITE-16124
 Project: Ignite
  Issue Type: Bug
Reporter: Michael Reiche


java: name clash: deleteAllById(java.lang.Iterable) in 
org.apache.ignite.springdata20.repository.IgniteRepository and 
deleteAllById(java.lang.Iterable) in 
org.springframework.data.repository.CrudRepository have the same erasure, yet 
neither overrides the other




2.6.0-RC1
2.9.1




org.apache.ignite
ignite-spring-data_2.0
${ignite.version}



org.apache.ignite
ignite-core
${ignite.version}



org.apache.ignite
ignite-indexing
${ignite.version}



org.apache.ignite
ignite-spring
${ignite.version}



org.springframework.data
spring-data-commons
${spring.data.version}




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15940) Class parsing API and simple class descriptor format

2021-12-14 Thread Semyon Danilov (Jira)


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

Semyon Danilov commented on IGNITE-15940:
-

Merged to main

> Class parsing API and simple class descriptor format
> 
>
> Key: IGNITE-15940
> URL: https://issues.apache.org/jira/browse/IGNITE-15940
> Project: Ignite
>  Issue Type: Task
>  Components: networking
>Reporter: Sergey Chugunov
>Assignee: Semyon Danilov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>  Time Spent: 8h 50m
>  Remaining Estimate: 0h
>
> To enable User Object Serialization we need to define class descriptor format 
> and API for parsing java classes into this format.
> As the first step, we consider simple cases - Serializable/Externalizable 
> classes with primitive or Serializable/Externalizable fields.
> Look here for reference:
> https://github.com/gridgain/gridgain-9-ce/blob/iep-67/modules/network/README.md#class-descriptor



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15940) Class parsing API and simple class descriptor format

2021-12-14 Thread Aleksandr Polovtcev (Jira)


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

Aleksandr Polovtcev commented on IGNITE-15940:
--

Looks very good to me!

> Class parsing API and simple class descriptor format
> 
>
> Key: IGNITE-15940
> URL: https://issues.apache.org/jira/browse/IGNITE-15940
> Project: Ignite
>  Issue Type: Task
>  Components: networking
>Reporter: Sergey Chugunov
>Assignee: Semyon Danilov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>  Time Spent: 8h 40m
>  Remaining Estimate: 0h
>
> To enable User Object Serialization we need to define class descriptor format 
> and API for parsing java classes into this format.
> As the first step, we consider simple cases - Serializable/Externalizable 
> classes with primitive or Serializable/Externalizable fields.
> Look here for reference:
> https://github.com/gridgain/gridgain-9-ce/blob/iep-67/modules/network/README.md#class-descriptor



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Resolved] (IGNITE-16123) Broken LazyOnDmlTest for MVCC due to incorrect check in InlineFilterClosure

2021-12-14 Thread Maksim Timonin (Jira)


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

Maksim Timonin resolved IGNITE-16123.
-
Resolution: Fixed

> Broken LazyOnDmlTest for MVCC due to incorrect check in InlineFilterClosure
> ---
>
> Key: IGNITE-16123
> URL: https://issues.apache.org/jira/browse/IGNITE-16123
> Project: Ignite
>  Issue Type: Bug
>Reporter: Maksim Timonin
>Assignee: Maksim Timonin
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> LazyOnDmlTest failed.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Resolved] (IGNITE-16122) Fix compilation after IGNITE-15885

2021-12-14 Thread Semyon Danilov (Jira)


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

Semyon Danilov resolved IGNITE-16122.
-
Fix Version/s: 3.0.0-alpha4
 Reviewer: Semyon Danilov
   Resolution: Resolved

LGTM! Thanks for the quick fix, merged to the main branch

> Fix compilation after IGNITE-15885
> --
>
> Key: IGNITE-16122
> URL: https://issues.apache.org/jira/browse/IGNITE-16122
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Blocker
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> There were some merge conflicts that broke the compilation



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16123) Broken LazyOnDmlTest for MVCC due to incorrect check in InlineFilterClosure

2021-12-14 Thread Maksim Timonin (Jira)
Maksim Timonin created IGNITE-16123:
---

 Summary: Broken LazyOnDmlTest for MVCC due to incorrect check in 
InlineFilterClosure
 Key: IGNITE-16123
 URL: https://issues.apache.org/jira/browse/IGNITE-16123
 Project: Ignite
  Issue Type: Bug
Reporter: Maksim Timonin
Assignee: Maksim Timonin


LazyOnDmlTest failed.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16122) Fix compilation after IGNITE-15885

2021-12-14 Thread Aleksandr Polovtcev (Jira)
Aleksandr Polovtcev created IGNITE-16122:


 Summary: Fix compilation after IGNITE-15885
 Key: IGNITE-16122
 URL: https://issues.apache.org/jira/browse/IGNITE-16122
 Project: Ignite
  Issue Type: Task
Reporter: Aleksandr Polovtcev
Assignee: Aleksandr Polovtcev


There were some merge conflicts that broke the compilation



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16121) Implement key-value API for java thin client for 3.0

2021-12-14 Thread Igor Sapego (Jira)
Igor Sapego created IGNITE-16121:


 Summary: Implement key-value API for java thin client for 3.0
 Key: IGNITE-16121
 URL: https://issues.apache.org/jira/browse/IGNITE-16121
 Project: Ignite
  Issue Type: New Feature
  Components: thin client
Reporter: Igor Sapego
 Fix For: 3.0.0-alpha4


Implement KeyValueView for Java thin client.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-15885) Create SortedIndexStorage based on RocksDB

2021-12-14 Thread Semyon Danilov (Jira)


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

Semyon Danilov commented on IGNITE-15885:
-

LGTM! Thanks for the contribution, merged to the main branch.

> Create SortedIndexStorage based on RocksDB
> --
>
> Key: IGNITE-15885
> URL: https://issues.apache.org/jira/browse/IGNITE-15885
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
>  Time Spent: 7.5h
>  Remaining Estimate: 0h
>
> h1. API
> * Add {{SortedIndexStorage}} interface:
> {code:java}
> public interface SortedIndexStorage extends AutoCloseable {
> /** Index key factory */
> IndexKeyFactory indexKeyFactory();
> /** Index descriptor */
> SortedIndexDescriptor indexDescriptor();
> /** Adds a value */
> void put(IndexKey key, SearchRow value);
> /** Removes a value */
> void remove(IndexKey key);
> /** Range scan */
> Cursor range(IndexKeyPrefix lowerBound, IndexKeyPrefix 
> upperBound);
> /** Removes all values */
> void destroy();
> }
> {code}
> * {{IndexKeyPrefix}} can contain a smaller number of columns, than the 
> {{IndexKey}}, needed for the prefix search.
> {code:java}
> public interface IndexKey {
> byte[] asBytes();
> }
> public interface IndexKeyPrefix {
> Object[] prefixColumnValues();
> }
> {code}
> * {{SearchRow}} is a class from the {{storage-api}} that represents a key 
> from the partition storage.
> h1. Implementation details
> For the initial implementation it is suggested to use {{BinaryRow}} 
> serialization mechanism (it is proposed to implement the {{IndexKey}} on top 
> of it, simply ignoring the value bytes) to store it in RocksDB. First 
> implementation will also use a naive comparator, that will convert each 
> {{BinaryRow}} into a {{Row}} and compare individual deserialized columns. 
> It is also proposed to store partition storage keys as values in the index 
> storage.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16120) Return real page size if encryption is configured for a region even when keys are not injected yet

2021-12-14 Thread Roman Puchkovskiy (Jira)
Roman Puchkovskiy created IGNITE-16120:
--

 Summary: Return real page size if encryption is configured for a 
region even when keys are not injected yet
 Key: IGNITE-16120
 URL: https://issues.apache.org/jira/browse/IGNITE-16120
 Project: Ignite
  Issue Type: Improvement
  Components: cache
Affects Versions: 2.13
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy


When encryption is enabled for a region in the configuration, 
PageMemory#realPageSize(int) returns a value reduced by some encryption-related 
data overhead. For instance, currently, when full page size (returned by 
PageMemory#pageSize()) is 4096, #realPageSize(int) returns 4064.

But #realPageSize(int) starts returning the 'real' realPageSize only when it 
has some keys for the provided group ID. The injection of keys happens on node 
join. The following comment explains why:

//We can't store keys before node join to cluster(on statically configured 
cache registration).
//Because, keys should be received from cluster.
//Otherwise, we would generate different keys on each started node.
//So, after starting, coordinator saves locally newly generated encryption keys.
//And sends that keys to every joining node.

This means that for short period of time (before the keys are injected) 
#realPageSize(int) returns full page size (4096); this happens when allocating 
pages with metadata for caches preconfigured in the region configuration, for 
example. These pages are initialized with wrong page size. Currently, this page 
size is not used for these pages during initialization, but in the future this 
might cause some problem.

My suggestion is to try remove this gap.
 # First of all, for the preconfigured groups (listed in IgniteConfiguration 
which is accessible to PageMemoryImpl constructor) we don't need to wait for 
keys injection: we just have the list of these groups
 # Another option (probably better) would be to employ some event system to 
mark a group as encrypted before it gets created. If such a mechanism exists :) 
If not, maybe it's not that hard to implement it.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-14945) IndexQuery should use inline IO for internal filtering.

2021-12-14 Thread Maksim Timonin (Jira)


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

Maksim Timonin commented on IGNITE-14945:
-

A lot of thanks to [~ibessonov] for suggestions related to IO part.

Merged to master.

> IndexQuery should use inline IO for internal filtering.
> ---
>
> Key: IGNITE-14945
> URL: https://issues.apache.org/jira/browse/IGNITE-14945
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Maksim Timonin
>Assignee: Maksim Timonin
>Priority: Major
>  Labels: IEP-71
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> For comparison of index keys it's required:
>  # to init cache data row
>  # access fields with BinaryObject API
> So, it's possible to use inline IO for filtering. It can help:
>  # speed up comparison (Inline IO access is faster than BinaryObject API).
>  # to avoid init cache data rows for filtered items (in case there are more 
> filtered items).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16119) Caclite engine. Refactor IgniteBuiltInMethod and IgniteMethod classes

2021-12-14 Thread Aleksey Plekhanov (Jira)
Aleksey Plekhanov created IGNITE-16119:
--

 Summary: Caclite engine. Refactor IgniteBuiltInMethod and 
IgniteMethod classes
 Key: IGNITE-16119
 URL: https://issues.apache.org/jira/browse/IGNITE-16119
 Project: Ignite
  Issue Type: Improvement
Reporter: Aleksey Plekhanov


Looks like {{IgniteBuiltInMethod}} and {{IgniteMethod}} classes have the same 
purpose. We should choose and leave one of them.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Resolved] (IGNITE-15994) Create NUMA allocator test suite.

2021-12-14 Thread Ivan Daschinsky (Jira)


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

Ivan Daschinsky resolved IGNITE-15994.
--
Resolution: Fixed

> Create NUMA allocator test suite.
> -
>
> Key: IGNITE-15994
> URL: https://issues.apache.org/jira/browse/IGNITE-15994
> Project: Ignite
>  Issue Type: Task
>Reporter: Ivan Daschinsky
>Assignee: Ivan Daschinsky
>Priority: Major
>
> Need to create specific suite on TC 1, link to existing suite in TC 2 is in 
> links. 
> Suite should be excluded from {{Run All}} until merge of IGNITE-15922
> [PR|https://github.com/apache/ignite/pull/9569] for testing 
> Module name: {{:ignite-numa-allocator}}
> Test suite name: {{NumaAllocatorTestSuite}}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16118) GridCacheEntryRemovedException appears in server log when performing concurrent cache read with expiry policy.

2021-12-14 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-16118:
--
Description: 
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while *reading a non-expired* 
cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}

It looks like there is a race between {{sendTtlUpdateRequest(UUID, 
GridCacheTtlUpdateRequest)}} and heap entry eviction. In this case, the 
keys-loop is interrupted by the NPE ( which is currently not outputting 
anywhere). 

Since ttl updates are not ordered (see IGNITE-305), it is difficult to 
reproduce the real-world problem that this issue could cause, but we shouldn't 
log a weird exception anyway and continue the loop without NPE.

Reproducer:

{code:java}
public class EntryRemovedOnReadTest extends GridCommonAbstractTest {
private final ListeningTestLogger log = new 
ListeningTestLogger(GridAbstractTest.log);

@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setGridLogger(log)
.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME)
.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
.setCacheMode(REPLICATED)
);
}

@Test
public void test() throws Exception {
LogListener lsnr = LogListener.matches("Failed to send TTL update 
request").build();

log.registerListener(lsnr);

startGridsMultiThreaded(4);

Map vals = new TreeMap<>();

for (int i = 1; i < 10; i++)
vals.put(i, i);

jcache(0).putAll(vals);

assertFalse(lsnr.check());

long timeout = 20_000L;
long stopTime = System.currentTimeMillis() + timeout;
int iter = 0;

IgniteCache cache = jcache(1).withExpiryPolicy(new 
ExpiryPolicy() {
@Override public Duration getExpiryForAccess() {
return new Duration(TimeUnit.MILLISECONDS, timeout);
}

@Override public Duration getExpiryForCreation() {  return null; }
@Override public Duration getExpiryForUpdate() { return null; }
});

while (System.currentTimeMillis() < stopTime) {
cache.getAll(vals.keySet());

assertFalse("iter=" + ++iter, lsnr.check());
}
}
}
{code}


  was:
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while *reading a non-expired* 
cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
at 

[jira] [Updated] (IGNITE-16118) GridCacheEntryRemovedException appears in server log when performing concurrent cache read with expiry policy.

2021-12-14 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-16118:
--
Description: 
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while *reading a non-expired* 
cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}

It looks like there is a race between {{sendTtlUpdateRequest(UUID, 
GridCacheTtlUpdateRequest)}} and heap entry eviction, in this case, the 
keys-loop is interrupted by the NPE ( which is currently not outputting 
anywhere). 

Since ttl updates are not ordered (see IGNITE-305), it is difficult to 
reproduce the real-world problem that this issue could cause, but we shouldn't 
log a weird exception anyway and continue the loop without NPE.

Reproducer:

{code:java}
public class EntryRemovedOnReadTest extends GridCommonAbstractTest {
private final ListeningTestLogger log = new 
ListeningTestLogger(GridAbstractTest.log);

@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setGridLogger(log)
.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME)
.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
.setCacheMode(REPLICATED)
);
}

@Test
public void test() throws Exception {
LogListener lsnr = LogListener.matches("Failed to send TTL update 
request").build();

log.registerListener(lsnr);

startGridsMultiThreaded(4);

Map vals = new TreeMap<>();

for (int i = 1; i < 10; i++)
vals.put(i, i);

jcache(0).putAll(vals);

assertFalse(lsnr.check());

long timeout = 20_000L;
long stopTime = System.currentTimeMillis() + timeout;
int iter = 0;

IgniteCache cache = jcache(1).withExpiryPolicy(new 
ExpiryPolicy() {
@Override public Duration getExpiryForAccess() {
return new Duration(TimeUnit.MILLISECONDS, timeout);
}

@Override public Duration getExpiryForCreation() {  return null; }
@Override public Duration getExpiryForUpdate() { return null; }
});

while (System.currentTimeMillis() < stopTime) {
cache.getAll(vals.keySet());

assertFalse("iter=" + ++iter, lsnr.check());
}
}
}
{code}


  was:
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while concurrently *reading a 
non-expired* cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)

[jira] [Updated] (IGNITE-16118) GridCacheEntryRemovedException appears in server log when performing concurrent cache read with expiry policy.

2021-12-14 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-16118:
--
Description: 
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while concurrently *reading a 
non-expired* cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}

It looks like there is a race between {{sendTtlUpdateRequest(UUID, 
GridCacheTtlUpdateRequest)}} and heap entry eviction, in this case, the 
keys-loop is interrupted by the NPE ( which is currently not outputting 
anywhere). 

Since ttl updates are not ordered (see IGNITE-305), it is difficult to 
reproduce the real-world problem that this issue could cause, but we shouldn't 
log a weird exception anyway and continue the loop without NPE.

Reproducer:

{code:java}
public class EntryRemovedOnReadTest extends GridCommonAbstractTest {
private final ListeningTestLogger log = new 
ListeningTestLogger(GridAbstractTest.log);

@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setGridLogger(log)
.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME)
.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
.setCacheMode(REPLICATED)
);
}

@Test
public void test() throws Exception {
LogListener lsnr = LogListener.matches("Failed to send TTL update 
request").build();

log.registerListener(lsnr);

startGridsMultiThreaded(4);

Map vals = new TreeMap<>();

for (int i = 1; i < 10; i++)
vals.put(i, i);

jcache(0).putAll(vals);

assertFalse(lsnr.check());

long timeout = 20_000L;
long stopTime = System.currentTimeMillis() + timeout;
int iter = 0;

IgniteCache cache = jcache(1).withExpiryPolicy(new 
ExpiryPolicy() {
@Override public Duration getExpiryForAccess() {
return new Duration(TimeUnit.MILLISECONDS, timeout);
}

@Override public Duration getExpiryForCreation() {  return null; }
@Override public Duration getExpiryForUpdate() { return null; }
});

while (System.currentTimeMillis() < stopTime) {
cache.getAll(vals.keySet());

assertFalse("iter=" + ++iter, lsnr.check());
}
}
}
{code}


  was:
In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while concurrently *reading a 
non-expired* cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 

[jira] [Updated] (IGNITE-16118) GridCacheEntryRemovedException appears in server log when performing concurrent cache read with expiry policy.

2021-12-14 Thread Pavel Pereslegin (Jira)


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

Pavel Pereslegin updated IGNITE-16118:
--
Ignite Flags:   (was: Docs Required,Release Notes Required)

> GridCacheEntryRemovedException appears in server log when performing 
> concurrent cache read with expiry policy.
> --
>
> Key: IGNITE-16118
> URL: https://issues.apache.org/jira/browse/IGNITE-16118
> Project: Ignite
>  Issue Type: Bug
>Reporter: Pavel Pereslegin
>Assignee: Pavel Pereslegin
>Priority: Minor
>
> In a rare case, you might observe a confusing 
> {{GridCacheEntryRemovedException "Failed to send TTL update request"}} in 
> logs while concurrently *reading a non-expired* cache value.
> {noformat}
> [ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
> send TTL update request.
> org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
>   at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748)
> {noformat}
> It looks like there is a race between {{sendTtlUpdateRequest(UUID, 
> GridCacheTtlUpdateRequest)}} and heap entry eviction, in this case, the 
> keys-loop is interrupted by the NPE ( which is currently not outputting 
> anywhere). 
> Since ttl updates are not ordered (see IGNITE-305), it is difficult to 
> reproduce the real-world problem that this issue could cause, but we 
> shouldn't log a weird exception anyway and continue the loop without NPE.
> Reproducer:
> {code:java}
> public class EntryRemovedOnReadTest extends GridCommonAbstractTest {
> private final ListeningTestLogger log = new 
> ListeningTestLogger(GridAbstractTest.log);
> @Override protected IgniteConfiguration getConfiguration(String 
> igniteInstanceName) throws Exception {
> return super.getConfiguration(igniteInstanceName)
> .setGridLogger(log)
> .setCacheConfiguration(new CacheConfiguration Integer>(DEFAULT_CACHE_NAME)
> .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
> .setCacheMode(REPLICATED)
> );
> }
> @Test
> public void test() throws Exception {
> LogListener lsnr = LogListener.matches("Failed to send TTL update 
> request").build();
> log.registerListener(lsnr);
> startGridsMultiThreaded(4);
> Map vals = new TreeMap<>();
> for (int i = 1; i < 10; i++)
> vals.put(i, i);
> jcache(0).putAll(vals);
> assertFalse(lsnr.check());
> long timeout = 20_000L;
> long stopTime = System.currentTimeMillis() + timeout;
> int iter = 0;
> IgniteCache cache = jcache(1).withExpiryPolicy(new 
> ExpiryPolicy() {
> @Override public Duration getExpiryForAccess() {
> return new Duration(TimeUnit.MILLISECONDS, timeout);
> }
> @Override public Duration getExpiryForCreation() {  return null; }
> @Override public Duration getExpiryForUpdate() { return null; }
> });
> while (System.currentTimeMillis() < stopTime) {
> cache.getAll(vals.keySet());
> assertFalse("iter=" + ++iter, lsnr.check());
> }
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16118) GridCacheEntryRemovedException appears in server log when performing concurrent cache read with expiry policy.

2021-12-14 Thread Pavel Pereslegin (Jira)
Pavel Pereslegin created IGNITE-16118:
-

 Summary: GridCacheEntryRemovedException appears in server log when 
performing concurrent cache read with expiry policy.
 Key: IGNITE-16118
 URL: https://issues.apache.org/jira/browse/IGNITE-16118
 Project: Ignite
  Issue Type: Bug
Reporter: Pavel Pereslegin
Assignee: Pavel Pereslegin


In a rare case, you might observe a confusing {{GridCacheEntryRemovedException 
"Failed to send TTL update request"}} in logs while concurrently *reading a 
non-expired* cache value.

{noformat}
[ERROR][sys-#258%expiry.EntryRemovedOnReadTest2%][root]  Failed to 
send TTL update request.
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkObsolete(GridCacheMapEntry.java:3052)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReadersLocked(GridDhtCacheEntry.java:732)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.checkReaders(GridDhtCacheEntry.java:708)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.readers(GridDhtCacheEntry.java:416)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter$8.run(GridDhtCacheAdapter.java:1122)
at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7329)
at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}

It looks like there is a race between {{sendTtlUpdateRequest(UUID, 
GridCacheTtlUpdateRequest)}} and heap entry eviction, in this case, the 
keys-loop is interrupted by the NPE, which is currently not outputting 
anywhere. 

Since ttl updates are not ordered (see IGNITE-305), it is difficult to 
reproduce the real-world problem that this issue could cause, but we shouldn't 
log a weird exception anyway and continue the loop without NPE.

Reproducer:

{code:java}
public class EntryRemovedOnReadTest extends GridCommonAbstractTest {
private final ListeningTestLogger log = new 
ListeningTestLogger(GridAbstractTest.log);

@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
return super.getConfiguration(igniteInstanceName)
.setGridLogger(log)
.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME)
.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
.setCacheMode(REPLICATED)
);
}

@Test
public void test() throws Exception {
LogListener lsnr = LogListener.matches("Failed to send TTL update 
request").build();

log.registerListener(lsnr);

startGridsMultiThreaded(4);

Map vals = new TreeMap<>();

for (int i = 1; i < 10; i++)
vals.put(i, i);

jcache(0).putAll(vals);

assertFalse(lsnr.check());

long timeout = 20_000L;
long stopTime = System.currentTimeMillis() + timeout;
int iter = 0;

IgniteCache cache = jcache(1).withExpiryPolicy(new 
ExpiryPolicy() {
@Override public Duration getExpiryForAccess() {
return new Duration(TimeUnit.MILLISECONDS, timeout);
}

@Override public Duration getExpiryForCreation() {  return null; }
@Override public Duration getExpiryForUpdate() { return null; }
});

while (System.currentTimeMillis() < stopTime) {
cache.getAll(vals.keySet());

assertFalse("iter=" + ++iter, lsnr.check());
}
}
}
{code}




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16108) Investigate of Storage Bridge Interface

2021-12-14 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov reassigned IGNITE-16108:
-

Assignee: Konstantin Orlov

> Investigate of Storage Bridge Interface
> ---
>
> Key: IGNITE-16108
> URL: https://issues.apache.org/jira/browse/IGNITE-16108
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Yury Gerzhedovich
>Assignee: Konstantin Orlov
>Priority: Major
>  Labels: ignite-3
>
> As the Apache Ignite 3.x supports different storage engines will be good to 
> have unified interaction with them through some Storage Engine Bridge 
> Interface. Let's write some POCs to understand deeper what we need to do in 
> this direction.
> Result of the task should be set of tickets for realization the bridge.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16089) ItMetadataTest.columnNames fails with AssertionError

2021-12-14 Thread Taras Ledkov (Jira)


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

Taras Ledkov commented on IGNITE-16089:
---

[~korlov], the patch is OK with me.

> ItMetadataTest.columnNames fails with AssertionError
> 
>
> Key: IGNITE-16089
> URL: https://issues.apache.org/jira/browse/IGNITE-16089
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Assignee: Konstantin Orlov
>Priority: Blocker
>  Labels: ignite-3
>
> _ItMetadataTest.columnNames_ fails with the following exception:
> {noformat}
> java.lang.AssertionError: Unexpected type of result: RecordType() MULTISET
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.nativeType(TypeUtils.java:388)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.ResultSetMetadataImpl.fields(ResultSetMetadataImpl.java:60)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:364)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnNames(ItMetadataTest.java:67)
> {noformat}
> Looks like the support of _SqlTypeName#Multiset_ should be added.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16110) Enrich GetLeaderResponse with term field

2021-12-14 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-16110:
-
Labels: ignite-3  (was: )

> Enrich GetLeaderResponse with term field
> 
>
> Key: IGNITE-16110
> URL: https://issues.apache.org/jira/browse/IGNITE-16110
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Priority: Major
>  Labels: ignite-3
>




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16109) Add listeners to raft module

2021-12-14 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-16109:
-
Labels: ignite-3  (was: )

> Add listeners to raft module
> 
>
> Key: IGNITE-16109
> URL: https://issues.apache.org/jira/browse/IGNITE-16109
> Project: Ignite
>  Issue Type: Task
>Reporter: Kirill Gusakov
>Priority: Major
>  Labels: ignite-3
>
> For handle rebalance feature safe and correct we need to add the following 
> listeners on the start of new Raft node:
> - {{onLeaderChanged()}} - must be executed from the new leader when raft 
> group changes the leader.
> - {{onChangePeersError(errorContext)}} - must be executed when any errors 
> during changePeers occurred
> - {{onChangePeersCommitted(peers)}} - must be executed with the list of new 
> peers when changePeers has successfully done.
> Also, maybe we will need additional listener method
> - {{onStableUpdate(peers)}}, which must be invoked together with applying 
> configuration (oldQuorum, newQuorum) -> (newQuorum)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16097) Some tests are flaky in ItNodeTest

2021-12-14 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-16097:
-
Labels: ignite-3  (was: )

> Some tests are flaky in ItNodeTest
> --
>
> Key: IGNITE-16097
> URL: https://issues.apache.org/jira/browse/IGNITE-16097
> Project: Ignite
>  Issue Type: Task
>Reporter: Sergey Uttsel
>Assignee: Sergey Uttsel
>Priority: Major
>  Labels: ignite-3
>
> Some tests are flaky in org.apache.ignite.raft.jraft.core.ItNodeTest:
>  # testLeaderTransferWithReplicatorStateListener
>  # testTripleNodesWithReplicatorStateListener
>  # testResetLearners
>  # testLeaderTransfer
>  # testLeaderTransferBeforeLogIsCompleted
>  # testLeaderTransferResumeOnFailure
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16079) Rename search and data keys for the Partition Storage

2021-12-14 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-16079:
-
Labels: ignite-3  (was: )

> Rename search and data keys for the Partition Storage
> -
>
> Key: IGNITE-16079
> URL: https://issues.apache.org/jira/browse/IGNITE-16079
> Project: Ignite
>  Issue Type: Task
>Reporter: Aleksandr Polovtcev
>Assignee: Aleksandr Polovtcev
>Priority: Major
>  Labels: ignite-3
>
> There are currently the following classes in the {{PartitionStorage}} that 
> act as data and search keys: {{SearchRow}} and {{DataRow}}. This makes the 
> {{SortedIndexStorage}} interface hard to understand, because it stores 
> {{SearchRows}} as values. It is proposed to rename these classes:
>  {{SearchRow}} -> {{PartitionKey}}
>  {{DataRow}} -> {{PartitionData}}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16087) Thin 3.0: Implement all ClientRecordView operations

2021-12-14 Thread Pavel Tupitsyn (Jira)


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

Pavel Tupitsyn commented on IGNITE-16087:
-

Merged to main: f17b8cbaa2385ba64492221fefb28080420c62d8

> Thin 3.0: Implement all ClientRecordView operations
> ---
>
> Key: IGNITE-16087
> URL: https://issues.apache.org/jira/browse/IGNITE-16087
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 3.0.0-alpha4
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Finish the ClientRecordView implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-16087) Thin 3.0: Implement all ClientRecordView operations

2021-12-14 Thread Igor Sapego (Jira)


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

Igor Sapego commented on IGNITE-16087:
--

[~ptupitsyn] looks good

> Thin 3.0: Implement all ClientRecordView operations
> ---
>
> Key: IGNITE-16087
> URL: https://issues.apache.org/jira/browse/IGNITE-16087
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Affects Versions: 3.0.0-alpha4
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>
> Finish the ClientRecordView implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16117) Thin 3.0: Convert async exceptions in sync APIs

2021-12-14 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-16117:
---

 Summary: Thin 3.0: Convert async exceptions in sync APIs
 Key: IGNITE-16117
 URL: https://issues.apache.org/jira/browse/IGNITE-16117
 Project: Ignite
  Issue Type: Improvement
  Components: thin client
Affects Versions: 3.0.0-alpha3
Reporter: Pavel Tupitsyn
Assignee: Pavel Tupitsyn
 Fix For: 3.0.0-alpha4


Currently, synchronous APIs delegate to async variants like this:
{code:java}
public Collection deleteAllExact(@NotNull Collection recs) {
return deleteAllExactAsync(recs).join();
}
{code}

However, *join()* throws *CompletionException* so users have to unwrap the 
actual exception manually.

Implement exception unwrapping in all synchronous client APIs. See how 
server-side APIs deal with this in *AbstractTableView#sync*.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] (IGNITE-16090) ItMetadataTest.columnOrder cannot be run twice in the same JVM

2021-12-14 Thread Konstantin Orlov (Jira)


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


Konstantin Orlov deleted comment on IGNITE-16090:
---

was (Author: korlov):
[~tledkov-gridgain], could you please do a review?

> ItMetadataTest.columnOrder cannot be run twice in the same JVM
> --
>
> Key: IGNITE-16090
> URL: https://issues.apache.org/jira/browse/IGNITE-16090
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Assignee: Konstantin Orlov
>Priority: Blocker
>  Labels: ignite-3
>
> The attempt to run the _ItMetadataTest.columnOrder_ test twice in the same 
> JVM results in the following exception:
> {noformat}
> class org.apache.ignite.lang.IgniteException: An error occurred while query 
> executing.
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.checkException(RootNode.java:278)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.exchangeBuffers(RootNode.java:265)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.hasNext(RootNode.java:189)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ClosableIteratorsHolder$DelegatingIterator.hasNext(ClosableIteratorsHolder.java:132)
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TransformingIterator.hasNext(TransformingIterator.java:44)
>   at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
>   at 
> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
>   at 
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
>   at 
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
>   at 
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
>   at 
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
>   at 
> org.apache.ignite.internal.calcite.util.Commons.getAllFromCursor(Commons.java:31)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:380)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnOrder(ItMetadataTest.java:106)
>   ...
> Caused by: java.lang.NullPointerException: table
>   at java.base/java.util.Objects.requireNonNull(Objects.java:246)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:72)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:90)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.(ProjectableFilterableTableScan.java:89)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.(IgniteTableScan.java:44)
>   at SC.apply(Unknown Source)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJson$RelFactory.apply(RelJson.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRel(RelJsonReader.java:126)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRels(RelJsonReader.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.read(RelJsonReader.java:108)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson(RelJsonReader.java:81)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.prepareFragment(ExecutionServiceImpl.java:404)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$onMessage$6(ExecutionServiceImpl.java:582)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.lambda$queryPlan$0(QueryPlanCacheImpl.java:47)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$13(BoundedLocalCache.java:2457)
>   at 
> java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2455)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2438)
>   at 
> com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:107)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:47)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:580)
>   at 
> 

[jira] [Assigned] (IGNITE-16089) ItMetadataTest.columnNames fails with AssertionError

2021-12-14 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov reassigned IGNITE-16089:
-

Assignee: Konstantin Orlov

> ItMetadataTest.columnNames fails with AssertionError
> 
>
> Key: IGNITE-16089
> URL: https://issues.apache.org/jira/browse/IGNITE-16089
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Assignee: Konstantin Orlov
>Priority: Blocker
>  Labels: ignite-3
>
> _ItMetadataTest.columnNames_ fails with the following exception:
> {noformat}
> java.lang.AssertionError: Unexpected type of result: RecordType() MULTISET
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.nativeType(TypeUtils.java:388)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.ResultSetMetadataImpl.fields(ResultSetMetadataImpl.java:60)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:364)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnNames(ItMetadataTest.java:67)
> {noformat}
> Looks like the support of _SqlTypeName#Multiset_ should be added.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16116) Support user mapping functions.

2021-12-14 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-16116:
-

 Summary: Support user mapping functions.
 Key: IGNITE-16116
 URL: https://issues.apache.org/jira/browse/IGNITE-16116
 Project: Ignite
  Issue Type: Improvement
Reporter: Andrey Mashenkov


Let's allow users to implement their own strategy of marshaling objects.
The {{Tuple}} interface looks good candidate for representing a row, rather 
than exposing any internals to the user.

Start point is {{Mapper.of(Function objectToRow, Function 
rowToObject) }}.




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16115) Implement getNullable and getOrDefault operations.

2021-12-14 Thread Andrey Mashenkov (Jira)


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

Andrey Mashenkov updated IGNITE-16115:
--
Labels: ignite-3  (was: )

> Implement getNullable and getOrDefault operations.
> --
>
> Key: IGNITE-16115
> URL: https://issues.apache.org/jira/browse/IGNITE-16115
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3
>
> It is allowed to map an object to a single nullable column, which makes 
> 'null' values legal in the KeyValue view.
> Once the 'null' value is possible there is no way to distinguish, if there is 
> no row in a table for the given key, or the row exists and the mapped column 
> contains the 'null' value.
> Let's introduce NullableValue class-wrapper for a value and implement 
> getNullable, and getOrDefault methods for that purpose.
> The first is useful for cases, when it's not possible to use a "default", but 
> creates an additional wrapper. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-16090) ItMetadataTest.columnOrder cannot be run twice in the same JVM

2021-12-14 Thread Konstantin Orlov (Jira)


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

Konstantin Orlov reassigned IGNITE-16090:
-

Assignee: Konstantin Orlov

> ItMetadataTest.columnOrder cannot be run twice in the same JVM
> --
>
> Key: IGNITE-16090
> URL: https://issues.apache.org/jira/browse/IGNITE-16090
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Assignee: Konstantin Orlov
>Priority: Blocker
>  Labels: ignite-3
>
> The attempt to run the _ItMetadataTest.columnOrder_ test twice in the same 
> JVM results in the following exception:
> {noformat}
> class org.apache.ignite.lang.IgniteException: An error occurred while query 
> executing.
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.checkException(RootNode.java:278)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.exchangeBuffers(RootNode.java:265)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.hasNext(RootNode.java:189)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ClosableIteratorsHolder$DelegatingIterator.hasNext(ClosableIteratorsHolder.java:132)
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TransformingIterator.hasNext(TransformingIterator.java:44)
>   at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
>   at 
> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
>   at 
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
>   at 
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
>   at 
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
>   at 
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
>   at 
> org.apache.ignite.internal.calcite.util.Commons.getAllFromCursor(Commons.java:31)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:380)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnOrder(ItMetadataTest.java:106)
>   ...
> Caused by: java.lang.NullPointerException: table
>   at java.base/java.util.Objects.requireNonNull(Objects.java:246)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:72)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:90)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.(ProjectableFilterableTableScan.java:89)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.(IgniteTableScan.java:44)
>   at SC.apply(Unknown Source)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJson$RelFactory.apply(RelJson.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRel(RelJsonReader.java:126)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRels(RelJsonReader.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.read(RelJsonReader.java:108)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson(RelJsonReader.java:81)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.prepareFragment(ExecutionServiceImpl.java:404)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$onMessage$6(ExecutionServiceImpl.java:582)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.lambda$queryPlan$0(QueryPlanCacheImpl.java:47)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$13(BoundedLocalCache.java:2457)
>   at 
> java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2455)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2438)
>   at 
> com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:107)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:47)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:580)
>   at 

[jira] [Updated] (IGNITE-16089) ItMetadataTest.columnNames fails with AssertionError

2021-12-14 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-16089:
---
Priority: Blocker  (was: Major)

> ItMetadataTest.columnNames fails with AssertionError
> 
>
> Key: IGNITE-16089
> URL: https://issues.apache.org/jira/browse/IGNITE-16089
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Priority: Blocker
>  Labels: ignite-3
>
> _ItMetadataTest.columnNames_ fails with the following exception:
> {noformat}
> java.lang.AssertionError: Unexpected type of result: RecordType() MULTISET
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.nativeType(TypeUtils.java:388)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.ResultSetMetadataImpl.fields(ResultSetMetadataImpl.java:60)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:364)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnNames(ItMetadataTest.java:67)
> {noformat}
> Looks like the support of _SqlTypeName#Multiset_ should be added.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16089) ItMetadataTest.columnNames fails with AssertionError

2021-12-14 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-16089:
---
Priority: Major  (was: Blocker)

> ItMetadataTest.columnNames fails with AssertionError
> 
>
> Key: IGNITE-16089
> URL: https://issues.apache.org/jira/browse/IGNITE-16089
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Priority: Major
>  Labels: ignite-3
>
> _ItMetadataTest.columnNames_ fails with the following exception:
> {noformat}
> java.lang.AssertionError: Unexpected type of result: RecordType() MULTISET
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.nativeType(TypeUtils.java:388)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.ResultSetMetadataImpl.fields(ResultSetMetadataImpl.java:60)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:364)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnNames(ItMetadataTest.java:67)
> {noformat}
> Looks like the support of _SqlTypeName#Multiset_ should be added.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16089) ItMetadataTest.columnNames fails with AssertionError

2021-12-14 Thread Vyacheslav Koptilin (Jira)


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

Vyacheslav Koptilin updated IGNITE-16089:
-
Priority: Blocker  (was: Major)

> ItMetadataTest.columnNames fails with AssertionError
> 
>
> Key: IGNITE-16089
> URL: https://issues.apache.org/jira/browse/IGNITE-16089
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Priority: Blocker
>  Labels: ignite-3
>
> _ItMetadataTest.columnNames_ fails with the following exception:
> {noformat}
> java.lang.AssertionError: Unexpected type of result: RecordType() MULTISET
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.nativeType(TypeUtils.java:388)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.ResultSetMetadataImpl.fields(ResultSetMetadataImpl.java:60)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:364)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnNames(ItMetadataTest.java:67)
> {noformat}
> Looks like the support of _SqlTypeName#Multiset_ should be added.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (IGNITE-16090) ItMetadataTest.columnOrder cannot be run twice in the same JVM

2021-12-14 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich updated IGNITE-16090:
---
Priority: Blocker  (was: Major)

> ItMetadataTest.columnOrder cannot be run twice in the same JVM
> --
>
> Key: IGNITE-16090
> URL: https://issues.apache.org/jira/browse/IGNITE-16090
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 3.0.0-alpha3
>Reporter: Vyacheslav Koptilin
>Priority: Blocker
>  Labels: ignite-3
>
> The attempt to run the _ItMetadataTest.columnOrder_ test twice in the same 
> JVM results in the following exception:
> {noformat}
> class org.apache.ignite.lang.IgniteException: An error occurred while query 
> executing.
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.checkException(RootNode.java:278)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.exchangeBuffers(RootNode.java:265)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.rel.RootNode.hasNext(RootNode.java:189)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ClosableIteratorsHolder$DelegatingIterator.hasNext(ClosableIteratorsHolder.java:132)
>   at 
> org.apache.ignite.internal.processors.query.calcite.util.TransformingIterator.hasNext(TransformingIterator.java:44)
>   at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
>   at 
> java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
>   at 
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
>   at 
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
>   at 
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
>   at 
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>   at 
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
>   at 
> org.apache.ignite.internal.calcite.util.Commons.getAllFromCursor(Commons.java:31)
>   at 
> org.apache.ignite.internal.calcite.util.QueryChecker.check(QueryChecker.java:380)
>   at 
> org.apache.ignite.internal.calcite.ItMetadataTest.columnOrder(ItMetadataTest.java:106)
>   ...
> Caused by: java.lang.NullPointerException: table
>   at java.base/java.util.Objects.requireNonNull(Objects.java:246)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:72)
>   at org.apache.calcite.rel.core.TableScan.(TableScan.java:90)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.(ProjectableFilterableTableScan.java:89)
>   at 
> org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.(IgniteTableScan.java:44)
>   at SC.apply(Unknown Source)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJson$RelFactory.apply(RelJson.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRel(RelJsonReader.java:126)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRels(RelJsonReader.java:117)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.read(RelJsonReader.java:108)
>   at 
> org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson(RelJsonReader.java:81)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.prepareFragment(ExecutionServiceImpl.java:404)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$onMessage$6(ExecutionServiceImpl.java:582)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.lambda$queryPlan$0(QueryPlanCacheImpl.java:47)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$13(BoundedLocalCache.java:2457)
>   at 
> java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2455)
>   at 
> com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2438)
>   at 
> com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:107)
>   at 
> org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:47)
>   at 
> org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:580)
>   at 
> 

[jira] [Commented] (IGNITE-15784) Support custom mapping for fields and column of arbitrary types.

2021-12-14 Thread Yury Gerzhedovich (Jira)


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

Yury Gerzhedovich commented on IGNITE-15784:


[~amashenkov] , LGTM in general. Let's add JIRA links for TODOs and may be we 
should think out the possibility ignore case mode for column names at mappers 
(as a separate ticket).

> Support custom mapping for fields and column of arbitrary types.
> 
>
> Key: IGNITE-15784
> URL: https://issues.apache.org/jira/browse/IGNITE-15784
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Andrey Mashenkov
>Assignee: Andrey Mashenkov
>Priority: Major
>  Labels: ignite-3
> Fix For: 3.0.0-alpha4
>
>  Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> h3. Motivation.
> A user may want to operate with user objects, which types may differ from or 
> incompatible with a column type.
> As a special case, a user may want to transparently serialize an arbitrary 
> object to byte[] (BLOB) column.
> h3. Description.
> To achieve this we can provide an interface for the converter and allow 
> passing custom converters to a mapper.
> The converter acts as an interceptor and transforms a value before writing 
> to/after reading from the column.
> Mapper API should be refactored as well to support this.
> As a PoC, let's add a test with a converter that performs transparent Java 
> serialization arbitrary object to byte[] column.
> Converters and automatic typecasting is out of the scope,
> the goal is to create API and infrastructure for further extension, e.g.
> * provide a standard converter component for cross-platform  serialization 
> (based on MessagePack or on IGNITE-15944 ticket ideas)
> * optionally add JSON/BSON format support.
> * add simple converters for supported native types, e.g. Integer<-->String, 
> and possibly, support implicit typecasting.
> * support unsigned types via implicit typecasting mechanics.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16115) Implement getNullable and getOrDefault operations.

2021-12-14 Thread Andrey Mashenkov (Jira)
Andrey Mashenkov created IGNITE-16115:
-

 Summary: Implement getNullable and getOrDefault operations.
 Key: IGNITE-16115
 URL: https://issues.apache.org/jira/browse/IGNITE-16115
 Project: Ignite
  Issue Type: Improvement
Reporter: Andrey Mashenkov


It is allowed to map an object to a single nullable column, which makes 'null' 
values legal in the KeyValue view.
Once the 'null' value is possible there is no way to distinguish, if there is 
no row in a table for the given key, or the row exists and the mapped column 
contains the 'null' value.

Let's introduce NullableValue class-wrapper for a value and implement 
getNullable, and getOrDefault methods for that purpose.
The first is useful for cases, when it's not possible to use a "default", but 
creates an additional wrapper. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (IGNITE-14945) IndexQuery should use inline IO for internal filtering.

2021-12-14 Thread Ignite TC Bot (Jira)


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

Ignite TC Bot commented on IGNITE-14945:


{panel:title=Branch: [pull/9631/head] Base: [master] : Possible Blockers 
(1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}NUMA Allocator{color} [[tests 0 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=6322271]]

{panel}
{panel:title=Branch: [pull/9631/head] Base: [master] : New Tests 
(120)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#8b}Index Query API{color} [[tests 
120|https://ci.ignite.apache.org/viewLog.html?buildId=6321803]]
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testVarInlineKeys[inlineSize=5] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testVarInlineKeysFirst[inlineSize=5] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testFixedInlineKeys[inlineSize=5] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testVarlenAndNonInlined[inlineSize=5] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testFixedInlineKeys[inlineSize=6] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testVarlenAndNonInlined[inlineSize=6] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testNonInlinedKeysFirst[inlineSize=6] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testNonInlinedKeys[inlineSize=5] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testFixedInlineKeys[inlineSize=4] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testVarlenAndNonInlined[inlineSize=4] - PASSED{color}
* {color:#013220}IndexQueryTestSuite: 
IndexQueryInlineSizesTest.testNonInlinedKeysFirst[inlineSize=4] - PASSED{color}
... and 109 new tests

{panel}
[TeamCity *-- Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=6321848buildTypeId=IgniteTests24Java8_RunAll]

> IndexQuery should use inline IO for internal filtering.
> ---
>
> Key: IGNITE-14945
> URL: https://issues.apache.org/jira/browse/IGNITE-14945
> Project: Ignite
>  Issue Type: New Feature
>Reporter: Maksim Timonin
>Assignee: Maksim Timonin
>Priority: Major
>  Labels: IEP-71
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> For comparison of index keys it's required:
>  # to init cache data row
>  # access fields with BinaryObject API
> So, it's possible to use inline IO for filtering. It can help:
>  # speed up comparison (Inline IO access is faster than BinaryObject API).
>  # to avoid init cache data rows for filtered items (in case there are more 
> filtered items).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (IGNITE-16114) Flaky test FailureProcessorThreadDumpThrottlingTest.testThrottlingPerFailureType

2021-12-14 Thread Andrey N. Gura (Jira)
Andrey N. Gura created IGNITE-16114:
---

 Summary: Flaky test 
FailureProcessorThreadDumpThrottlingTest.testThrottlingPerFailureType
 Key: IGNITE-16114
 URL: https://issues.apache.org/jira/browse/IGNITE-16114
 Project: Ignite
  Issue Type: Test
Reporter: Andrey N. Gura
Assignee: Andrey N. Gura


The test 
{{FailureProcessorThreadDumpThrottlingTest.testThrottlingPerFailureType}} is 
still flaky. Fix of IGNITE-15941 does not solve problem. There is still some 
race. May be it is race between main thread and loggers because test is built 
on test logger.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (IGNITE-15867) Socket shutdown called twice in GridNioServer

2021-12-14 Thread Roman Puchkovskiy (Jira)


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

Roman Puchkovskiy reassigned IGNITE-15867:
--

Assignee: Roman Puchkovskiy

> Socket shutdown called twice in GridNioServer
> -
>
> Key: IGNITE-15867
> URL: https://issues.apache.org/jira/browse/IGNITE-15867
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 2.11
>Reporter: Ilya Korol
>Assignee: Roman Puchkovskiy
>Priority: Major
>
> After fixing IGNITE-15367 calling 
> {{GridNioServer$AbstractNioClientWorker.closekey(SelectionKey key)}} would 
> produce excessive {{java.nio.channels.ClosedChannelException}} because 
> {{sock.shutdownInput()}} and {{sock.shutdownInput()}} would be called twice:
> {code:java}
> // GridNioServer$AbstractNioClientWorker
> private void closeKey(SelectionKey key) {
> // Shutdown input and output so that remote client will see correct 
> socket close.
> Socket sock = ((SocketChannel)key.channel()).socket();
> try {
> try {
> sock.shutdownInput();   // <-- First time
> }
> catch (IOException ignored) {
> // No-op.
> }
> try {
> sock.shutdownOutput();  // <-- First time
> }
> catch (IOException ignored) {
> // No-op.
> }
> }
> finally {
> U.close(key, log);  // <-- Second time
> U.close(sock, log); // <-- Second time
> }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)