[jira] [Created] (IGNITE-2785) Improve test coverage for web session clustering
Valentin Kulichenko created IGNITE-2785: --- Summary: Improve test coverage for web session clustering Key: IGNITE-2785 URL: https://issues.apache.org/jira/browse/IGNITE-2785 Project: Ignite Issue Type: Improvement Components: websession Affects Versions: 1.5.0.final Reporter: Valentin Kulichenko Assignee: Anton Vinogradov Fix For: 1.6 Web session clustering is not very well covered with tests. What should be done: * Add more unit tests for different cases. * Test with different cache configurations. * Make {{ignite-weblogic-test}} more verbose and use it to check functionality on a "real" app with different app servers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2776) Need to support JTA transactions via synchronization callback
Valentin Kulichenko created IGNITE-2776: --- Summary: Need to support JTA transactions via synchronization callback Key: IGNITE-2776 URL: https://issues.apache.org/jira/browse/IGNITE-2776 Project: Ignite Issue Type: Improvement Affects Versions: 1.5.0.final Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 Need to add an option to enlist transaction as {{javax.transaction.Synchronization}} instead of XA resource. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2774) Add JPA-based store session listener
Valentin Kulichenko created IGNITE-2774: --- Summary: Add JPA-based store session listener Key: IGNITE-2774 URL: https://issues.apache.org/jira/browse/IGNITE-2774 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Fix For: 1.6 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2773) Document swap space
Valentin Kulichenko created IGNITE-2773: --- Summary: Document swap space Key: IGNITE-2773 URL: https://issues.apache.org/jira/browse/IGNITE-2773 Project: Ignite Issue Type: Task Components: documentation Reporter: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2772) Document plugin development
Valentin Kulichenko created IGNITE-2772: --- Summary: Document plugin development Key: IGNITE-2772 URL: https://issues.apache.org/jira/browse/IGNITE-2772 Project: Ignite Issue Type: Task Components: documentation Reporter: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2771) Document machine safety
Valentin Kulichenko created IGNITE-2771: --- Summary: Document machine safety Key: IGNITE-2771 URL: https://issues.apache.org/jira/browse/IGNITE-2771 Project: Ignite Issue Type: Task Components: documentation Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2770) Document custom SQL functions
Valentin Kulichenko created IGNITE-2770: --- Summary: Document custom SQL functions Key: IGNITE-2770 URL: https://issues.apache.org/jira/browse/IGNITE-2770 Project: Ignite Issue Type: Task Components: documentation Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2769) Document store session listeners
Valentin Kulichenko created IGNITE-2769: --- Summary: Document store session listeners Key: IGNITE-2769 URL: https://issues.apache.org/jira/browse/IGNITE-2769 Project: Ignite Issue Type: Task Components: documentation Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2766) Cache instance is closed when client disconnects
Valentin Kulichenko created IGNITE-2766: --- Summary: Cache instance is closed when client disconnects Key: IGNITE-2766 URL: https://issues.apache.org/jira/browse/IGNITE-2766 Project: Ignite Issue Type: Bug Components: cache Affects Versions: 1.5.0.final Reporter: Valentin Kulichenko Fix For: 1.6 In case client disconnects and reconnects after network timeout (i.e., with a new ID), all cache instances acquired by this client are closed and are not functional. User has to create a special logic to handle this case. Cache proxy should be able to handle this automatically. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2765) WebSessionFilter doesn't survive client reconnect
Valentin Kulichenko created IGNITE-2765: --- Summary: WebSessionFilter doesn't survive client reconnect Key: IGNITE-2765 URL: https://issues.apache.org/jira/browse/IGNITE-2765 Project: Ignite Issue Type: Bug Components: websession Affects Versions: 1.5.0.final Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 If a {{WebSessionFilter}} is started with an embedded client, it is not functional after the client disconnects and reconnects. Any operation throws the exception below. {noformat} java.lang.IllegalStateException: Cache has been closed or destroyed: WebCache at org.apache.ignite.internal.processors.cache.GridCacheGateway.enter(GridCacheGateway.java:160) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.onEnter(IgniteCacheProxy.java:1958) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.get(IgniteCacheProxy.java:855) at org.apache.ignite.cache.websession.WebSessionFilter.doFilter0(WebSessionFilter.java:341) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2758) IGNITE_HOME/libs/ignite-aws/aws-java-sdk-1.10.29.jar doesn't contain any classes
Valentin Kulichenko created IGNITE-2758: --- Summary: IGNITE_HOME/libs/ignite-aws/aws-java-sdk-1.10.29.jar doesn't contain any classes Key: IGNITE-2758 URL: https://issues.apache.org/jira/browse/IGNITE-2758 Project: Ignite Issue Type: Bug Components: build Affects Versions: 1.5.0.final Reporter: Valentin Kulichenko Priority: Blocker Fix For: 1.6 To observe the issue do this: * Build the fabric ZIP file. * Go to {{ignite-aws}} module folder. * Unzip {{aws-java-sdk-1.10.29.jar}}. * JAR file contains only pom.xml, no classes. We need to make sure that all required AWS SDK components are included. At least we need these ones: * aws-java-sdk-core * aws-java-sdk-s3 * joda-time -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2749) Web session clustering works incorrectly with WebLogic
Valentin Kulichenko created IGNITE-2749: --- Summary: Web session clustering works incorrectly with WebLogic Key: IGNITE-2749 URL: https://issues.apache.org/jira/browse/IGNITE-2749 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 {{WebSessionFilter}} has a special processing for the session ID generated by WebLogic. The issue is that this processing is not applied in all required cases. E.g., session ID is transformed when new session is saved in cache (see {{createSession}} method, but not transformed when it's fetched from cache (see {{doFilter0}}. Need to go through the code, locate incorrect places and fix. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2748) Service proxy makes remote call for methods declared in java.lang.Object
Valentin Kulichenko created IGNITE-2748: --- Summary: Service proxy makes remote call for methods declared in java.lang.Object Key: IGNITE-2748 URL: https://issues.apache.org/jira/browse/IGNITE-2748 Project: Ignite Issue Type: Bug Components: managed services Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 To reproduce the issue, get a service proxy and call one of {{java.lang.Object}} methods (e.g., {{hashCode}}). It will make a remote call, which is not needed and can cause issues. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2728) User
Valentin Kulichenko created IGNITE-2728: --- Summary: User Key: IGNITE-2728 URL: https://issues.apache.org/jira/browse/IGNITE-2728 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2727) User
Valentin Kulichenko created IGNITE-2727: --- Summary: User Key: IGNITE-2727 URL: https://issues.apache.org/jira/browse/IGNITE-2727 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2726) Visor shows zero size for OFFHEAP_TIERED cache
Valentin Kulichenko created IGNITE-2726: --- Summary: Visor shows zero size for OFFHEAP_TIERED cache Key: IGNITE-2726 URL: https://issues.apache.org/jira/browse/IGNITE-2726 Project: Ignite Issue Type: Bug Components: visor Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 To reproduce: 1. Change cache memory mode in {{CachePutGetExample}} to {{OFFHEAP_TIERED}}. 2. Run the example. 3. Connect with Visor and run {{cache -a}} command. See result below - number of entries is zero. With {{ONHEAP_TIERED}} is shows the correct cache size. {noformat} visor> cache -a Time of the snapshot: 02/25/16, 13:10:44 +==+ | Name(@) |Mode | Nodes | Entries |Hits| Misses | Reads| Writes | +==+ | CachePutGetExample(@c0) | PARTITIONED | 1 | min: 0| min: 40| min: 0| min: 40| min: 40| | | | | avg: 0.00 | avg: 40.00 | avg: 0.00 | avg: 40.00 | avg: 40.00 | | | | | max: 0| max: 40| max: 0| max: 40| max: 40| +--+ {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2719) Value is not copied in entry processor if optimized marshaller is used
Valentin Kulichenko created IGNITE-2719: --- Summary: Value is not copied in entry processor if optimized marshaller is used Key: IGNITE-2719 URL: https://issues.apache.org/jira/browse/IGNITE-2719 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: 1.6 If {{OptimizedMarshaller}} is used, the {{MutableEntry}} passed to entry processor contains the same instance that is stored in cache, even if {{copyOnRead}} flag is true. This happens because {{CacheLazyEntry.getValue()}} method never creates a copy. Test attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2708) Need to validate that SPIs are started only once
Valentin Kulichenko created IGNITE-2708: --- Summary: Need to validate that SPIs are started only once Key: IGNITE-2708 URL: https://issues.apache.org/jira/browse/IGNITE-2708 Project: Ignite Issue Type: Improvement Components: general Reporter: Valentin Kulichenko User forum discussion: http://apache-ignite-users.70518.x6.nabble.com/Ignite-instance-hangs-during-restart-in-client-mode-td3101.html If one uses the same instance of {{IgniteConfiguration}} more than once, it doesn't work because SPIs have lifecycle and can be started only once. Currently this causes hang on start which is counterintuitive. We should add a validation step to {{GridSpiAdapter}} that will check that the SPI was never started before. Its {{spiStart()}} method should set some flag there or throw exception if it has already been set. All internal SPI implementations should be changed to call {{super.spiStart()}} as first statement. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2681) Need to add an option to suppress binary marshaller warnings
Valentin Kulichenko created IGNITE-2681: --- Summary: Need to add an option to suppress binary marshaller warnings Key: IGNITE-2681 URL: https://issues.apache.org/jira/browse/IGNITE-2681 Project: Ignite Issue Type: Improvement Components: general Reporter: Valentin Kulichenko Fix For: 1.6 Some users don't want to have warnings like below in the logs, because they are printed out for each class and are not always needed. We need to have a way to suppress them. Both quiet mode and logging via {{IgniteLogger}} should be fixed. {noformat} [11:37:46] Class "" cannot be serialized using BinaryMarshaller because it either implements Externalizable interface or have writeObject/readObject methods. OptimizedMarshaller will be used instead and class instances will be deserialized on the server. Please ensure that all nodes have this class in classpath. To enable binary serialization either implement Binarylizable interface or set explicit serializer using BinaryTypeConfiguration.setSerializer() method. {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2669) IgniteCache.replace() returns false instead of true when there is only one node
Valentin Kulichenko created IGNITE-2669: --- Summary: IgniteCache.replace() returns false instead of true when there is only one node Key: IGNITE-2669 URL: https://issues.apache.org/jira/browse/IGNITE-2669 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Test attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2668) MBean creation fails if cache name contains ':' character
Valentin Kulichenko created IGNITE-2668: --- Summary: MBean creation fails if cache name contains ':' character Key: IGNITE-2668 URL: https://issues.apache.org/jira/browse/IGNITE-2668 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Fix For: 1.6 If someone tries to start a cache with ':' in the name, it will fail with the exception: {noformat} 2016-02-16T17:53:56.570+ [exchange-worker-#83%SensorIQ%] ERROR GridDhtPartitionsExchangeFuture [] - Failed to reinitialize local partitions (preloading will be stopped): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=1, minorTopVer=1], nodeId=1afff13b, evt=DISCOVE RY_CUSTOM_EVT] org.apache.ignite.IgniteCheckedException: Failed to register MBean for component: org.apache.ignite.internal.processors.cache.CacheMetricsMXBean Impl@4a9488fe at org.apache.ignite.internal.processors.cache.GridCacheProcessor.registerMbean(GridCacheProcessor.java:3313) ~[ignite-core-1.5.6.jar!/: 1.5.6] at org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1482) ~[ignite-core-1.5.6.jar!/:1. 5.6] at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1629) ~[ignite-core-1.5.6.ja r!/:1.5.6] at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCachesStart(GridCacheProcessor.java:1554) ~[ignite-core-1.5.6.j ar!/:1.5.6] at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.startCaches(GridDhtPartitionsEx changeFuture.java:960) ~[ignite-core-1.5.6.jar!/:1.5.6] at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeF uture.java:523) ~[ignite-core-1.5.6.jar!/:1.5.6] at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.j ava:1297) [ignite-core-1.5.6.jar!/:1.5.6] at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) [ignite-core-1.5.6.jar!/:1.5.6] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31] Caused by: javax.management.MalformedObjectNameException: Invalid character ':' in value part of property at javax.management.ObjectName.construct(ObjectName.java:618) ~[na:1.8.0_31] at javax.management.ObjectName.(ObjectName.java:1382) ~[na:1.8.0_31] at org.apache.ignite.internal.util.IgniteUtils.makeCacheMBeanName(IgniteUtils.java:4280) ~[ignite-core-1.5.6.jar!/:1.5.6] at org.apache.ignite.internal.util.IgniteUtils.registerCacheMBean(IgniteUtils.java:4356) ~[ignite-core-1.5.6.jar!/:1.5.6] at org.apache.ignite.internal.processors.cache.GridCacheProcessor.registerMbean(GridCacheProcessor.java:3309) ~[ignite-core-1.5.6.jar!/:1.5.6] ... 8 common frames omitted {noformat} User list thread: http://apache-ignite-users.70518.x6.nabble.com/Exception-on-cluster-start-after-upgrading-to-GridGain-Community-Edition-td3035.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2594) Cached web session requires setAttribute() to be called on each update
Valentin Kulichenko created IGNITE-2594: --- Summary: Cached web session requires setAttribute() to be called on each update Key: IGNITE-2594 URL: https://issues.apache.org/jira/browse/IGNITE-2594 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Fix For: 1.6 Issue is described here: http://stackoverflow.com/questions/35268184/updating-apache-ignite-websession-attributes -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2592) Aggregation query with subquery returns incorrect result
Valentin Kulichenko created IGNITE-2592: --- Summary: Aggregation query with subquery returns incorrect result Key: IGNITE-2592 URL: https://issues.apache.org/jira/browse/IGNITE-2592 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Issue is discussed here: http://apache-ignite-users.70518.x6.nabble.com/SQL-query-result-variation-td2889.html Here is the code that reproduces it: https://gist.github.com/anonymous/8e2af218598e46577b2a -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2570) LoadCacheClosure and several other classes in GridCacheAdapter are not marked as internal
Valentin Kulichenko created IGNITE-2570: --- Summary: LoadCacheClosure and several other classes in GridCacheAdapter are not marked as internal Key: IGNITE-2570 URL: https://issues.apache.org/jira/browse/IGNITE-2570 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Need to go through all our internal jobs and closures and make sure they are annotation with {{@GridInternal}}. Probably we can automate this by adding additional check in {{ClassesGenerator}} - any class in {{org.apache.ignite.internal}} package that implements closure, job, etc., should have this annotation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2560) Support injections in entry processors
Valentin Kulichenko created IGNITE-2560: --- Summary: Support injections in entry processors Key: IGNITE-2560 URL: https://issues.apache.org/jira/browse/IGNITE-2560 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Currently resources are not injected in entry processor, which is not consistent with other functionality, like closures, jobs, listeners, etc. To avoid performance degradation we should introspect the class only once, cache this information and do not try to inject if there are no annotations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2559) Transaction hangs if entry processor is not serializable
Valentin Kulichenko created IGNITE-2559: --- Summary: Transaction hangs if entry processor is not serializable Key: IGNITE-2559 URL: https://issues.apache.org/jira/browse/IGNITE-2559 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Test attached. If entry processor doesn't implement {{Serializable}}, the exception is thrown, but transaction hangs forever. Hanged thread dump: {noformat} "main" #1 prio=5 os_prio=31 tid=0x7faf8380 nid=0x1703 waiting on condition [0x70218000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00076b1e75f0> (a org.apache.ignite.internal.util.future.GridEmbeddedFuture) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283) at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:157) at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:117) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$24.op(GridCacheAdapter.java:2296) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$24.op(GridCacheAdapter.java:2283) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:4291) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.invoke0(GridCacheAdapter.java:2283) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.invoke(GridCacheAdapter.java:2261) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.invoke(IgniteCacheProxy.java:1518) at ScratchClient.main(ScratchClient.java:29) 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:483) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2558) NearCacheConfiguration should not extend MutableConfiguration
Valentin Kulichenko created IGNITE-2558: --- Summary: NearCacheConfiguration should not extend MutableConfiguration Key: IGNITE-2558 URL: https://issues.apache.org/jira/browse/IGNITE-2558 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Currently {{NearCacheConfiguration}} extends {{MutableConfiguration}} which means that it inherits all the properties that don't make sense for it. Also it's possible to use it to create a cache with {{CacheManager}}, which is also confusing. {{NearCacheConfiguration}} should not extend and classes and should be used only directly in {{CacheConfiguration.setNearConfiguration()}} or {{Ignite.createCache()}} and similar methods. In addition, it would be useful to add {{setCopyOnRead}} property for near cache. Now it's not possible to control this behavior for near cache only. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2546) Need to introduce transformers to SCAN queries
Valentin Kulichenko created IGNITE-2546: --- Summary: Need to introduce transformers to SCAN queries Key: IGNITE-2546 URL: https://issues.apache.org/jira/browse/IGNITE-2546 Project: Ignite Issue Type: Improvement Reporter: Valentin Kulichenko Fix For: 1.6 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2538) RDD.isEmpty method should be overriden in IgniteRDD to use IgniteCache API
Valentin Kulichenko created IGNITE-2538: --- Summary: RDD.isEmpty method should be overriden in IgniteRDD to use IgniteCache API Key: IGNITE-2538 URL: https://issues.apache.org/jira/browse/IGNITE-2538 Project: Ignite Issue Type: Improvement Components: Ignite RDD Reporter: Valentin Kulichenko Currently calling {{IgniteRDD.isEmpty}} ends up in execution of 1024 Spark jobs, which is not fast. We should override this method and use native {{IgniteCache}} API there. Other methods should be also revisited. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2527) IndexOutOfBoundsException in scheduler future
Valentin Kulichenko created IGNITE-2527: --- Summary: IndexOutOfBoundsException in scheduler future Key: IGNITE-2527 URL: https://issues.apache.org/jira/browse/IGNITE-2527 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Priority: Minor Fix For: 1.6 Calling {{SchedulerFuture.nextExecutionTime()}} (and probably other methods) on a completed future leads to this exception: {noformat} Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at org.apache.ignite.internal.processors.schedule.ScheduleFutureImpl.nextExecutionTime(ScheduleFutureImpl.java:455) {noformat} In particular, this happens if {{nextExecutionTime()}} right after calling {{IgniteScheduler.scheduleLocal()}} with an invalid pattern (see code example below). The exception is lost in this case and is never printed out or thrown. {code} SchedulerFuture schedulerFuture = ignite.scheduler().scheduleLocal(() -> {}, "{55} 53 3/5 * * *"); long nextExecutionTime = schedulerFuture.nextExecutionTime(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2498) Offheap memory + peer class loading = ClassNotFoundException
Valentin Kulichenko created IGNITE-2498: --- Summary: Offheap memory + peer class loading = ClassNotFoundException Key: IGNITE-2498 URL: https://issues.apache.org/jira/browse/IGNITE-2498 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Blocker Fix For: 1.6 With offheap memory and peer class loading, cache tries to deserialize value on server, even if binary format is used. To reproduce start a node using {{ignite.sh}} and run attached {{OffheapP2PTest}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2483) Cache metrics bugs
Valentin Kulichenko created IGNITE-2483: --- Summary: Cache metrics bugs Key: IGNITE-2483 URL: https://issues.apache.org/jira/browse/IGNITE-2483 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 User list discussion: http://apache-ignite-users.70518.x6.nabble.com/Is-there-a-way-to-get-cache-metrics-for-all-the-nodes-in-cluster-combined-td2674.html Currently there are at least three issues with cache metrics: # When metrics are acquired on client, average put times are always zero. This happens because timings are calculated on the client, but puts are counted on servers. # Size and keySize are always zero even if cache is not empty. # Default metrics() method that doesn't take a cluster group provides metrics for local node only. So if it's called on client, they are always empty. It should calculate metrics for the whole cluster instead. Also looks like this code is very undertested. Coverage should be significantly improved. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2455) SQL query fails if there are caches that were never used on this client
Valentin Kulichenko created IGNITE-2455: --- Summary: SQL query fails if there are caches that were never used on this client Key: IGNITE-2455 URL: https://issues.apache.org/jira/browse/IGNITE-2455 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Test attached. If SQL query contains caches that were never acquired on the current client, it fails with the following exception: {noformat} org.h2.jdbc.JdbcSQLException: Schema "cache2" not found; {noformat} We should automatically detect the list of required caches and create them before executing the query. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2454) Continuous query notification missed if there is only one node
Valentin Kulichenko created IGNITE-2454: --- Summary: Continuous query notification missed if there is only one node Key: IGNITE-2454 URL: https://issues.apache.org/jira/browse/IGNITE-2454 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Attachments: CacheListenerTest.java Test attached. The remote filter is invoked, returns {{true}}, but the local listener is ignored. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2389) Need to add ability to swap the queue if it's too long
Valentin Kulichenko created IGNITE-2389: --- Summary: Need to add ability to swap the queue if it's too long Key: IGNITE-2389 URL: https://issues.apache.org/jira/browse/IGNITE-2389 Project: Ignite Issue Type: Improvement Components: data structures Reporter: Valentin Kulichenko Fix For: 1.6 In some cases there can be a requirement to start swapping new queue elements to avoid out of memory errors. For example, if the consumer temporarily stopped for some reason, but the producer still adds elements. We can do this based on cache swap space and evictions. I think we should: # Add max allowed in-memory elements property to {{CollectionConfiguration}}. We can also support limit by memory size. # Implement special eviction policy that will evict new queue elements if limits are reached. # Automatically unswap latest elements when consumer resumes polling (can be achieved by a background process). In case of {{IgniteSet}}, limits should be also honored, but here we don't have ordering. So I think we can use our standard LRU, but make sure that only elements are swapped. Header and other meta objects should be always in memory. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2386) affinityCall() execution hangs
Valentin Kulichenko created IGNITE-2386: --- Summary: affinityCall() execution hangs Key: IGNITE-2386 URL: https://issues.apache.org/jira/browse/IGNITE-2386 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Test reproducing the issue is attached. affinityCall() invocation hangs with the following trace: {code} "main" prio=5 tid=0x7f8b1b001800 nid=0x1703 waiting on condition [0x70218000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x0007ab170eb8> (a org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache$AffinityReadyFuture) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:157) at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:115) at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.awaitTopologyVersion(GridAffinityAssignmentCache.java:477) at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:435) at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.assignments(GridAffinityAssignmentCache.java:306) at org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.assignments(GridCacheAffinityManager.java:159) at org.apache.ignite.internal.processors.affinity.GridAffinityProcessor.affinityCache(GridAffinityProcessor.java:333) at org.apache.ignite.internal.processors.affinity.GridAffinityProcessor.affinityKey(GridAffinityProcessor.java:238) at org.apache.ignite.internal.processors.closure.GridClosureProcessor.affinityCall(GridClosureProcessor.java:442) at org.apache.ignite.internal.IgniteComputeImpl.affinityCall(IgniteComputeImpl.java:130) at AffinityTest.main(AffinityTest.java:42) {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2384) Notification missed in continuous query
Valentin Kulichenko created IGNITE-2384: --- Summary: Notification missed in continuous query Key: IGNITE-2384 URL: https://issues.apache.org/jira/browse/IGNITE-2384 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Test reproducing the issue is attached, fails on assertion on line 76. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2383) Non-string system properties should be ignored in node attributes and update checker
Valentin Kulichenko created IGNITE-2383: --- Summary: Non-string system properties should be ignored in node attributes and update checker Key: IGNITE-2383 URL: https://issues.apache.org/jira/browse/IGNITE-2383 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 user@ discussion: http://apache-ignite-users.70518.x6.nabble.com/Ignite-quot-bugs-quot-td2534.html Some frameworks can put non-string and/or non-serializable values into system properties. We should ignore them in {{GridUpdateNotifier.getSystemProperties()}} method and when adding properties to node attributes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2375) Expiration is not set when value is loaded from store
Valentin Kulichenko created IGNITE-2375: --- Summary: Expiration is not set when value is loaded from store Key: IGNITE-2375 URL: https://issues.apache.org/jira/browse/IGNITE-2375 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Discussed on the user@ forum: http://apache-ignite-users.70518.x6.nabble.com/Cache-read-through-with-expiry-policy-td2521.html Test reproducing the issue is attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2374) Expiration is not set when value is loaded from store
Valentin Kulichenko created IGNITE-2374: --- Summary: Expiration is not set when value is loaded from store Key: IGNITE-2374 URL: https://issues.apache.org/jira/browse/IGNITE-2374 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Discussed on the user@ forum: http://apache-ignite-users.70518.x6.nabble.com/Cache-read-through-with-expiry-policy-td2521.html Test reproducing the issue is attached -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2358) Write behind store swallows exception trace in case of error
Valentin Kulichenko created IGNITE-2358: --- Summary: Write behind store swallows exception trace in case of error Key: IGNITE-2358 URL: https://issues.apache.org/jira/browse/IGNITE-2358 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 See {{GridCacheWriteBehindStore:708}}: {code} LT.warn(log, e, "Unable to update underlying store: " + store); {code} The exception trace is never printed out in case of warnings, therefore user sees only message, which is usually not enough. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2345) Implement JPA-based store session listener
Valentin Kulichenko created IGNITE-2345: --- Summary: Implement JPA-based store session listener Key: IGNITE-2345 URL: https://issues.apache.org/jira/browse/IGNITE-2345 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko We already have JDBC, Spring and Hibernate-based listeners, but it would be useful to have JPA-based implementation as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2332) Service proxy can't be created for package-private implementation
Valentin Kulichenko created IGNITE-2332: --- Summary: Service proxy can't be created for package-private implementation Key: IGNITE-2332 URL: https://issues.apache.org/jira/browse/IGNITE-2332 Project: Ignite Issue Type: Bug Components: managed services Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Fix For: 1.6 {noformat} Caused by: java.lang.IllegalAccessException: Class org.apache.ignite.internal.processors.service.GridServiceProxy$ServiceProxyCallable can not access a member of class org.apache.ignite.examples.service.MyServiceImpl with modifiers "public" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261) at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.ignite.internal.processors.service.GridServiceProxy$ServiceProxyCallable.call(GridServiceProxy.java:382) at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1789) at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:509) at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6372) at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:503) at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:456) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1166) at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1770) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:823) at org.apache.ignite.internal.managers.communication.GridIoManager.access$1600(GridIoManager.java:105) at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:786) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2311) Need to add an option to store cache objects only in deserialized form
Valentin Kulichenko created IGNITE-2311: --- Summary: Need to add an option to store cache objects only in deserialized form Key: IGNITE-2311 URL: https://issues.apache.org/jira/browse/IGNITE-2311 Project: Ignite Issue Type: New Feature Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 In this new mode objects should be always deserialized when saved in cache and serialized form should be discarded. Serialization should happen only on demand (e.g., for get() or rebalancing). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2310) Add lock/unlock partition operations on IgniteCache
Valentin Kulichenko created IGNITE-2310: --- Summary: Add lock/unlock partition operations on IgniteCache Key: IGNITE-2310 URL: https://issues.apache.org/jira/browse/IGNITE-2310 Project: Ignite Issue Type: New Feature Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Need to add public API methods that will allow to lock and unlock partitions. This may be useful to avoid data movements when using {{affinityRun}} during topology changes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2289) Eviction policy doesn't work with OFFHEAP_VALUES mode
Valentin Kulichenko created IGNITE-2289: --- Summary: Eviction policy doesn't work with OFFHEAP_VALUES mode Key: IGNITE-2289 URL: https://issues.apache.org/jira/browse/IGNITE-2289 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 For issue description and the test refer to this discussion: http://apache-ignite-users.70518.x6.nabble.com/Eviction-for-OFFHEAP-TIERED-vs-OFFHEAP-VALUES-td2302.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2249) Services are sometimes deserialized on client
Valentin Kulichenko created IGNITE-2249: --- Summary: Services are sometimes deserialized on client Key: IGNITE-2249 URL: https://issues.apache.org/jira/browse/IGNITE-2249 Project: Ignite Issue Type: Bug Components: managed services Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2225) Externalizable classes are serialized twice with binary marshaller
Valentin Kulichenko created IGNITE-2225: --- Summary: Externalizable classes are serialized twice with binary marshaller Key: IGNITE-2225 URL: https://issues.apache.org/jira/browse/IGNITE-2225 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Priority: Blocker Fix For: 1.5 Test that reproduces that issue is attached to IGNITE-2212 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2212) Transactional put triggers several deserializations on server of there are recordable events
Valentin Kulichenko created IGNITE-2212: --- Summary: Transactional put triggers several deserializations on server of there are recordable events Key: IGNITE-2212 URL: https://issues.apache.org/jira/browse/IGNITE-2212 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: 1.6 Attachments: TxTest.java Test attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2203) CacheEntryImplEx contains version twice
Valentin Kulichenko created IGNITE-2203: --- Summary: CacheEntryImplEx contains version twice Key: IGNITE-2203 URL: https://issues.apache.org/jira/browse/IGNITE-2203 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.5 {{CacheEntryImplEx}} extends {{CacheEntryImpl}}, which duplicated the version. This makes it impossible to serialize with the {{BinaryMarshaller}}: {code} class org.apache.ignite.binary.BinaryObjectException: Duplicate field name [fieldName=ver, cls=org.apache.ignite.internal.processors.cache.CacheEntryImplEx] {code} Test that reproduces the failure is attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2202) Query result entries don't include versions
Valentin Kulichenko created IGNITE-2202: --- Summary: Query result entries don't include versions Key: IGNITE-2202 URL: https://issues.apache.org/jira/browse/IGNITE-2202 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Cache entries returned as query results don't contain versions even if the query is local. Test attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2160) Ignition.start() is blocked if there are no server nodes
Valentin Kulichenko created IGNITE-2160: --- Summary: Ignition.start() is blocked if there are no server nodes Key: IGNITE-2160 URL: https://issues.apache.org/jira/browse/IGNITE-2160 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 A node (server or client) should always start without blocking the thread that called {{Ignition.start()}}. Current behavior is confusing and undesirable - e.g., if a node is embedded into web application, the whole application startup process is stuck. Additionally, if there are no servers, client node should throw {{IgniteClientDisconnectedException}} on all API calls. It already works this way if all servers leave while client is running. @dev list discussion: http://apache-ignite-developers.2346864.n4.nabble.com/Client-connect-quot-hangs-quot-td5765.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2100) Queries do not work with binary marshaller and Externalizable objects
Valentin Kulichenko created IGNITE-2100: --- Summary: Queries do not work with binary marshaller and Externalizable objects Key: IGNITE-2100 URL: https://issues.apache.org/jira/browse/IGNITE-2100 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.5 If new binary marshaller is used and model classes implement {{Externalizable}} (which is often the case when user migrates from 1.4 to 1.5), queries stop working and return nulls instead of all field values. At least, we need to properly document it and throw an exception so that user is aware about the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2099) Binary marshaller writes any map as a HashMap
Valentin Kulichenko created IGNITE-2099: --- Summary: Binary marshaller writes any map as a HashMap Key: IGNITE-2099 URL: https://issues.apache.org/jira/browse/IGNITE-2099 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.5 Bug is described and discussed in this user@ thread: http://apache-ignite-users.70518.x6.nabble.com/Serialization-issue-with-Ignite-1-5-built-from-master-357d791-td2149.html In general, we need to make sure that binary marshaller fully supports Java serialization and behaves consistently with optimized marshaller. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2098) Need to check that Java Proxy is properly (de)serialized with binary marshaller
Valentin Kulichenko created IGNITE-2098: --- Summary: Need to check that Java Proxy is properly (de)serialized with binary marshaller Key: IGNITE-2098 URL: https://issues.apache.org/jira/browse/IGNITE-2098 Project: Ignite Issue Type: Test Components: general Reporter: Valentin Kulichenko Fix For: 1.5 Need to create test similar to {{OptimizedMarshallerTest.testProxy}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2096) AtomicConfiguration and CollectionConfiguration should be properly checked for consistency
Valentin Kulichenko created IGNITE-2096: --- Summary: AtomicConfiguration and CollectionConfiguration should be properly checked for consistency Key: IGNITE-2096 URL: https://issues.apache.org/jira/browse/IGNITE-2096 Project: Ignite Issue Type: Bug Components: data structures Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Fix For: 1.5 Currently {{AtomicConfiguration}} and {{CollectionConfiguration}} are mapped to system caches configuration and consistency is checked like for any other cache. This leads to unintuitive errors. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2095) SpringCacheManager doesn't support withKeepBinary() flag
Valentin Kulichenko created IGNITE-2095: --- Summary: SpringCacheManager doesn't support withKeepBinary() flag Key: IGNITE-2095 URL: https://issues.apache.org/jira/browse/IGNITE-2095 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.5 Currently {{SpringCacheManager}} doesn't allow to switch to {{withKeepBinary()}} cache. SO thread: http://stackoverflow.com/questions/34049172/ignite-and-spring-with-multiple-class-loaders/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2087) Ignite CacheManager ignores provided class loader
Valentin Kulichenko created IGNITE-2087: --- Summary: Ignite CacheManager ignores provided class loader Key: IGNITE-2087 URL: https://issues.apache.org/jira/browse/IGNITE-2087 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.5 {{CacheManager}} should delegate the provided class loader to {{IgniteConfiguration.setClassLoader()}}. Currently it's ignored. user@ thread: http://apache-ignite-users.70518.x6.nabble.com/Help-with-integrating-Ignite-as-JCache-with-JBoss-EAP-6-4-td2134.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-2083) EntryProcessor is called twice on primary node in transactional cache
Valentin Kulichenko created IGNITE-2083: --- Summary: EntryProcessor is called twice on primary node in transactional cache Key: IGNITE-2083 URL: https://issues.apache.org/jira/browse/IGNITE-2083 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.6 Issue is described in details here: http://apache-ignite-developers.2346864.n4.nabble.com/EntryProcessor-invoked-twice-td5494.html Looks like that this can be optimized, at least for {{REPEATABLE_READ}} transactions. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1995) Local cache is destroyed when close() is called
Valentin Kulichenko created IGNITE-1995: --- Summary: Local cache is destroyed when close() is called Key: IGNITE-1995 URL: https://issues.apache.org/jira/browse/IGNITE-1995 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Fix For: 1.6 Need to make the behavior consistent and check if TCK tests pass. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1988) NPE when explicit lock is acquired within a transaction
Valentin Kulichenko created IGNITE-1988: --- Summary: NPE when explicit lock is acquired within a transaction Key: IGNITE-1988 URL: https://issues.apache.org/jira/browse/IGNITE-1988 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.5 This code: {code} try (Transaction tx = Ignition.ignite().transactions().txStart()) { cache.lock(1).lock(); } {code} result in the NPE: {code} Exception in thread "main" java.lang.NullPointerException at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.addEntry(GridDhtColocatedLockFuture.java:294) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.addLocalKey(GridDhtColocatedLockFuture.java:1172) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.mapAsPrimary(GridDhtColocatedLockFuture.java:1118) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.map(GridDhtColocatedLockFuture.java:736) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.mapOnTopology(GridDhtColocatedLockFuture.java:677) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.map(GridDhtColocatedLockFuture.java:629) at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.lockAllAsync(GridDhtColocatedCache.java:628) at org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheAdapter.lockAllAsync(GridDistributedCacheAdapter.java:117) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.lockAll(GridCacheAdapter.java:3150) at org.apache.ignite.internal.processors.cache.CacheLockImpl.lock(CacheLockImpl.java:72) at org.apache.ignite.examples.datagrid.CacheTransactionExample.deposit(CacheTransactionExample.java:92) at org.apache.ignite.examples.datagrid.CacheTransactionExample.main(CacheTransactionExample.java:70) {code} If such usage is invalid, proper exception should be thrown. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1956) Portable object requires to have a class to get Enum field value
Valentin Kulichenko created IGNITE-1956: --- Summary: Portable object requires to have a class to get Enum field value Key: IGNITE-1956 URL: https://issues.apache.org/jira/browse/IGNITE-1956 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Fix For: 1.6 {{PortableObject.field()}} method implementation attempts to resolve the class if the field type is Enum. This is wrong, because this method should work on server side without classes on classpath. Also this breaks the {{toString()}} method in this case. In addition, .NET always writes {{-1}} as a type ID for any enum, so on Java side it is resolved into {{java.lang.Object}}. As a result, {{field()}} and {{toString()} method fail with this exception: {code} Caused by: org.apache.ignite.internal.portable.api.PortableException: Class does not represent enum type: java.lang.Object {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1926) Implement IgfsSecondaryFileSystem using java.io.File API
Valentin Kulichenko created IGNITE-1926: --- Summary: Implement IgfsSecondaryFileSystem using java.io.File API Key: IGNITE-1926 URL: https://issues.apache.org/jira/browse/IGNITE-1926 Project: Ignite Issue Type: Improvement Components: IGFS Reporter: Valentin Kulichenko This will allow to persist IGFS data on the local disk. Currently we have only Hadoop-based implementation. Corresponding user thread: http://apache-ignite-users.70518.x6.nabble.com/IGFS-backed-by-persistence-on-physical-filesystem-td1882.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1897) Add failover to write-behind cache store
Valentin Kulichenko created IGNITE-1897: --- Summary: Add failover to write-behind cache store Key: IGNITE-1897 URL: https://issues.apache.org/jira/browse/IGNITE-1897 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Critical Fix For: 1.6 Currently there is a possibility of losing database updates if primary node fails. We should maintain updates queue on backup node as well and flush it if needed. The implementation should be similar to what is done with continuous queries in scope of this ticket: https://issues.apache.org/jira/browse/IGNITE-426 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1886) NPE in H2 when running query with subselects
Valentin Kulichenko created IGNITE-1886: --- Summary: NPE in H2 when running query with subselects Key: IGNITE-1886 URL: https://issues.apache.org/jira/browse/IGNITE-1886 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: 1.5 Test reproducing the issue is attached. NPE is thrown as a result (see below). Corresponding user@ thread: http://apache-ignite-users.70518.x6.nabble.com/Does-Ignite-support-nested-SQL-Queries-td1714.html {noformat} Exception in thread "main" javax.cache.CacheException: class org.apache.ignite.IgniteException: Failed to parse query: SELECT a.* FROM (SELECT CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id FROM "UserCache".user u, userorder ug WHERE u.id = ug.usrid) a, (SELECT CASE WHEN og.goodid < 5 THEN 100 ELSE og.goodid END id FROM userorder ug, "OrderGoodCache".ordergood og WHERE ug.id = og.orderid) b WHERE a.id = b.id at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:636) at org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: class org.apache.ignite.IgniteException: Failed to parse query: SELECT a.* FROM (SELECT CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id FROM "UserCache".user u, userorder ug WHERE u.id = ug.usrid) a, (SELECT CASE WHEN og.goodid < 5 THEN 100 ELSE og.goodid END id FROM userorder ug, "OrderGoodCache".ordergood og WHERE ug.id = og.orderid) b WHERE a.id = b.id at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:641) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:627) ... 6 more Caused by: class org.apache.ignite.IgniteCheckedException: Failed to parse query: SELECT a.* FROM (SELECT CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id FROM "UserCache".user u, userorder ug WHERE u.id = ug.usrid) a, (SELECT CASE WHEN og.goodid < 5 THEN 100 ELSE og.goodid END id FROM userorder ug, "OrderGoodCache".ordergood og WHERE ug.id = og.orderid) b WHERE a.id = b.id at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:1510) at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:634) ... 7 more Caused by: javax.cache.CacheException: Failed to parse query: SELECT a.* FROM (SELECT CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id FROM "UserCache".user u, userorder ug WHERE u.id = ug.usrid) a, (SELECT CASE WHEN og.goodid < 5 THEN 100 ELSE og.goodid END id FROM userorder ug, "OrderGoodCache".ordergood og WHERE ug.id = og.orderid) b WHERE a.id = b.id at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:938) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:636) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:634) at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:1492) ... 8 more Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [5-175] at org.h2.message.DbException.getJdbcSQLException(DbException.java:332) at org.h2.message.DbException.get(DbException.java:161) at org.h2.message.DbException.convert(DbException.java:284) at org.h2.message.DbException.toSQLException(DbException.java:257) at org.h2.message.TraceObject.logAndConvert(TraceObject.java:368) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:270) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:935) ... 12 more Caused by: java.lang.NullPointerException at org.h2.expression.Function.getCost(Function.java:2391) at org.h2.expression.Comparison.getCost(Comparison.java:480) at org.h2.expression.ConditionAndOr.optimize(ConditionAndOr.java:133) at org.h2.expression.ConditionAndOr.optimize(ConditionAndOr.java:131) at org.h2.command.dml.Select.prepare(Select.java:813) at org.h2.command.Parser.prepare(Parser.java:220)
[jira] [Created] (IGNITE-1840) Exception on startup
Valentin Kulichenko created IGNITE-1840: --- Summary: Exception on startup Key: IGNITE-1840 URL: https://issues.apache.org/jira/browse/IGNITE-1840 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko It's rarely reproduced and looks like a race condition on startup. In some cases eviction backup worker start to work too early which leads to this exception on first iterations: {noformat} Exception in thread "cache-eviction-backup-worker-#40%null%" java.lang.AssertionError: AffinityTopologyVersion [topVer=-1, minorTopVer=0] at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:423) at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.primaryPartitions(GridAffinityAssignmentCache.java:397) at org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.primaryPartitions(GridCacheAffinityManager.java:352) at org.apache.ignite.internal.processors.cache.GridCacheEvictionManager$BackupWorker.body(GridCacheEvictionManager.java:1478) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.lang.Thread.run(Thread.java:745) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1813) Need to add metrics for data structures
Valentin Kulichenko created IGNITE-1813: --- Summary: Need to add metrics for data structures Key: IGNITE-1813 URL: https://issues.apache.org/jira/browse/IGNITE-1813 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko All data structures (queues, sets, atomics, etc.) are based on internal caches, therefore there is no way to get metrics for this caches. We should create an interface that will contain metrics suitable for data structures and add {{metrics()}} method to all data structures that will return the instance of this interface for a particular data structure. Here is the corresponding user@ thread: http://apache-ignite-users.70518.x6.nabble.com/Queue-stats-td1727.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1727) Shmem library can't be loaded by different class loaders within one JVM
Valentin Kulichenko created IGNITE-1727: --- Summary: Shmem library can't be loaded by different class loaders within one JVM Key: IGNITE-1727 URL: https://issues.apache.org/jira/browse/IGNITE-1727 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko This can happen, for example, when an application is redeployed in an app server. {noformat} 16:41:55,042 WARN [org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi] (ignite-#40%rest-fsb-grid%) Failed to load native IPC library: [java.lang.UnsatisfiedLinkError: no igniteshmem-1.4.1 in java.library.path, java.lang.UnsatisfiedLinkError: Native Library /tmp/adrien/libigniteshmem-1.4.1.so already loaded in another classloader, java.lang.IllegalStateException: Failed to find resource with specified class loader [rsrc=META-INF/native/linux/libigniteshmem.so, clsLdr=ModuleClassLoader for Module "deployment.sport-assemblies-ss-ear-0.0.1.ear.sport-ss-ejb-0.0.1.jar:main" from Service Module Loader], java.lang.IllegalStateException: Failed to find resource with specified class loader [rsrc=META-INF/native/libigniteshmem.so, clsLdr=ModuleClassLoader for Module "deployment.sport-assemblies-ss-ear-0.0.1.ear.sport-ss-ejb-0.0.1.jar:main" from Service Module Loader]] {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1726) Node doesn't fail if SSL configuration is incorrect
Valentin Kulichenko created IGNITE-1726: --- Summary: Node doesn't fail if SSL configuration is incorrect Key: IGNITE-1726 URL: https://issues.apache.org/jira/browse/IGNITE-1726 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Currently if two nodes start - one with SSL enable and another with SSL disabled - they both start successfully, but with order 1, i.e., as parts of different topologies. We should detect this misconfiguration and throw an exception. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1702) Cache update hangs if there is ClassNotFoundException on a server node
Valentin Kulichenko created IGNITE-1702: --- Summary: Cache update hangs if there is ClassNotFoundException on a server node Key: IGNITE-1702 URL: https://issues.apache.org/jira/browse/IGNITE-1702 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: 1.5 We need to catch the exception and return a response with it to a client. {noformat} java.lang.NoClassDefFoundError: XXX ... at org.apache.ignite.internal.GridEventConsumeHandler$2.onEvent(GridEventConsumeHandler.java:153) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:770) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:755) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:295) at org.apache.ignite.internal.processors.cache.GridCacheEventManager.addEvent(GridCacheEventManager.java:266) at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2142) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:1761) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1189) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1068) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:2449) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$500(GridDhtAtomicCache.java:124) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$4.apply(GridDhtAtomicCache.java:248) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$4.apply(GridDhtAtomicCache.java:246) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:580) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:280) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:198) at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:77) at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:160) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:811) at org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:106) at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:774) 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) Caused by: java.lang.ClassNotFoundException: XXX at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 29 more {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1622) clear() method works incorrectly with near caches
Valentin Kulichenko created IGNITE-1622: --- Summary: clear() method works incorrectly with near caches Key: IGNITE-1622 URL: https://issues.apache.org/jira/browse/IGNITE-1622 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.5 Currently {{IgniteCache.clear()}} method doesn't clear server nodes if there are near entries. Instead it should clear all caches, including near and readers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1609) New value should be copied when cache interceptor is called
Valentin Kulichenko created IGNITE-1609: --- Summary: New value should be copied when cache interceptor is called Key: IGNITE-1609 URL: https://issues.apache.org/jira/browse/IGNITE-1609 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Currently we copy old value that is stored in cache, but not new value - this is inconsistent. Also there are scenarios when interceptor is called more than once and if the value is mutated, issues are possible. Example can be found in this thread: http://apache-ignite-users.70518.x6.nabble.com/CacheStore-implementation-using-Hibernate-td1423.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1606) NPE during node stop due to nullified logger in TcpCommunicationSpi
Valentin Kulichenko created IGNITE-1606: --- Summary: NPE during node stop due to nullified logger in TcpCommunicationSpi Key: IGNITE-1606 URL: https://issues.apache.org/jira/browse/IGNITE-1606 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Fix For: ignite-1.5 Probably we should check other components as well. Not sure why we need to nullify logger. {noformat} Exception in thread "ignite-#101%sys-t1-1%" java.lang.NullPointerException at org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage0(TcpCommunicationSpi.java:1896) at org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.sendMessage(TcpCommunicationSpi.java:1880) at org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:1066) at org.apache.ignite.internal.managers.communication.GridIoManager.send(GridIoManager.java:1214) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1071) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1034) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1017) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processNotification(GridContinuousProcessor.java:851) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$1500(GridContinuousProcessor.java:85) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$8.onMessage(GridContinuousProcessor.java:556) at org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302) at org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:992) at org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106) at org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:961) 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) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1576) CacheObject.toString() can throw NPE if node already stopped
Valentin Kulichenko created IGNITE-1576: --- Summary: CacheObject.toString() can throw NPE if node already stopped Key: IGNITE-1576 URL: https://issues.apache.org/jira/browse/IGNITE-1576 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: ignite-1.5 {{CacheObject}} is not functional when the node that created this object is stopped. Currently is user saves this object somewhere (e.g., as a part of {{CacheEntryEvent}}, it will throw NPEs from {{toString}} and probably other methods. We should throw informative error in this case. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1575) NPE when cache is started concurrently with the node stop
Valentin Kulichenko created IGNITE-1575: --- Summary: NPE when cache is started concurrently with the node stop Key: IGNITE-1575 URL: https://issues.apache.org/jira/browse/IGNITE-1575 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Minor Fix For: ignite-1.5 It's not causing any harm, but it's possible to get the NPE below during the node stop. {noformat} 57724 [main] ERROR IgniteKernal%t1-1 - Got exception while starting (will rollback startup routine). java.lang.NullPointerException at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager.onKernalStart0(CacheContinuousQueryManager.java:91) at org.apache.ignite.internal.processors.cache.GridCacheManagerAdapter.onKernalStart(GridCacheManagerAdapter.java:97) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStart(GridCacheProcessor.java:1058) at org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStart(GridCacheProcessor.java:833) at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:829) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1549) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1416) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:916) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:477) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:458) at org.apache.ignite.Ignition.start(Ignition.java:321) .. application stack frames ... 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:497) 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.RunBefores.evaluate(RunBefores.java:24) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1574) Exception is not rethrown if entry processor fails during commit
Valentin Kulichenko created IGNITE-1574: --- Summary: Exception is not rethrown if entry processor fails during commit Key: IGNITE-1574 URL: https://issues.apache.org/jira/browse/IGNITE-1574 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Fix For: ignite-1.5 See user@ thread: http://apache-ignite-users.70518.x6.nabble.com/CacheEntryProcessor-failing-on-transactional-cache-td1501.html Entry processor fails during commit, transaction is correctly rolled back, but the exception is not rethrown to the client. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1552) Table function doesn't work properly in SQL query
Valentin Kulichenko created IGNITE-1552: --- Summary: Table function doesn't work properly in SQL query Key: IGNITE-1552 URL: https://issues.apache.org/jira/browse/IGNITE-1552 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Sergi Vladykin Priority: Critical Fix For: ignite-1.5 IN operator replacement query described in [1] doesn't seem to work properly. Test reproducing the issue is attached. [1]https://apacheignite.readme.io/docs/sql-queries#performance-and-usability-considerations -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1538) Query performance is 2 times slower in OFFHEAP_TIERED mode
Valentin Kulichenko created IGNITE-1538: --- Summary: Query performance is 2 times slower in OFFHEAP_TIERED mode Key: IGNITE-1538 URL: https://issues.apache.org/jira/browse/IGNITE-1538 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Priority: Critical Fix For: ignite-1.5 Corresponding user@ thread: http://apache-ignite-users.70518.x6.nabble.com/SQL-Performance-indexing-performance-on-heap-vs-off-heap-td1352.html Need to run benchmarks and investigate. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1536) Duplicate notification in continuous query
Valentin Kulichenko created IGNITE-1536: --- Summary: Duplicate notification in continuous query Key: IGNITE-1536 URL: https://issues.apache.org/jira/browse/IGNITE-1536 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 Scenario is the following: # Start first node with a {{REPLICATED}} cache. # Execute non-local continuous query. # Start second node. # Do several puts for different keys. Some of the notifications are duplicated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1532) IgniteCache.put() should load value from store if interceptor is used and CacheConfiguration.isLoadPreviousValue() == true
Valentin Kulichenko created IGNITE-1532: --- Summary: IgniteCache.put() should load value from store if interceptor is used and CacheConfiguration.isLoadPreviousValue() == true Key: IGNITE-1532 URL: https://issues.apache.org/jira/browse/IGNITE-1532 Project: Ignite Issue Type: Bug Reporter: Valentin Kulichenko Priority: Critical Fix For: ignite-1.5 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1523) Need to make marshaller in discovery pluggable
Valentin Kulichenko created IGNITE-1523: --- Summary: Need to make marshaller in discovery pluggable Key: IGNITE-1523 URL: https://issues.apache.org/jira/browse/IGNITE-1523 Project: Ignite Issue Type: Improvement Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 Currently we always use {{JdkMarshaller}}. It can be useful to use a custom one. Need to add {{TcpDiscoverySpi.setMarshaller()}} method to allow this. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1522) Cache entry listener is executed on a joining node
Valentin Kulichenko created IGNITE-1522: --- Summary: Cache entry listener is executed on a joining node Key: IGNITE-1522 URL: https://issues.apache.org/jira/browse/IGNITE-1522 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 Scenario is the following: # Start first node. # Register cache entry listener. Its configuration is added to cache configuration (required by JCache). # Start second node. # As a result entry listener configuration is serialized as a part of cache configuration, which is wrong. Moreover, it's executed on this new node. Need to make listener configurations transient. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1482) IgniteCache.replace (CAS) returns incorrect value on changing topology
Valentin Kulichenko created IGNITE-1482: --- Summary: IgniteCache.replace (CAS) returns incorrect value on changing topology Key: IGNITE-1482 URL: https://issues.apache.org/jira/browse/IGNITE-1482 Project: Ignite Issue Type: Bug Components: cache Reporter: Valentin Kulichenko Assignee: Alexey Goncharuk Priority: Blocker Fix For: ignite-1.4 Test reproducing the issue is attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1404) Any distributed cache operation should throw CacheServerNotFoundException if there are no server nodes
Valentin Kulichenko created IGNITE-1404: --- Summary: Any distributed cache operation should throw CacheServerNotFoundException if there are no server nodes Key: IGNITE-1404 URL: https://issues.apache.org/jira/browse/IGNITE-1404 Project: Ignite Issue Type: Improvement Components: cache Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 Currently the behavior is inconsistent. E.g., {{remove()}} method throws an exception, but {{clear()}} does not. Need to check all distributed operations and make them throw the exception when appropriate. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1403) forOldest() cluster group returns predicate that is not updated when topology changes
Valentin Kulichenko created IGNITE-1403: --- Summary: forOldest() cluster group returns predicate that is not updated when topology changes Key: IGNITE-1403 URL: https://issues.apache.org/jira/browse/IGNITE-1403 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 {{AgeClusterGroup}} that implements {{forOldest()}} and {{forYoungest}} cluster groups is dynamically updated when topology changes. But the predicate that can be acquired from this group via {{predicate()}} method is static, which is incorrect. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1402) Logging uses root logger in some cases
Valentin Kulichenko created IGNITE-1402: --- Summary: Logging uses root logger in some cases Key: IGNITE-1402 URL: https://issues.apache.org/jira/browse/IGNITE-1402 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 {{GridKernalContext.log()}} method returns root logger which should not be used by any of Ignite classes. This can cause the following scenario: # User configures logger with DEBUG level as default and INFO level for {{org.apache.ignite}} package. # Ignite class takes logger using {{GridKernalContext.log()}} and checks if debug is enabled. It will get true regardless of the settings for Ignite package. There are places in code that uses {{GridKernalContext.log()}} method incorrectly, so it should be removed. We should always use {{GridKernalContext.log(Class cls)}} properly specifying the category. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1378) Continuous processor doesn't remove message listener if continuous query failed to start
Valentin Kulichenko created IGNITE-1378: --- Summary: Continuous processor doesn't remove message listener if continuous query failed to start Key: IGNITE-1378 URL: https://issues.apache.org/jira/browse/IGNITE-1378 Project: Ignite Issue Type: Bug Components: general Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 {{GridContinuousProcessor.startRoutine(..)}} method adds message listener on line 538 and never removes it if handler registration fails (e.g., due to marshalling issues). Need to fix exception handling in this method. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1311) Need to add memory footprint to cache metrics
Valentin Kulichenko created IGNITE-1311: --- Summary: Need to add memory footprint to cache metrics Key: IGNITE-1311 URL: https://issues.apache.org/jira/browse/IGNITE-1311 Project: Ignite Issue Type: Improvement Components: cache Affects Versions: 1.1.4 Reporter: Valentin Kulichenko Fix For: ignite-1.4 user@ thread: http://apache-ignite-users.70518.x6.nabble.com/Cache-entry-cost-and-total-cache-memory-footprint-would-be-nice-td1151.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (IGNITE-1280) Near eviction policy doesn't work with off heap
Valentin Kulichenko created IGNITE-1280: --- Summary: Near eviction policy doesn't work with off heap Key: IGNITE-1280 URL: https://issues.apache.org/jira/browse/IGNITE-1280 Project: Ignite Issue Type: Bug Components: cache Affects Versions: 1.1.4 Reporter: Valentin Kulichenko Assignee: Valentin Kulichenko Priority: Blocker Fix For: ignite-1.4 See {{GridCacheEvictionManager}}, line 137. In case of {{OFFHEAP_TIERED}} mode policy is not used even for near caches. -- This message was sent by Atlassian JIRA (v6.3.4#6332)