[jira] [Created] (IGNITE-14592) Incapsulate config modification logic into callback
Nikolay Izhikov created IGNITE-14592: Summary: Incapsulate config modification logic into callback Key: IGNITE-14592 URL: https://issues.apache.org/jira/browse/IGNITE-14592 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Right now extensions of {{IgniteSpec}} can't provide custom config files and it's templates because only template returned from spec if {{IgniteConfigTemplate}}. We need to return array of tuples from {{IgniteSpec#config_templates}} that specify config files required to be generated to run Ignite based node. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14585) Ability to extend config files in spec
Nikolay Izhikov created IGNITE-14585: Summary: Ability to extend config files in spec Key: IGNITE-14585 URL: https://issues.apache.org/jira/browse/IGNITE-14585 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Right now extensions of {{IgniteSpec}} can't provide custom config files and it's templates because only template returned from spec if {{IgniteConfigTemplate}}. We need to return array of tuples from {{IgniteSpec#config_templates}} that specify config files required to be generated to run Ignite based node. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14516) WAL can continue to log into archived segment if auto rollover enabled
Nikolay Izhikov created IGNITE-14516: Summary: WAL can continue to log into archived segment if auto rollover enabled Key: IGNITE-14516 URL: https://issues.apache.org/jira/browse/IGNITE-14516 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, there is a possibility that WAL will continue to log into an archived segment after node restart. Bug scenario: # {{WalAutoArchiveAfterInactivity}} enabled. # Node is stopping with the {{G.stop("ign", false")}}. # T0: Performs last checkpoint write some records to current WAL segment({{Segment#0}}) and freeze. # T1: Auto rollover happens in {{FileWriteAheadLogManager#checkWalRolloverRequiredDuringInactivityPeriod}}. # T2({{FileArchiver}}) Archives {{Segment#0}}. After restart, WAL will continue to log into {{Segment#0}} which leads that newly logged data will not be archived after rollover because {{FileArchiver}} will wait for {{Segment#2}} in {{SegmentCurrentStateStorage#waitNextSegmentForArchivation}}. PR to highlight error - https://github.com/apache/ignite/pull/8997 It seems we should to continue to log into the next segment if {{curAbsIdx == lastArchivedSegment}} on start. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14464) Remove released version of Ignite from regular ducktests
Nikolay Izhikov created IGNITE-14464: Summary: Remove released version of Ignite from regular ducktests Key: IGNITE-14464 URL: https://issues.apache.org/jira/browse/IGNITE-14464 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov No need to tests the released ignite version regularly. We can remove the 2.10.0 version from the source test matrix. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14463) Support check Ignite-based products with ducktests
Nikolay Izhikov created IGNITE-14463: Summary: Support check Ignite-based products with ducktests Key: IGNITE-14463 URL: https://issues.apache.org/jira/browse/IGNITE-14463 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov We need to provide the way to run ducktape tests on the products that based on Ignite codebase. For that 2 edits required: 1. Ability to specify "project" variable in globals. 2. Ability to specify custom docker options(mount point) from the outside of {{run_tests.sh}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14450) Add Maximum CDC directory size configuration parameter
Nikolay Izhikov created IGNITE-14450: Summary: Add Maximum CDC directory size configuration parameter Key: IGNITE-14450 URL: https://issues.apache.org/jira/browse/IGNITE-14450 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, without a CDC consumer wal segments in CDC folder will grow infinite. We need to add configuration property to stop CDC process if folder size enlarge exceed some preconfigured size. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14449) Add binary meta change event to CDCCosumer
Nikolay Izhikov created IGNITE-14449: Summary: Add binary meta change event to CDCCosumer Key: IGNITE-14449 URL: https://issues.apache.org/jira/browse/IGNITE-14449 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Need to provide the way to notify {{CDCConsumer}} about changes in binary meta. Required to correctly notify subsequent systems about new types that can be found in change events. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14435) Refactor PdsConsistentIdProcessor for reusage
Nikolay Izhikov created IGNITE-14435: Summary: Refactor PdsConsistentIdProcessor for reusage Key: IGNITE-14435 URL: https://issues.apache.org/jira/browse/IGNITE-14435 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Logic to resolve PDS folders should be reused inside {{IgniteCDC}} to lock specific Ignite node CDC folder. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14368) System view for DataStructures
Nikolay Izhikov created IGNITE-14368: Summary: System view for DataStructures Key: IGNITE-14368 URL: https://issues.apache.org/jira/browse/IGNITE-14368 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, there is no way for the user to know what DataStructures exist in Ignite. We should provide a system view for it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14367) WAL reader. Read only specific Record Types
Nikolay Izhikov created IGNITE-14367: Summary: WAL reader. Read only specific Record Types Key: IGNITE-14367 URL: https://issues.apache.org/jira/browse/IGNITE-14367 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov CDC application uses only specific WALRecord types. So we should provide an ability to skip WALRecord without full deserializing. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14366) Support separate JVM options for ignite-cdc.sh and ignite.sh
Nikolay Izhikov created IGNITE-14366: Summary: Support separate JVM options for ignite-cdc.sh and ignite.sh Key: IGNITE-14366 URL: https://issues.apache.org/jira/browse/IGNITE-14366 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, ignite-cdc.sh just reuse ignite.sh with it's own main class name ({{org.apache.ignite.cdc.CommandLineStartup}}) Should fix it and provide a way to separate configuration ignite and cdc applications. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14365) CDC Documentation
Nikolay Izhikov created IGNITE-14365: Summary: CDC Documentation Key: IGNITE-14365 URL: https://issues.apache.org/jira/browse/IGNITE-14365 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14364) Extension to write CDC data to other Ignite cluster
Nikolay Izhikov created IGNITE-14364: Summary: Extension to write CDC data to other Ignite cluster Key: IGNITE-14364 URL: https://issues.apache.org/jira/browse/IGNITE-14364 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov CDC data can be used to replicate changes to other Ignite cluster. A special extension required to do it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14363) Support of usage several CDCConsumer
Nikolay Izhikov created IGNITE-14363: Summary: Support of usage several CDCConsumer Key: IGNITE-14363 URL: https://issues.apache.org/jira/browse/IGNITE-14363 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Initial implementation of CDC application support usage of only one CDCConsumer. Need to think about the support of several concurrently working CDCConsumer. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14362) Extension to write CDC data to Kafka
Nikolay Izhikov created IGNITE-14362: Summary: Extension to write CDC data to Kafka Key: IGNITE-14362 URL: https://issues.apache.org/jira/browse/IGNITE-14362 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14361) Add WhiteSpace after checkstyle rule
Nikolay Izhikov created IGNITE-14361: Summary: Add WhiteSpace after checkstyle rule Key: IGNITE-14361 URL: https://issues.apache.org/jira/browse/IGNITE-14361 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Right now checkstyle plugin don't check whitespace after rule that allows the following violation of Ignite code style {code:java} finish.apply(p.id,msg.result(), msg.error()); {code} Need to add the following rule to prevent it: {code:xml} {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14360) Refactor FileLockHolder for reusage
Nikolay Izhikov created IGNITE-14360: Summary: Refactor FileLockHolder for reusage Key: IGNITE-14360 URL: https://issues.apache.org/jira/browse/IGNITE-14360 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov CDC application needs to reuse FileLockHolder. But for now, it's private class in \{{GridCacheDatabaseSharedManager}} Minor refactoring required to be able to reuse it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14355) CDC application metrics
Nikolay Izhikov created IGNITE-14355: Summary: CDC application metrics Key: IGNITE-14355 URL: https://issues.apache.org/jira/browse/IGNITE-14355 Project: Ignite Issue Type: New Feature Reporter: Nikolay Izhikov CDC application should provide metrics so administrator be able to observe * consume GAP * consumer info * committed offset * etc We should try to reuse IgniteMetrics for this. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14353) Ability to specify log file for IgniteLogger
Nikolay Izhikov created IGNITE-14353: Summary: Ability to specify log file for IgniteLogger Key: IGNITE-14353 URL: https://issues.apache.org/jira/browse/IGNITE-14353 Project: Ignite Issue Type: New Feature Reporter: Nikolay Izhikov Right now, user can't change IgniteLogger file name. CDC application should use it's own files for logging, something like {{cdc-{cdc_consumer_id}.log}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14351) Runtime change of WAL force rollover parameters
Nikolay Izhikov created IGNITE-14351: Summary: Runtime change of WAL force rollover parameters Key: IGNITE-14351 URL: https://issues.apache.org/jira/browse/IGNITE-14351 Project: Ignite Issue Type: New Feature Reporter: Nikolay Izhikov If CDC enabled for cluster nodes and CDC application is down for a long time it can lead to disk overflow and cluster instability. An administrator should be able to turn off the CDC feature in runtime -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14350) Runtime change of CDC parameters
Nikolay Izhikov created IGNITE-14350: Summary: Runtime change of CDC parameters Key: IGNITE-14350 URL: https://issues.apache.org/jira/browse/IGNITE-14350 Project: Ignite Issue Type: New Feature Reporter: Nikolay Izhikov If CDC enabled for cluster nodes and CDC application is down for a long time it can lead to disk overflow and cluster instability. An administrator should be able to turn off the CDC feature in runtime -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14334) .NET: Thin client don't support ICollection parameters
Nikolay Izhikov created IGNITE-14334: Summary: .NET: Thin client don't support ICollection parameters Key: IGNITE-14334 URL: https://issues.apache.org/jira/browse/IGNITE-14334 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Currently, we can't call .Net -> Java with ICollection parameters. Need to fix it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14328) .NET: Array of Collections can't be used as service method parameters
Nikolay Izhikov created IGNITE-14328: Summary: .NET: Array of Collections can't be used as service method parameters Key: IGNITE-14328 URL: https://issues.apache.org/jira/browse/IGNITE-14328 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Currently, collections (list, map) can't be used as a service method parameter in case of .Net (client node) -> .Net (server node) call. This can be reproduced my one line modification of {{ServicesTypeAutoResolveTest#DoTestPlatformService}} {code:java} /// /// Tests .Net service invocation. /// public void DoTestPlatformService(IServices svcsForProxy) { const string platformSvcName = "PlatformTestService"; _grid1.GetServices().DeployClusterSingleton(platformSvcName, new PlatformTestService()); var svc = svcsForProxy.GetServiceProxy(platformSvcName); DoTestService(svc); DoTestCollections(svc); // This line was added. _grid1.GetServices().Cancel(platformSvcName); } {code} Exception: {noformat} Apache.Ignite.Core.Services.ServiceInvocationException : Proxy method invocation failed with an exception. Examine InnerException for details. > Apache.Ignite.Core.Common.IgniteException : No matching type found for object [typeId=1552553483, typeName=org.system.collections.generic.List`1[[org.apache.ignite.platform.model.department, apache.ignite.core.testDepartment]]]. This usually indicates that assembly with specified type is not loaded on a node. When using Apache.Ignite.exe, make sure to load assemblies with -assembly parameter. Alternatively, set IgniteConfiguration.PeerAssemblyLoadingMode to CurrentAppDomain. {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14320) .NET: Collections can't be used as service method parameters
Nikolay Izhikov created IGNITE-14320: Summary: .NET: Collections can't be used as service method parameters Key: IGNITE-14320 URL: https://issues.apache.org/jira/browse/IGNITE-14320 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, collections (list, map) can't be used as a service method parameter in case of .Net (client node) -> .Net (server node) call. This can be reproduced my one line modification of {{ServicesTypeAutoResolveTest#DoTestPlatformService}} {code:java} /// /// Tests .Net service invocation. /// public void DoTestPlatformService(IServices svcsForProxy) { const string platformSvcName = "PlatformTestService"; _grid1.GetServices().DeployClusterSingleton(platformSvcName, new PlatformTestService()); var svc = svcsForProxy.GetServiceProxy(platformSvcName); DoTestService(svc); DoTestCollections(svc); // This line was added. _grid1.GetServices().Cancel(platformSvcName); } {code} Exception: {noformat} Apache.Ignite.Core.Services.ServiceInvocationException : Proxy method invocation failed with an exception. Examine InnerException for details. > Apache.Ignite.Core.Common.IgniteException : No matching type found for object [typeId=1552553483, typeName=org.system.collections.generic.List`1[[org.apache.ignite.platform.model.department, apache.ignite.core.testDepartment]]]. This usually indicates that assembly with specified type is not loaded on a node. When using Apache.Ignite.exe, make sure to load assemblies with -assembly parameter. Alternatively, set IgniteConfiguration.PeerAssemblyLoadingMode to CurrentAppDomain. {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14313) .NET: Add test to call .Net service from .Net
Nikolay Izhikov created IGNITE-14313: Summary: .NET: Add test to call .Net service from .Net Key: IGNITE-14313 URL: https://issues.apache.org/jira/browse/IGNITE-14313 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Currently, {{IJavaService}} methods in {{ServicesTest}} and {{ServicesTypeAutoResolveTest}} only checked for .Net -> Java case. We should extends it with .Net -> .Net invocation. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14311) .NET: Simplify ServicesTest
Nikolay Izhikov created IGNITE-14311: Summary: .NET: Simplify ServicesTest Key: IGNITE-14311 URL: https://issues.apache.org/jira/browse/IGNITE-14311 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Currently, there are code duplication in {{TestCallJavaServiceDynamicProxy}}, {{TestCallJavaServiceLocal}}. To simplify ongoing improvements and bugfixes like IGNITE-14299 we should refactor these methods. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14299) .Net Service loses array type information in case .Net <-> .Net call
Nikolay Izhikov created IGNITE-14299: Summary: .Net Service loses array type information in case .Net <-> .Net call Key: IGNITE-14299 URL: https://issues.apache.org/jira/browse/IGNITE-14299 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov In case .Net -> .Net service call Ignite loses arra type information. {code:java} using Apache.Ignite.Core; using Apache.Ignite.Core.Discovery.Tcp; using Apache.Ignite.Core.Discovery.Tcp.Static; using Apache.Ignite.Core.Services; using Castle.DynamicProxy; using System; using System.Linq; using Xunit; namespace Ignite.ServiceReturnsArray { public class Test : IDisposable { private readonly IIgnite igniteSrv; private readonly IIgnite ignite; public Test() { IgniteConfiguration IgniteConfig(bool clientMode) => new IgniteConfiguration() { ClientMode = clientMode, IgniteInstanceName = Guid.NewGuid().ToString(), DiscoverySpi = new TcpDiscoverySpi { IpFinder = new TcpDiscoveryStaticIpFinder { Endpoints = new[] { "127.0.0.1:47500" } } } }; igniteSrv = Ignition.Start(IgniteConfig(false)); ignite = Ignition.Start(IgniteConfig(true)); ignite.GetServices().DeployClusterSingleton(nameof(ArrayFactoryService), new ArrayFactoryService()); } public void Dispose() { ignite.Dispose(); igniteSrv.Dispose(); } [Fact] public void ServiceReturnsArray() { var arr = ignite.GetServices().GetServiceProxy(nameof(ArrayFactoryService), false) .CreateArray(2, 1); Assert.IsType(arr); Assert.Equal(1, arr?[1]?.Value); } [Fact] public void ServiceReturnsArrayWithReflection() { var arr = typeof(IArrayFactory).GetMethod(nameof(IArrayFactory.CreateArray)).Invoke( ignite.GetServices().GetServiceProxy(nameof(ArrayFactoryService)), new object[] { 2, 1 }); Assert.IsType(arr); Assert.Equal(1, ((Result[])arr)?[1]?.Value); } [Fact] public void ServiceReturnsArrayWithCastleProxy() { var interceptor = new ServiceInterceptor(ignite, nameof(ArrayFactoryService)); var arr = new ProxyGenerator().CreateInterfaceProxyWithoutTarget(interceptor) .CreateArray(2, 1); Assert.IsType(arr); Assert.Equal(1, arr?[1]?.Value); } public sealed class Result { public int Value { get; set; } } public interface IArrayFactory { Result[] CreateArray(int size, int dlftVal); } public sealed class ArrayFactoryService : IArrayFactory, IService { public Result[] CreateArray(int size, int dfltVal) { return Enumerable.Repeat(new Result { Value = dfltVal }, size).ToArray(); } public void Cancel(IServiceContext context) { } public void Execute(IServiceContext context) { } public void Init(IServiceContext context) { } } private sealed class ServiceInterceptor : IInterceptor where T: class { private readonly IIgnite ignite; private readonly string name; public ServiceInterceptor(IIgnite ignite, string name) { this.ignite = ignite; this.name = name; } public void Intercept(IInvocation invocation) { var svc = ignite.GetServices().GetServiceProxy(name, false); invocation.ReturnValue = invocation.Method.Invoke(svc, invocation.Arguments); } } } } {code} Above test fail on type check. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14282) .Net: Don't swallow exception in case Platform cache update error
Nikolay Izhikov created IGNITE-14282: Summary: .Net: Don't swallow exception in case Platform cache update error Key: IGNITE-14282 URL: https://issues.apache.org/jira/browse/IGNITE-14282 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, any error during platform cache update just logging and swallowing. Ignite should throw it to a higher level to handle with Failure Handler or similar way. Ignite shouldn't finish operation successfully in case of platform cache update. https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java#L7047 -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14241) IgniteCacheAbstractQuerySelfTest#testClientQueryExecutedEventsIncludeSensitive broken
Nikolay Izhikov created IGNITE-14241: Summary: IgniteCacheAbstractQuerySelfTest#testClientQueryExecutedEventsIncludeSensitive broken Key: IGNITE-14241 URL: https://issues.apache.org/jira/browse/IGNITE-14241 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov After 2ed8e7c641f8b57986cd50dca55ff4e5026c9fc3 {{IgniteCacheAbstractQuerySelfTest#testClientQueryExecutedEventsIncludeSensitive}} is broken. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14221) SQL Constants not hidden in IGNITE_TO_STRING_INCLUDE_SENSITIVE=false
Nikolay Izhikov created IGNITE-14221: Summary: SQL Constants not hidden in IGNITE_TO_STRING_INCLUDE_SENSITIVE=false Key: IGNITE-14221 URL: https://issues.apache.org/jira/browse/IGNITE-14221 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Currently, SQL constants not hidden if {{IGNITE_TO_STRING_INCLUDE_SENSITIVE=false}}. This can lead to security incidents when some applications don't use SQL parameters and send constant in query body. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14169) .NET support standart java, .net naming conventions
Nikolay Izhikov created IGNITE-14169: Summary: .NET support standart java, .net naming conventions Key: IGNITE-14169 URL: https://issues.apache.org/jira/browse/IGNITE-14169 Project: Ignite Issue Type: Improvement Affects Versions: 2.9.1 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.11 Currently, {BasicBinaryNameMapper[isSimpleName=false]} assumes that type names equals both in Java and .Net. Java type - `ru.company.Model` .Net type - 'ru.company.Model` However, .net naming conventions [1] differs from java [2] So, if a user follows both conventions then names will be Java type - `ru.company.Model` .Net type - 'Ru.Company.Model` We should support standard naming conventions for both platforms in {BasicBinaryNameMapper[isSimpleName=false]}. [1] https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-namespaces [2] https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13958) .Net: Avoid binary configuration on Compute invocation
Nikolay Izhikov created IGNITE-13958: Summary: .Net: Avoid binary configuration on Compute invocation Key: IGNITE-13958 URL: https://issues.apache.org/jira/browse/IGNITE-13958 Project: Ignite Issue Type: Improvement Affects Versions: 2.9.1 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.10 Currently, it's required to explicitly register any custom user type as a binary type to be able to invoke some compute API method with this type as a parameter or return value. We should use the same technique as in IGNITE-10075 to avoid explicit binary type registration. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13931) .NET: Service can't assign correct type to passed array parameters (.Net -> .Net call)
Nikolay Izhikov created IGNITE-13931: Summary: .NET: Service can't assign correct type to passed array parameters (.Net -> .Net call) Key: IGNITE-13931 URL: https://issues.apache.org/jira/browse/IGNITE-13931 Project: Ignite Issue Type: Bug Components: platforms Affects Versions: 2.9 Reporter: Yaroslav Molochkov Assignee: Nikolay Izhikov Fix For: 2.10 This issue relates to IGNITE-12823. Ignite client calls deployed service and fails with the following exception: {code:java} Apache.Ignite.Core.Common.JavaException: class org.apache.ignite.IgniteException: Failed to invoke proxy: there is no method 'processSomething' in type 'SomeService' with (Int32, Object[]) arguments at org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.inLongOutLong(Native Method) at org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.serviceInvokeMethod(PlatformCallbackGateway.java:942) at org.apache.ignite.internal.processors.platform.services.PlatformAbstractService.invokeMethod(PlatformAbstractService.java:214) at org.apache.ignite.internal.processors.platform.services.PlatformAbstractService.invokeMethod(PlatformAbstractService.java:185) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ignite.internal.processors.service.GridServiceProxy$ServiceProxyCallable.callService(GridServiceProxy.java:491) at org.apache.ignite.internal.processors.service.GridServiceProxy$ServiceProxyCallable.call(GridServiceProxy.java:469) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1847) at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:598) at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7077) at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:592) at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:521) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1368) at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:2130) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1907) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1528) at org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:241) at org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1421) at org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} Service interface itself looks like this: {code:java} public interface SomeService : IService { int processSomething(int foo, Parameter[] parameters); int processSomething(int foo, int bar); } public class Parameter { private int id; private ParamValue[] _values; public Parameter(int id, ParamValue[] _values) { this.id = id; this._values = _values; } } public class ParamValue { private int id; private double val; public ParamValue(int id, double val) { this.id = id; this.val = val; } } {code} And the call to the service: {code:java} var svc = igniteServices.GetServiceProxy(name, false); var result = svc.processSomething(id, parameters); {code} Please note, that if there's no overloaded methods, at least in our experiments we found out that it does reproduce with equal number of parameters in overloaded methods (e.g. here we have overloaded methods that take 2 parameters each), then the code works like a charm. Fix in IGNITE-12823 addresses particular code execution path where the execution flow goes through PlatformServices class. Yet in this case our code goes through PlatformAbstractService. I think that the fix of casting arrays should be positioned a little bit lower in the call stack (or
[jira] [Created] (IGNITE-13901) [IEP-39] Management API to remove metastore key.
Nikolay Izhikov created IGNITE-13901: Summary: [IEP-39] Management API to remove metastore key. Key: IGNITE-13901 URL: https://issues.apache.org/jira/browse/IGNITE-13901 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.9 Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * SQL queries. In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13865) .Net: DateTime can't be used as a cache key or value
Nikolay Izhikov created IGNITE-13865: Summary: .Net: DateTime can't be used as a cache key or value Key: IGNITE-13865 URL: https://issues.apache.org/jira/browse/IGNITE-13865 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov For now, DateTime can't be used as an interoperable cache key or value because {{BinaryReflectiveSerializer#forceTimestamp}} works only for object fields. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13596) Add flag to DataRecord to differentiate records on primary and backup nodes
Nikolay Izhikov created IGNITE-13596: Summary: Add flag to DataRecord to differentiate records on primary and backup nodes Key: IGNITE-13596 URL: https://issues.apache.org/jira/browse/IGNITE-13596 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov To be able to minimize CDC processing volume we should be able to differentiate DataRecords in WAL on primary and backup nodes. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13582) WAL force rollout timeout
Nikolay Izhikov created IGNITE-13582: Summary: WAL force rollout timeout Key: IGNITE-13582 URL: https://issues.apache.org/jira/browse/IGNITE-13582 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, Ignite doesn't have a timeout to force WAL segments to rollout. We need to introduce one to be able to provide some lag guarantees for the CDC application. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13581) CDC Application
Nikolay Izhikov created IGNITE-13581: Summary: CDC Application Key: IGNITE-13581 URL: https://issues.apache.org/jira/browse/IGNITE-13581 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov As described in [IEP-59|https://cwiki.apache.org/confluence/display/IGNITE/IEP-59+CDC+-+Capture+Data+Change] we need to create IgniteCDC application that can notifies the consumer about new WAL events. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13513) Remove WALPointer and use FileWALPointer
Nikolay Izhikov created IGNITE-13513: Summary: Remove WALPointer and use FileWALPointer Key: IGNITE-13513 URL: https://issues.apache.org/jira/browse/IGNITE-13513 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov WALPointer interface has a single implementation FileWALPointer. And WALPointer is cast to the FileWALPointer everywhere through code. We should get rid of the WALPointer. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13489) Client nodes start-stop ducktape tests
Nikolay Izhikov created IGNITE-13489: Summary: Client nodes start-stop ducktape tests Key: IGNITE-13489 URL: https://issues.apache.org/jira/browse/IGNITE-13489 Project: Ignite Issue Type: Task Components: documentation Reporter: Ivan Daschinskiy Assignee: Sergei Ryzhov Create minimal quickstart documentation in {{README.md}} Documentation should contain following: # Requirements for development # Requirements for running tests locally # Exact algorithm how to run tests locally (full suite, particular suite, particular test) -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13421) Automatically check Ignite system properties are documented
Nikolay Izhikov created IGNITE-13421: Summary: Automatically check Ignite system properties are documented Key: IGNITE-13421 URL: https://issues.apache.org/jira/browse/IGNITE-13421 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov We should have some automatic check that will ensure all system properties that is accessed by Ignite properly documented with @SystemProperty annotation. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13419) New permission to grant access to SYS schema
Nikolay Izhikov created IGNITE-13419: Summary: New permission to grant access to SYS schema Key: IGNITE-13419 URL: https://issues.apache.org/jira/browse/IGNITE-13419 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov We need to create permission to restrict user access to SYS schema. Because SYS contains a system view that can contain some sensitive information -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13409) System view for metastorage items
Nikolay Izhikov created IGNITE-13409: Summary: System view for metastorage items Key: IGNITE-13409 URL: https://issues.apache.org/jira/browse/IGNITE-13409 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, list of binary metadata available via experimental {{control.sh}} command. We need to provide a corresponding System view for this information. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13408) System view for binary metadata
Nikolay Izhikov created IGNITE-13408: Summary: System view for binary metadata Key: IGNITE-13408 URL: https://issues.apache.org/jira/browse/IGNITE-13408 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Currently, list of binary metadata available via experimental {{control.sh}} command. We need to provide a corresponding System view for this information. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13354) Add ClusterMetrics to the new framework
Nikolay Izhikov created IGNITE-13354: Summary: Add ClusterMetrics to the new framework Key: IGNITE-13354 URL: https://issues.apache.org/jira/browse/IGNITE-13354 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov We need to provide to the user information about cluster topology such as: * TopologyVersion * TotalNodes * TotalBaselineNodes * TotalServerNodes * TotalClientNodes * ActiveBaselineNodes -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13350) Migrate ZookeeperDiscoveryStatistics to new metrics framework
Nikolay Izhikov created IGNITE-13350: Summary: Migrate ZookeeperDiscoveryStatistics to new metrics framework Key: IGNITE-13350 URL: https://issues.apache.org/jira/browse/IGNITE-13350 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.10 TcpDiscoveryStatistics should be migrated to the new metrics framework. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13349) Migrate TcpDiscoveryStatistics to new metrics framework
Nikolay Izhikov created IGNITE-13349: Summary: Migrate TcpDiscoveryStatistics to new metrics framework Key: IGNITE-13349 URL: https://issues.apache.org/jira/browse/IGNITE-13349 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov TcpDiscoveryStatistics should be migrated to the new metrics framework. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13347) Add InitialSize and MaxSize to DataRegion metrics
Nikolay Izhikov created IGNITE-13347: Summary: Add InitialSize and MaxSize to DataRegion metrics Key: IGNITE-13347 URL: https://issues.apache.org/jira/browse/IGNITE-13347 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov {DataRegionMetricsMXBean} contains {MaxSize} and {InitialSize} values but new framework doesn't provide those values. We should add it to the 'io.dataregion.{region_name}' metrics registry. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13197) Add ImportOrder rule to checkstyle
Nikolay Izhikov created IGNITE-13197: Summary: Add ImportOrder rule to checkstyle Key: IGNITE-13197 URL: https://issues.apache.org/jira/browse/IGNITE-13197 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov We should add automatic check for check for the import order as specified by the coding guidelines https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines#CodingGuidelines-PackageImporting -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13069) Rewrite creation of IgniteInClosure and IgniteOutClosure as lambda expression
Nikolay Izhikov created IGNITE-13069: Summary: Rewrite creation of IgniteInClosure and IgniteOutClosure as lambda expression Key: IGNITE-13069 URL: https://issues.apache.org/jira/browse/IGNITE-13069 Project: Ignite Issue Type: New Feature Affects Versions: 2.8 Reporter: Nikolay Izhikov We can use lambda expression instead of direct instantiation of IgniteInClosure, IgniteOutClosure. This: {code:java} state = new DirectMessageState<>(StateItem.class, new IgniteOutClosure() { @Override public StateItem apply() { return new StateItem(msgFactory, protoVer); } }); {code} Can be replaced with: {code:java} state = new DirectMessageState<>(StateItem.class, () -> new StateItem(msgFactory, protoVer)); {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13056) SchemaManager refactoring
Nikolay Izhikov created IGNITE-13056: Summary: SchemaManager refactoring Key: IGNITE-13056 URL: https://issues.apache.org/jira/browse/IGNITE-13056 Project: Ignite Issue Type: New Feature Components: sql Affects Versions: 2.8 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Since Ignite wants to leverage from several SQL engines we need to make SchemaManager independent from H2. We also should consider moving it to the core module to make it available from any module that wants to use it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12926) [ignite-extensions] build failed
Nikolay Izhikov created IGNITE-12926: Summary: [ignite-extensions] build failed Key: IGNITE-12926 URL: https://issues.apache.org/jira/browse/IGNITE-12926 Project: Ignite Issue Type: Test Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov The current master in ignite-extension can't be built. The reason in parent pom.xml which contains org.apache.ignite:ignite-tools:1.0-SNAPSHOT dependency for Javadoc plugin. The version has taken from the project version. {noformat} org.apache.maven.plugins maven-javadoc-plugin ${maven.javadoc.plugin.version} org.apache.ignite.tools.javadoc.IgniteLinkTaglet org.apache.ignite ignite-tools ${project.version} Ignite ${project.version} Ignite ${project.version} true true protected true false false ${javadoc.opts} {noformat} {noformat} [INFO] [INFO] Reactor Summary: [INFO] [INFO] ignite-flink-ext 1.0.0-SNAPSHOT FAILURE [ 5.227 s] [INFO] ignite-flume-ext 1.0.0-SNAPSHOT SKIPPED [INFO] ignite-pub-sub 2.9.0-SNAPSHOT .. SKIPPED [INFO] ignite-spring-boot-autoconfigure 1.0.0-SNAPSHOT SKIPPED [INFO] ignite-client-spring-boot-autoconfigure 1.0.0-SNAPSHOT SKIPPED [INFO] ignite-zeromq-ext 1.0.0-SNAPSHOT ... SKIPPED [INFO] apache-ignite-extensions 1.0.0-SNAPSHOT SKIPPED [INFO] [INFO] BUILD FAILURE [INFO] [INFO] Total time: 5.812 s [INFO] Finished at: 2020-04-21T13:56:20+03:00 [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (module-javadoc) on project ignite-flink-ext: MavenReportException: Error while generating Javadoc: Unable to find artifact:groupId = 'org.apache.ignite' [ERROR] artifactId = 'ignite-tools' [ERROR] version = '1.0.0-SNAPSHOT': Failure to find org.apache.ignite:ignite-tools:pom:1.0.0-SNAPSHOT in https://h2database.com/m2-repo was cached in the local repository, resolution will not be reattempted until the update interval of h2database.com has elapsed or updates are forced [ERROR] [ERROR] org.apache.ignite:ignite-tools:pom:1.0.0-SNAPSHOT [ERROR] [ERROR] from the specified remote repositories: [ERROR] h2database.com (https://h2database.com/m2-repo, releases=false, snapshots=true), [ERROR] apache.snapshots (http://repository.apache.org/snapshots, releases=false, snapshots=true), [ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false) [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12924) [ignite-extensions] Unused import breaks checkstyle
Nikolay Izhikov created IGNITE-12924: Summary: [ignite-extensions] Unused import breaks checkstyle Key: IGNITE-12924 URL: https://issues.apache.org/jira/browse/IGNITE-12924 Project: Ignite Issue Type: Test Reporter: Nikolay Izhikov {noformat} [INFO] --- maven-checkstyle-plugin:3.0.0:check (style) @ ignite-flume-ext --- [INFO] Starting audit... [ERROR] /Users/sbt-izhikov-nv/src/ignite-extensions/modules/flume-ext/src/main/java/org/apache/ignite/stream/flume/IgniteSink.java:32:8: Unused import - org.apache.ignite.IgniteIllegalStateException. [UnusedImports] Audit done. [INFO] [INFO] Reactor Summary: [INFO] [INFO] ignite-flink-ext 1.0.0-SNAPSHOT SUCCESS [ 7.202 s] [INFO] ignite-flume-ext 1.0.0-SNAPSHOT FAILURE [ 0.390 s] [INFO] ignite-pub-sub 2.9.0-SNAPSHOT .. SKIPPED [INFO] ignite-spring-boot-autoconfigure 1.0.0-SNAPSHOT SKIPPED [INFO] ignite-client-spring-boot-autoconfigure 1.0.0-SNAPSHOT SKIPPED [INFO] ignite-zeromq-ext 1.0.0-SNAPSHOT ... SKIPPED [INFO] apache-ignite-extensions 1.0.0-SNAPSHOT SKIPPED [INFO] [INFO] BUILD FAILURE [INFO] [INFO] Total time: 8.169 s [INFO] Finished at: 2020-04-21T11:47:45+03:00 [INFO] [WARNING] The requested profile "lgpl" could not be activated because it does not exist. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0:check (style) on project ignite-flume-ext: Failed during checkstyle execution: There is 1 error reported by Checkstyle 8.19 with ../checkstyle/checkstyle.xml ruleset. -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :ignite-flume-ext {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12872) Check of correct work of explicit security permissions
Nikolay Izhikov created IGNITE-12872: Summary: Check of correct work of explicit security permissions Key: IGNITE-12872 URL: https://issues.apache.org/jira/browse/IGNITE-12872 Project: Ignite Issue Type: Test Reporter: Nikolay Izhikov We need to add 3 tests that checks explicit security permission for the cache. 1. If a user has only CACHE_READ permission for some cache. * get(and other read operations are permitted) * put, remove (and other write operations are prohibited). 2. If a user has only CACHE_REMOVE permission for some cache. * put, get(and other reads/write operations are prohibited) * remove (and other remove operations are permitted). 3. If a user has only CACHE_WRITE permission for some cache. * get, remove(and other reads/remove operations are prohibited) * put (and other write operations are permitted). -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12859) .Net services fails to call method with DateTime or Guid argument
Nikolay Izhikov created IGNITE-12859: Summary: .Net services fails to call method with DateTime or Guid argument Key: IGNITE-12859 URL: https://issues.apache.org/jira/browse/IGNITE-12859 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov .Net service proxy can't find java method with Timestamp or UUID datatype. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12841) @Override must be on the same line as a method
Nikolay Izhikov created IGNITE-12841: Summary: @Override must be on the same line as a method Key: IGNITE-12841 URL: https://issues.apache.org/jira/browse/IGNITE-12841 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Right now, there are many places where codestyle broken. {noformat} /** {@inheritDoc} */ @Override public boolean registerClassName(byte platformId, int typeId, String clsName) throws IgniteCheckedException { return registerClassName(platformId, typeId, clsName, false); } {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12834) [TeamCity] Suites fails with the execution timeout
Nikolay Izhikov created IGNITE-12834: Summary: [TeamCity] Suites fails with the execution timeout Key: IGNITE-12834 URL: https://issues.apache.org/jira/browse/IGNITE-12834 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Right now it's a common case when some random suite ends with the execution timeout error. Examples: * https://ci.ignite.apache.org/viewLog.html?buildId=5152046=buildResultsDiv=IgniteTests24Java8_MvccCache7 * https://ci.ignite.apache.org/viewLog.html?buildId=5151963=buildResultsDiv=IgniteTests24Java8_JavaThinClient We need to investigate those failures and fix the root cause of it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12815) [IEP-39] Management API to cancel SQL queries.
Nikolay Izhikov created IGNITE-12815: Summary: [IEP-39] Management API to cancel SQL queries. Key: IGNITE-12815 URL: https://issues.apache.org/jira/browse/IGNITE-12815 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12814) [IEP-39] Management API to cancel continuous queries.
Nikolay Izhikov created IGNITE-12814: Summary: [IEP-39] Management API to cancel continuous queries. Key: IGNITE-12814 URL: https://issues.apache.org/jira/browse/IGNITE-12814 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12813) [IEP-39] Management API to cancel scan queries.
Nikolay Izhikov created IGNITE-12813: Summary: [IEP-39] Management API to cancel scan queries. Key: IGNITE-12813 URL: https://issues.apache.org/jira/browse/IGNITE-12813 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12812) [IEP-39] Management API to cancel transaction.
Nikolay Izhikov created IGNITE-12812: Summary: [IEP-39] Management API to cancel transaction. Key: IGNITE-12812 URL: https://issues.apache.org/jira/browse/IGNITE-12812 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12811) [IEP-39] Management API to cancel services.
Nikolay Izhikov created IGNITE-12811: Summary: [IEP-39] Management API to cancel services. Key: IGNITE-12811 URL: https://issues.apache.org/jira/browse/IGNITE-12811 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12810) [IEP-39] Management API to cancel compute tasks.
Nikolay Izhikov created IGNITE-12810: Summary: [IEP-39] Management API to cancel compute tasks. Key: IGNITE-12810 URL: https://issues.apache.org/jira/browse/IGNITE-12810 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12791) [IEP-39] Management API to cancel user provided tasks and queries - documentation
Nikolay Izhikov created IGNITE-12791: Summary: [IEP-39] Management API to cancel user provided tasks and queries - documentation Key: IGNITE-12791 URL: https://issues.apache.org/jira/browse/IGNITE-12791 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task * Service * Continuous query * Transactions * Queries(SQL, Scan, Text) In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12785) KILL QUERY command doesn't support parameters
Nikolay Izhikov created IGNITE-12785: Summary: KILL QUERY command doesn't support parameters Key: IGNITE-12785 URL: https://issues.apache.org/jira/browse/IGNITE-12785 Project: Ignite Issue Type: Bug Components: sql Reporter: Nikolay Izhikov Ignite don't support parameter for KILL QUERY command. SqlParser doesn't recognize parameter token. {code:sql} KILL QUERY ? {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12782) [IEP-39] Interrupt service method executions on service cancel.
Nikolay Izhikov created IGNITE-12782: Summary: [IEP-39] Interrupt service method executions on service cancel. Key: IGNITE-12782 URL: https://issues.apache.org/jira/browse/IGNITE-12782 Project: Ignite Issue Type: Bug Affects Versions: 2.8 Environment: [ Reporter: Nikolay Izhikov Fix For: None Currently, service method execution not interrupted on service cancel. If some service has a buggy method that consumes server node resources cluster administrator can't stop invocation of this method. We should interrupt service method executions on service cancel. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12778) KILL QUERY command doesn't close already fetched cursor
Nikolay Izhikov created IGNITE-12778: Summary: KILL QUERY command doesn't close already fetched cursor Key: IGNITE-12778 URL: https://issues.apache.org/jira/browse/IGNITE-12778 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.9 KILL QUERY doesn't close already fetched cursor. Reproducer: {code:java} public void testCancelSQLQuery() throws Exception { startGrids(NODES_CNT); IgniteEx client = startClientGrid("client"); client.cluster().state(ACTIVE); IgniteCache cache = client.getOrCreateCache( new CacheConfiguration<>(DEFAULT_CACHE_NAME).setIndexedTypes(Integer.class, Integer.class)); for (int i = 0; i < PAGE_SZ * PAGE_SZ; i++) cache.put(i, i); SqlFieldsQuery qry = new SqlFieldsQuery("SELECT _KEY, _VAL FROM INTEGER").setSchema("default").setPageSize(10); Iterator> iter = queryProcessor(client).querySqlFields(qry, true).iterator(); assertNotNull(iter.next()); List> sqlQries = SqlViewExporterSpiTest.execute(client, "SELECT * FROM SYS.SQL_QUERIES ORDER BY START_TIME"); assertEquals(2, sqlQries.size()); String qryId = (String)sqlQries.get(0).get(0); assertEquals("SELECT _KEY, _VAL FROM INTEGER", sqlQries.get(0).get(1)); QueryMXBean qryMBean = getMxBean(client.name(), "Query", QueryMXBeanImpl.class.getSimpleName(), QueryMXBean.class); qryMBean.cancelSQL(qryId); //SqlViewExporterSpiTest.execute(client, "KILL QUERY '" + qryId + "'"); while(iter.hasNext()) assertNotNull(iter.next()); fail("You shouldn't be here!"); //Fails here for now. but should fails on iter.next call. {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12763) OpenCensus integration example.
Nikolay Izhikov created IGNITE-12763: Summary: OpenCensus integration example. Key: IGNITE-12763 URL: https://issues.apache.org/jira/browse/IGNITE-12763 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov We should provide to the user simple self-explaining example of the integration with the opencensus. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12749) Unsupported operation exception on node stop if collisionspi not null
Nikolay Izhikov created IGNITE-12749: Summary: Unsupported operation exception on node stop if collisionspi not null Key: IGNITE-12749 URL: https://issues.apache.org/jira/browse/IGNITE-12749 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov If collision spi specified then on the node stop there are exception: {noformat} java.lang.UnsupportedOperationException at org.jsr166.ConcurrentLinkedHashMap.clear(ConcurrentLinkedHashMap.java:1542) at org.apache.ignite.internal.processors.job.GridJobProcessor.stop(GridJobProcessor.java:376) at org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:2697) at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:2569) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2660) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2623) at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:339) at org.apache.ignite.Ignition.stop(Ignition.java:223) at org.apache.ignite.testframework.junits.GridAbstractTest.stopGrid(GridAbstractTest.java:1316) at org.apache.ignite.testframework.junits.GridAbstractTest.stopAllGrids(GridAbstractTest.java:1361) {noformat} The issue in the next line: {code:java} public GridJobProcessor(GridKernalContext ctx) { // Collision manager is already started and is fully functional. jobAlwaysActivate = !ctx.collision().enabled(); activeJobs = jobAlwaysActivate ? new ConcurrentHashMap() : new JobsMap(1024, 0.75f, 256); {code} We need replace JobsMap with the correct implementation. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12745) Compute job system view
Nikolay Izhikov created IGNITE-12745: Summary: Compute job system view Key: IGNITE-12745 URL: https://issues.apache.org/jira/browse/IGNITE-12745 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov ComputeTaskView shows compute tasks that was started(initiated) on the local node. We need to introduce another view that will show compute jobs - jobs that executing on the local node but was initiated on some remote node. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12736) [IEP-35] Compute task system view doesn't return task started from remote node
Nikolay Izhikov created IGNITE-12736: Summary: [IEP-35] Compute task system view doesn't return task started from remote node Key: IGNITE-12736 URL: https://issues.apache.org/jira/browse/IGNITE-12736 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.8 Bug reproducer: {code:java} @Test public void testComputeBroadcast2() throws Exception { try (IgniteEx g0 = startGrid(0); IgniteEx g1 = startClientGrid(1)) { SystemView tasks = g0.context().systemView().view(TASKS_VIEW); g1.compute().broadcastAsync(() -> { try { Thread.sleep(60_000L); } catch (InterruptedException e) { throw new RuntimeException(e); } }); Thread.sleep(1_000L); assertEquals(1, tasks.size()); } } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12723) Test refactoring. Explicit method to get MXBean instance
Nikolay Izhikov created IGNITE-12723: Summary: Test refactoring. Explicit method to get MXBean instance Key: IGNITE-12723 URL: https://issues.apache.org/jira/browse/IGNITE-12723 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Test code contains several dozen of copy-paste code to get different MXBeans. We can reduce code base by introducing common method for it. Example of copy pasted code: {code:java} /** */ private FailureHandlingMxBean getMBean() throws Exception { ObjectName name = U.makeMBeanName(getTestIgniteInstanceName(0), "Kernal", FailureHandlingMxBeanImpl.class.getSimpleName()); MBeanServer srv = ManagementFactory.getPlatformMBeanServer(); assertTrue(srv.isRegistered(name)); return MBeanServerInvocationHandler.newProxyInstance(srv, name, FailureHandlingMxBean.class, true); } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12641) IgniteSequenceInternalCleanupTest flacky after IGNITE-12598
Nikolay Izhikov created IGNITE-12641: Summary: IgniteSequenceInternalCleanupTest flacky after IGNITE-12598 Key: IGNITE-12641 URL: https://issues.apache.org/jira/browse/IGNITE-12641 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov IgniteSequenceInternalCleanupTest#deactivate is flacky after IGNITE-12598 The test expects that cache metrics will be reset after cluster deactivation and subsequent cache stop. But this was changed intentionally in IGNITE-12598. Test not always fail because it asserts cluster metrics value which updated concurrently with the test thread. We should fix the assert. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12632) [IEP-39] Management API to cancel user provided tasks and queries.
Nikolay Izhikov created IGNITE-12632: Summary: [IEP-39] Management API to cancel user provided tasks and queries. Key: IGNITE-12632 URL: https://issues.apache.org/jira/browse/IGNITE-12632 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Ignite provides many API to deploy and execute user-provided code on the server nodes inside the same JVM as the Ignite process runs. Ignite has many APIs that allocate many resources on the server nodes, also. In case of some buggy code that consumes many system resources(CPU, RAM, flood network) or heavy query the whole cluster can become unstable. We should provide to the cluster administrator the ability to stop any user deployed task. JMX beans to cancel listed tasks should be introduced: * Compute task * Service * Continuous query * Transactions * Queries(SQL, Scan, Text) In the scope of IEP-35 System view API introduced. A new API should use the same identifier that is used in corresponding System View. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12608) [ignite-extensions] Setup tests for ignite-client-spring-boot-autoconfigure, ignite-spring-boot-autoconfigure on TC
Nikolay Izhikov created IGNITE-12608: Summary: [ignite-extensions] Setup tests for ignite-client-spring-boot-autoconfigure, ignite-spring-boot-autoconfigure on TC Key: IGNITE-12608 URL: https://issues.apache.org/jira/browse/IGNITE-12608 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov It seems we should update JUnit version to run spring tests on TC -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12581) [REFACTORING] Test parametrization
Nikolay Izhikov created IGNITE-12581: Summary: [REFACTORING] Test parametrization Key: IGNITE-12581 URL: https://issues.apache.org/jira/browse/IGNITE-12581 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Right now many Ignite tests parametrization implemented via inheritance. For example: parent - JdbcThinBulkLoadAbstractSelfTest extensions - JdbcThinBulkLoadAtomicPartitionedNearSelfTest, JdbcThinBulkLoadAtomicPartitionedSelfTest, JdbcThinBulkLoadAtomicReplicatedSelfTest, JdbcThinBulkLoadTransactionalPartitionedNearSelfTest, JdbcThinBulkLoadTransactionalPartitionedSelfTest, JdbcThinBulkLoadTransactionalReplicatedSelfTest. Look like we can significantly reduce tests code base, therefore, improve readability and maintainability without losing any test-cases if we use the JUnit parameterized approach. A contributor can use this ticket as an umbrella one and create a sub-ticket for each refactored test-classes. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12553) [IEP-35] public Java metric API
Nikolay Izhikov created IGNITE-12553: Summary: [IEP-35] public Java metric API Key: IGNITE-12553 URL: https://issues.apache.org/jira/browse/IGNITE-12553 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov Right now, there is no simple way to get metrics values from the java code. We need to create a java API to access metric values. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12552) [IEP-35] Expose MetricRegistry to the public API
Nikolay Izhikov created IGNITE-12552: Summary: [IEP-35] Expose MetricRegistry to the public API Key: IGNITE-12552 URL: https://issues.apache.org/jira/browse/IGNITE-12552 Project: Ignite Issue Type: Improvement Affects Versions: 2.8 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.8 MetricRegistry is not a part of public API, but used in MetricExporter which is the part of public API. We should export MetricRegistry to the public API. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12525) Spring boot starter
Nikolay Izhikov created IGNITE-12525: Summary: Spring boot starter Key: IGNITE-12525 URL: https://issues.apache.org/jira/browse/IGNITE-12525 Project: Ignite Issue Type: Improvement Components: spring Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.9 To improve user experience with Ignite we should provide an ignite-spring-boot-starter like many of other projects do. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12493) Test refactoring. Explicit method for starting client nodes
Nikolay Izhikov created IGNITE-12493: Summary: Test refactoring. Explicit method for starting client nodes Key: IGNITE-12493 URL: https://issues.apache.org/jira/browse/IGNITE-12493 Project: Ignite Issue Type: Bug Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Assignee: Ivan Pavlukhin Right now there is almost 500 explicit usage of {{setClientMode}} in tests. Seems we should support the starting of client nodes in test framework. We should introduce method {{startClientNode(String name)}} and similar. This will simplify tests. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12464) Service metrics
Nikolay Izhikov created IGNITE-12464: Summary: Service metrics Key: IGNITE-12464 URL: https://issues.apache.org/jira/browse/IGNITE-12464 Project: Ignite Issue Type: Improvement Affects Versions: 2.7.6 Reporter: Nikolay Izhikov We should provide the following metrics for each deployed service: * Count of executions * Histogram of executions duration -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12450) Transaction operations metrics
Nikolay Izhikov created IGNITE-12450: Summary: Transaction operations metrics Key: IGNITE-12450 URL: https://issues.apache.org/jira/browse/IGNITE-12450 Project: Ignite Issue Type: Improvement Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Fix For: 2.8 We should add histogram metrics that measure tx.commit and tx.rollback time. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12426) [IEP-35] Metric configuration: add node local configuration
Nikolay Izhikov created IGNITE-12426: Summary: [IEP-35] Metric configuration: add node local configuration Key: IGNITE-12426 URL: https://issues.apache.org/jira/browse/IGNITE-12426 Project: Ignite Issue Type: Improvement Affects Versions: 2.7 Reporter: Nikolay Izhikov Fix For: 2.9 We should provide the way to node-local configuration for metrics. Configuration should: * survive node restart. * rewrite cluster-wide configuration. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12408) Metrics and SystemView documentation
Nikolay Izhikov created IGNITE-12408: Summary: Metrics and SystemView documentation Key: IGNITE-12408 URL: https://issues.apache.org/jira/browse/IGNITE-12408 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov We should provide the following documentation - metric description. - system view descirption. - metrics exporter configuration guide. - system view exporter configuration guide. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12406) Refactor GridCommonAbstractTest#findKeys to use enum
Nikolay Izhikov created IGNITE-12406: Summary: Refactor GridCommonAbstractTest#findKeys to use enum Key: IGNITE-12406 URL: https://issues.apache.org/jira/browse/IGNITE-12406 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Currently, we have {{type}} argument in findKeys method. It used to distinguish between required key types. This argument should be refactored to enum and documented in JavaDoc. {code:java} protected List findKeys(@Nullable ClusterNode node, IgniteCache cache, final int cnt, final int startFrom, final int type) { if (type == 0) ok = aff.isPrimary(node0, key); else if (type == 1) ok = aff.isBackup(node0, key); else if (type == 2) ok = !aff.isPrimaryOrBackup(node0, key); {code:java} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12393) Thread pool queue system view
Nikolay Izhikov created IGNITE-12393: Summary: Thread pool queue system view Key: IGNITE-12393 URL: https://issues.apache.org/jira/browse/IGNITE-12393 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov When in the production environment exist some cluster performance issues usually it leads to the large striped executor queue size. The number of tasks in the queue can observe by {StripedExecutorMXBean#getTotalQueueSize} metric. In the case queue size becomes large it's useful to have the ability to know what tasks are waiting for execution in the thread pool. Especially, for dealing with failover scenarios. We should create a system views to expose information about striped executor services queue. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12371) Explicit method for starting client nodes
Nikolay Izhikov created IGNITE-12371: Summary: Explicit method for starting client nodes Key: IGNITE-12371 URL: https://issues.apache.org/jira/browse/IGNITE-12371 Project: Ignite Issue Type: Bug Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Right now there is almost 500 explicit usage of {{setClientMode}} in tests. Seems we should support the starting of client nodes in test framework. We should introduce method {{startClientNode(String name)}} and similar. This will simplify tests. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12330) Assertion error in CachedDeploymentInfo
Nikolay Izhikov created IGNITE-12330: Summary: Assertion error in CachedDeploymentInfo Key: IGNITE-12330 URL: https://issues.apache.org/jira/browse/IGNITE-12330 Project: Ignite Issue Type: Bug Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.8 The following exception occured on some production environment. It leads to the node fail. {noformat} 2019-09-17 18:29:29.890[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][o.a.i.i.p.cache.GridCacheIoManager] Failed to process message [senderId=4c071d12-325a-4bb1-a68d-cc910f636562, msg=GridCacheQueryRequest [id=4922, cacheName=com.sbt.limits.data.entity.LimitTemplateV1Entity_DPL_union-module, type=SCAN, fields=false, clause=null, clsName=null, keyValFilter=null, rdc=null, trans=null, pageSize=1024, incBackups=false, cancel=false, incMeta=false, all=false, keepBinary=true, subjId=4c071d12-325a-4bb1-a68d-cc910f636562, taskHash=0, part=-1, topVer=AffinityTopologyVersion [topVer=191, minorTopVer=0], super=GridCacheIdMessage [cacheId=-724666788]]]2019-09-17 18:29:29.890[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][o.a.i.i.p.cache.GridCacheIoManager] Failed to process message [senderId=4c071d12-325a-4bb1-a68d-cc910f636562, msg=GridCacheQueryRequest [id=4922, cacheName=com.sbt.limits.data.entity.LimitTemplateV1Entity_DPL_union-module, type=SCAN, fields=false, clause=null, clsName=null, keyValFilter=null, rdc=null, trans=null, pageSize=1024, incBackups=false, cancel=false, incMeta=false, all=false, keepBinary=true, subjId=4c071d12-325a-4bb1-a68d-cc910f636562, taskHash=0, part=-1, topVer=AffinityTopologyVersion [topVer=191, minorTopVer=0], super=GridCacheIdMessage [cacheId=-724666788]]] java.lang.AssertionError: null at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:918) at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:889) at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.p2pContext(GridCacheDeploymentManager.java:422) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1547) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:582) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:386) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:312) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:102) at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:301) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) at org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) 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) 2019-09-17 18:29:29.912[ERROR][query-#1577440%DPL_GRID%DplGridNodeName%][org.apache.ignite.Ignite] Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=CRITICAL_ERROR, err=java.lang.AssertionError]] java.lang.AssertionError: null at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:918) at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CachedDeploymentInfo.(GridCacheDeploymentManager.java:889) at org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.p2pContext(GridCacheDeploymentManager.java:422) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1547) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:582) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:386) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:312) at
[jira] [Created] (IGNITE-12286) NPE in SQLView exporter when filter is null
Nikolay Izhikov created IGNITE-12286: Summary: NPE in SQLView exporter when filter is null Key: IGNITE-12286 URL: https://issues.apache.org/jira/browse/IGNITE-12286 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov When filter is null in {{SqlViewMetricExporterSpi}} then NPE happens: {noformat} [2019-10-13 12:30:43,611][INFO ][main][root] >>> Starting test: SqlViewExporterSpiTest#testDataRegionMetrics <<< [2019-10-13 12:30:43,616][ERROR][main][root] Test failed. class org.apache.ignite.IgniteException: Failed to execute SQL query. Внутренняя ошибка: "java.lang.NullPointerException" General error: "java.lang.NullPointerException"; SQL statement: SELECT REPLACE(name, 'io.dataregion.default.'), value, description FROM SYS.METRICS [5-197] at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.lambda$executeSelect0$1(IgniteH2Indexing.java:1422) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.iter(QueryCursorImpl.java:106) at org.apache.ignite.internal.processors.cache.query.RegisteredQueryCursor.iter(RegisteredQueryCursor.java:66) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:125) at org.apache.ignite.internal.processors.cache.metric.SqlViewExporterSpiTest.execute(SqlViewExporterSpiTest.java:589) at org.apache.ignite.internal.processors.cache.metric.SqlViewExporterSpiTest.testDataRegionMetrics(SqlViewExporterSpiTest.java:136) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [2019-10-13 12:30:43,619][INFO ][main][root] >>> Stopping test: SqlViewExporterSpiTest#testDataRegionMetrics in 8 ms <<< at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.apache.ignite.testframework.junits.GridAbstractTest$7.run(GridAbstractTest.java:2090) at java.lang.Thread.run(Thread.java:748) Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute SQL query. Внутренняя ошибка: "java.lang.NullPointerException" General error: "java.lang.NullPointerException"; SQL statement: SELECT REPLACE(name, 'io.dataregion.default.'), value, description FROM SYS.METRICS [5-197] at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:828) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:909) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:578) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:555) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.lambda$executeSelect0$1(IgniteH2Indexing.java:1419) ... 15 more Caused by: org.h2.jdbc.JdbcSQLException: Внутренняя ошибка: "java.lang.NullPointerException" General error: "java.lang.NullPointerException"; SQL statement: SELECT REPLACE(name, 'io.dataregion.default.'), value, description FROM SYS.METRICS [5-197] at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) at org.h2.message.DbException.get(DbException.java:168) at org.h2.message.DbException.convert(DbException.java:307) at org.h2.command.Command.executeQuery(Command.java:216) at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:114) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:821) ... 19 more Caused by: java.lang.NullPointerException at org.apache.ignite.spi.metric.sql.MetricRegistryLocalSystemView$1.advance(MetricRegistryLocalSystemView.java:75) at org.apache.ignite.spi.metric.sql.MetricRegistryLocalSystemView$1.hasNext(MetricRegistryLocalSystemView.java:92) at org.apache.ignite.internal.processors.query.h2.opt.GridH2Cursor.next(GridH2Cursor.java:78) at org.h2.index.IndexCursor.next(IndexCursor.java:316) at org.h2.table.TableFilter.next(TableFilter.java:502) at org.h2.command.dml.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1452) at org.h2.result.LazyResult.hasNext(LazyResult.java:79) at
[jira] [Created] (IGNITE-12249) Concurrent guarantees for TransactionView
Nikolay Izhikov created IGNITE-12249: Summary: Concurrent guarantees for TransactionView Key: IGNITE-12249 URL: https://issues.apache.org/jira/browse/IGNITE-12249 Project: Ignite Issue Type: Bug Reporter: Nikolay Izhikov Currently, {{TransactionView#keysCount}} and {{TransactionView#cacheIds}} works with Collections that not provides concurrent guarantees. We should research the possibility to provide consistent transaction view for these data structures. Performance of the transaction engine can be limitation here. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12240) ReadOnlyCollectionView2X fails on iterator.next
Nikolay Izhikov created IGNITE-12240: Summary: ReadOnlyCollectionView2X fails on iterator.next Key: IGNITE-12240 URL: https://issues.apache.org/jira/browse/IGNITE-12240 Project: Ignite Issue Type: Bug Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Simple reproducer below will throw {{NoSuchElementException}}. Iterator only works if one call {{hasNext}} before {{next}}. {code:java} /** */ @Test public void testReadOnlyCollection() throws Exception { Collection c1 = Collections.emptyList(); Collection c2 = Arrays.asList("1"); ReadOnlyCollectionView2X view = new ReadOnlyCollectionView2X<>(c1, c2); assertEquals("1", view.iterator().next()); } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12239) Transaction keys system view
Nikolay Izhikov created IGNITE-12239: Summary: Transaction keys system view Key: IGNITE-12239 URL: https://issues.apache.org/jira/browse/IGNITE-12239 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov We should export transaction keys as a system view -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12224) SQL query system view
Nikolay Izhikov created IGNITE-12224: Summary: SQL query system view Key: IGNITE-12224 URL: https://issues.apache.org/jira/browse/IGNITE-12224 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov We need to add system view for a SQL queries -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12223) Create text query, scan query system view
Nikolay Izhikov created IGNITE-12223: Summary: Create text query, scan query system view Key: IGNITE-12223 URL: https://issues.apache.org/jira/browse/IGNITE-12223 Project: Ignite Issue Type: Sub-task Affects Versions: 2.7.6 Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov Fix For: 2.8 We need to add a system views for * Scan queries * Text queries -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12221) Javadoc generation fail
Nikolay Izhikov created IGNITE-12221: Summary: Javadoc generation fail Key: IGNITE-12221 URL: https://issues.apache.org/jira/browse/IGNITE-12221 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov javadoc generation command fails {{code}} System view SPI org.apache.ignite.spi.systemview* {{code}} should be added to the parent pom. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12219) Cache operations histogram
Nikolay Izhikov created IGNITE-12219: Summary: Cache operations histogram Key: IGNITE-12219 URL: https://issues.apache.org/jira/browse/IGNITE-12219 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov We need to provide cache operations histogram metrics Next API and its variants should be covered: * get * getEntry * getAll * put * remove * replace * lock * invoke * containsKey -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12213) Sql objects system views
Nikolay Izhikov created IGNITE-12213: Summary: Sql objects system views Key: IGNITE-12213 URL: https://issues.apache.org/jira/browse/IGNITE-12213 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov IGNITE-12145 finished We should add nodes system views. System view should track current topology nodes. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12212) Nodes system view
Nikolay Izhikov created IGNITE-12212: Summary: Nodes system view Key: IGNITE-12212 URL: https://issues.apache.org/jira/browse/IGNITE-12212 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov IGNITE-12145 finished We should add client connections to the system views. System view should track JDBC, ODBC and thin connections. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12211) Client connections system view
Nikolay Izhikov created IGNITE-12211: Summary: Client connections system view Key: IGNITE-12211 URL: https://issues.apache.org/jira/browse/IGNITE-12211 Project: Ignite Issue Type: Sub-task Reporter: Nikolay Izhikov Assignee: Nikolay Izhikov IGNITE-12145 finished We should add client connections to the system views. System view should track JDBC, ODBC and thin connections. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12191) Add support of system view and metric to Visor
Nikolay Izhikov created IGNITE-12191: Summary: Add support of system view and metric to Visor Key: IGNITE-12191 URL: https://issues.apache.org/jira/browse/IGNITE-12191 Project: Ignite Issue Type: Improvement Reporter: Nikolay Izhikov After Ignite obtain new {{SystemView}} and {{Metric}} API we should add support of it to the Visor. User should be able to query and view any system view content or Metric Registry values. -- This message was sent by Atlassian Jira (v8.3.4#803005)