Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Cannot Reproduce
-
2.1
-
None
-
None
Description
Notes
A "no-op" test reproducing the issue is attached. This behavior reproduces only in persistent-enabled mode, so recently added pds module is needed to run it correctly.
Steps to reproduce
- Start cluster in inactive mode (IgniteConfiguration.setActiveOnStart)
- Activate cluster from any server node (Ignite.active(true))
Expected behavior
No exceptions in logs
Actual behavior
The following exception is printed out in logs, although cluster looks working fine:
[18:00:42,159][ERROR][exchange-worker-#25%db.IgniteDbWholeClusterRestartSelfTest0%][GridCacheDatabaseSharedManager] Failed to register MBean for MemoryMetrics with name: 'sysMemPlc' javax.management.InstanceAlreadyExistsException: org.apache:clsLdr=4e25154f,igniteInstanceName=db.IgniteDbWholeClusterRestartSelfTest0,group=MemoryMetrics,name=sysMemPlc at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324) at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522) at org.apache.ignite.internal.util.IgniteUtils.registerMBean(IgniteUtils.java:4539) at org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseSharedManager.registerMetricsMBean(IgniteCacheDatabaseSharedManager.java:148) at org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseSharedManager.registerMetricsMBeans(IgniteCacheDatabaseSharedManager.java:135) at org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseSharedManager.init(IgniteCacheDatabaseSharedManager.java:119) at org.apache.ignite.internal.processors.cache.database.IgniteCacheDatabaseSharedManager.start0(IgniteCacheDatabaseSharedManager.java:102) at org.apache.ignite.internal.processors.cache.database.GridCacheDatabaseSharedManager.initDataBase(GridCacheDatabaseSharedManager.java:400) at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.onActivate(GridClusterStateProcessor.java:453) at org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.onChangeGlobalState(GridClusterStateProcessor.java:367) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:744) at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:536) at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1802) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.lang.Thread.run(Thread.java:745)
Also it looks like that not only MBeans are registered twice but OffHeap memory is allocated twice as well which increases possibility of OOME on reasonable setting in production environment.