geode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dharam Thacker <dharamthacke...@gmail.com>
Subject Re: Pulse is giving stale view of cluster -- lost updates
Date Fri, 22 Feb 2019 05:26:22 GMT
Ho John/Jens,

Ok, so this works fine with *Apache geode 1.6.0. *But I am sure, something
has changed between *Apache geode 1.6.0* & *Apache geode 1.8.0 *in code
from "Management service" related files.

Let me explain difference in logs with DEBUG level with exactly same
project I shared. Please take a look at highlighted texts.

*Apache geode 1.6.0*

[info 2019/02/22 10:22:00.292 IST <main> tid=1] *Starting membership
services*

[debug 2019/02/22 10:22:00.292 IST <main> tid=1] starting Authenticator

[debug 2019/02/22 10:22:00.293 IST <main> tid=1] starting Messenger

[debug 2019/02/22 10:22:00.293 IST <main> tid=1] JGroups configuration:
<config xmlns="urn:org:jgroups"  xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:org:jgroups
http://www.jgroups.org/schema/jgroups.xsd"><org.apache.geode.distributed.internal.membership.gms.messenger.Transport
bind_addr="192.168.31.62"  bind_port="1024"  port_range="64511"
mcast_port="0"  tos="16"  ip_mcast="false"  ignore_dont_bundle="false"
ucast_recv_buf_size="65535"  ucast_send_buf_size="65535"
thread_naming_pattern="UDP Message Handler"  enable_batching="false"
enable_diagnostics="false"  disable_loopback="false"    timer_type="new3"
timer.min_threads="1"  timer.max_threads="4"  timer.keep_alive_time="3000"
timer.queue_max_size="500"  thread_pool.enabled="false"
thread_pool.min_threads="1"  thread_pool.max_threads="4"
thread_pool.keep_alive_time="5000"  thread_pool.queue_enabled="true"
thread_pool.queue_max_size="10000"  thread_pool.rejection_policy="discard"
oob_thread_pool.enabled="false"  oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="4"  oob_thread_pool.keep_alive_time="5000"
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="discard"
/><org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager/><org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder/><UNICAST3
xmit_interval="500"  xmit_table_num_rows="100"
xmit_table_msgs_per_row="2000"  xmit_table_max_compaction_time="60000"
conn_expiry_timeout="0"  max_msg_batch_size="500"/><UFC
max_credits="1048576"  min_threshold="0.25"  max_block_time="5000"/><FRAG2
frag_size="60000"/></config>

[debug 2019/02/22 10:22:00.293 IST <main> tid=1] forcing JGroups to think
IPv4 is being used so it will choose an IPv4 address

[debug 2019/02/22 10:22:00.380 IST <main> tid=1] sockets will use interface
192.168.31.62

[debug 2019/02/22 10:22:00.383 IST <main> tid=1] socket information:
mcast_addr=null, bind_addr=/192.168.31.62, ttl=8
sock: bound to 192.168.31.62:1026, receive buffer size=65535, send buffer
size=65535

[info 2019/02/22 10:22:00.389 IST <main> tid=1] JGroups channel created
(took 96ms)

[debug 2019/02/22 10:22:00.390 IST <main> tid=1] starting JoinLeave

[debug 2019/02/22 10:22:00.390 IST <main> tid=1] starting HealthMonitor

[debug 2019/02/22 10:22:00.393 IST <main> tid=1] starting Manager

[info 2019/02/22 10:22:00.404 IST <main> tid=1] GemFire P2P Listener
started on /192.168.31.62:62359

[debug 2019/02/22 10:22:00.405 IST <main> tid=1] SSL Configuration:
  ssl-enabled = false


[info 2019/02/22 10:22:00.406 IST <Geode Failure Detection Server thread 0>
tid=30] Started failure detection server thread on /192.168.31.62:27763.

[debug 2019/02/22 10:22:00.408 IST <main> tid=1] *All membership services
have been started*

*Apache geode 1.8.0*

[info 2019/02/16 19:41:44.801 IST <main> tid=0x1] *Starting membership
services*

[debug 2019/02/16 19:41:44.802 IST <main> tid=0x1] starting Authenticator

[debug 2019/02/16 19:41:44.802 IST <main> tid=0x1] starting Messenger

[debug 2019/02/16 19:41:44.802 IST <main> tid=0x1] JGroups configuration:
<config xmlns="urn:org:jgroups"  xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:org:jgroups
http://www.jgroups.org/schema/jgroups.xsd"><org.apache.geode.distributed.internal.membership.gms.messenger.Transport
bind_addr="127.0.1.1"  bind_port="41000"  port_range="20000"
mcast_port="0"  tos="16"  ip_mcast="false"  ignore_dont_bundle="false"
ucast_recv_buf_size="65535"  ucast_send_buf_size="65535"
thread_naming_pattern="UDP Message Handler"  enable_batching="false"
enable_diagnostics="false"  disable_loopback="false"    timer_type="new3"
timer.min_threads="1"  timer.max_threads="4"  timer.keep_alive_time="3000"
timer.queue_max_size="500"  thread_pool.enabled="false"
thread_pool.min_threads="1"  thread_pool.max_threads="4"
thread_pool.keep_alive_time="5000"  thread_pool.queue_enabled="true"
thread_pool.queue_max_size="10000"  thread_pool.rejection_policy="discard"
oob_thread_pool.enabled="false"  oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="4"  oob_thread_pool.keep_alive_time="5000"
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="discard"
/><org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager/><org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder/><UNICAST3
xmit_interval="500"  xmit_table_num_rows="100"
xmit_table_msgs_per_row="2000"  xmit_table_max_compaction_time="60000"
conn_expiry_timeout="0"  max_msg_batch_size="500"/><UFC
max_credits="1048576"  min_threshold="0.25"  max_block_time="5000"/><FRAG2
frag_size="60000"/></config>

[debug 2019/02/16 19:41:44.802 IST <main> tid=0x1] forcing JGroups to think
IPv4 is being used so it will choose an IPv4 address

[debug 2019/02/16 19:41:44.913 IST <main> tid=0x1] sockets will use
interface 127.0.1.1

[error 2019/02/16 19:41:44.916 IST <main> tid=0x1] failed setting interface
to /127.0.1.1: java.net.SocketException: bad argument for IP_MULTICAST_IF:
address not bound to any interface
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not
bound to any interface
at java.net.PlainDatagramSocketImpl.socketSetOption0(Native Method)
at
java.net.PlainDatagramSocketImpl.socketSetOption(PlainDatagramSocketImpl.java:74)
at
java.net.AbstractPlainDatagramSocketImpl.setOption(AbstractPlainDatagramSocketImpl.java:309)
at java.net.MulticastSocket.setInterface(MulticastSocket.java:471)
at org.jgroups.protocols.UDP.setInterface(UDP.java:443)
at org.jgroups.protocols.UDP.createMulticastSocket(UDP.java:511)
at org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:494)
at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
at org.jgroups.protocols.UDP.start(UDP.java:266)
at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:966)
at org.jgroups.JChannel.startStack(JChannel.java:889)
at org.jgroups.JChannel._preConnect(JChannel.java:553)
at org.jgroups.JChannel.connect(JChannel.java:288)
at org.jgroups.JChannel.connect(JChannel.java:279)
at
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:349)
at
org.apache.geode.distributed.internal.membership.gms.Services.start(Services.java:146)
at
org.apache.geode.distributed.internal.membership.gms.GMSMemberFactory.newMembershipManager(GMSMemberFactory.java:105)
at
org.apache.geode.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:90)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:771)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:889)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:533)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:769)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:362)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:350)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:342)
at
org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:215)
at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:218)
at
org.springframework.data.gemfire.CacheFactoryBean.createCache(CacheFactoryBean.java:470)
at
org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:324)
at
org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:268)
at java.util.Optional.orElseGet(Optional.java:267)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:796)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:108)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1674)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1216)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:330)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:367)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1648)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:827)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at com.example.demo.DemoApplication.main(DemoApplication.java:24)
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.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

[error 2019/02/16 19:41:44.917 IST <main> tid=0x1] failed setting interface
to /127.0.1.1: java.net.SocketException: bad argument for IP_MULTICAST_IF:
address not bound to any interface
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not
bound to any interface
at java.net.PlainDatagramSocketImpl.socketSetOption0(Native Method)
at
java.net.PlainDatagramSocketImpl.socketSetOption(PlainDatagramSocketImpl.java:74)
at
java.net.AbstractPlainDatagramSocketImpl.setOption(AbstractPlainDatagramSocketImpl.java:309)
at java.net.MulticastSocket.setInterface(MulticastSocket.java:471)
at org.jgroups.protocols.UDP.setInterface(UDP.java:443)
at org.jgroups.protocols.UDP.createMulticastSocket(UDP.java:511)
at org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:494)
at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
at org.jgroups.protocols.UDP.start(UDP.java:266)
at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:966)
at org.jgroups.JChannel.startStack(JChannel.java:889)
at org.jgroups.JChannel._preConnect(JChannel.java:553)
at org.jgroups.JChannel.connect(JChannel.java:288)
at org.jgroups.JChannel.connect(JChannel.java:279)
at
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:349)
at
org.apache.geode.distributed.internal.membership.gms.Services.start(Services.java:146)
at
org.apache.geode.distributed.internal.membership.gms.GMSMemberFactory.newMembershipManager(GMSMemberFactory.java:105)
at
org.apache.geode.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:90)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:771)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:889)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:533)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:769)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:362)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:350)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:342)
at
org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:215)
at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:218)
at
org.springframework.data.gemfire.CacheFactoryBean.createCache(CacheFactoryBean.java:470)
at
org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:324)
at
org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:268)
at java.util.Optional.orElseGet(Optional.java:267)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:796)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:108)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1674)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1216)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:330)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:367)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1648)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:827)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at com.example.demo.DemoApplication.main(DemoApplication.java:24)
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.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

[error 2019/02/16 19:41:44.918 IST <main> tid=0x1] failed setting interface
to /127.0.1.1: java.net.SocketException: bad argument for IP_MULTICAST_IF:
address not bound to any interface
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not
bound to any interface
at java.net.PlainDatagramSocketImpl.socketSetOption0(Native Method)
at
java.net.PlainDatagramSocketImpl.socketSetOption(PlainDatagramSocketImpl.java:74)
at
java.net.AbstractPlainDatagramSocketImpl.setOption(AbstractPlainDatagramSocketImpl.java:309)
at java.net.MulticastSocket.setInterface(MulticastSocket.java:471)
at org.jgroups.protocols.UDP.setInterface(UDP.java:443)
at org.jgroups.protocols.UDP.createMulticastSocket(UDP.java:511)
at org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:494)
at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
at org.jgroups.protocols.UDP.start(UDP.java:266)
at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:966)
at org.jgroups.JChannel.startStack(JChannel.java:889)
at org.jgroups.JChannel._preConnect(JChannel.java:553)
at org.jgroups.JChannel.connect(JChannel.java:288)
at org.jgroups.JChannel.connect(JChannel.java:279)
at
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:349)
at
org.apache.geode.distributed.internal.membership.gms.Services.start(Services.java:146)
at
org.apache.geode.distributed.internal.membership.gms.GMSMemberFactory.newMembershipManager(GMSMemberFactory.java:105)
at
org.apache.geode.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:90)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:771)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:889)
at
org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:533)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:769)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:362)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:350)
at
org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:342)
at
org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:215)
at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:218)
at
org.springframework.data.gemfire.CacheFactoryBean.createCache(CacheFactoryBean.java:470)
at
org.springframework.data.gemfire.CacheFactoryBean.resolveCache(CacheFactoryBean.java:324)
at
org.springframework.data.gemfire.CacheFactoryBean.init(CacheFactoryBean.java:268)
at java.util.Optional.orElseGet(Optional.java:267)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:796)
at
org.springframework.data.gemfire.CacheFactoryBean.getObject(CacheFactoryBean.java:108)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1674)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1216)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:330)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:367)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1648)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1400)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:827)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at com.example.demo.DemoApplication.main(DemoApplication.java:24)
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.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

[debug 2019/02/16 19:41:44.920 IST <main> tid=0x1] socket information:
mcast_addr=null, bind_addr=/127.0.1.1, ttl=8
sock: bound to 127.0.1.1:41002, receive buffer size=65535, send buffer
size=65535

[info 2019/02/16 19:41:44.926 IST <main> tid=0x1] JGroups channel created
(took 123ms)

[debug 2019/02/16 19:41:44.926 IST <main> tid=0x1] starting JoinLeave

[debug 2019/02/16 19:41:44.926 IST <main> tid=0x1] starting HealthMonitor

[debug 2019/02/16 19:41:44.928 IST <main> tid=0x1] starting Manager

[info 2019/02/16 19:41:44.939 IST <main> tid=0x1] GemFire P2P Listener
started on /127.0.1.1:58408

[debug 2019/02/16 19:41:44.940 IST <main> tid=0x1] SSL Configuration:
  ssl-enabled = false


[info 2019/02/16 19:41:44.941 IST <Geode Failure Detection Server thread 1>
tid=0x1f] Started failure detection server thread on /127.0.1.1:59926.

[debug 2019/02/16 19:41:44.942 IST <main> tid=0x1] *All membership services
have been started*



- Dharam Thacker


On Fri, Feb 22, 2019 at 1:23 AM John Blum <jblum@pivotal.io> wrote:

> Dharam-
>
> Before I delve into more details on Pulse, I want to cover 1 other
> scenario, and that is, configuring and launcher a GemFire Server using
> GemFire's API, such as with the comparable class (to the Spring class I
> reference earlier), here (
> https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/native-gemfire-server/src/main/java/example/app/gemfire/server/NativeGemFireServerApplication.java
> ).
>
> So, what do you think happens when you try to use *Gfsh* with this class,
> a GemFire API based class, no less?  Let's see, shall we.
>
>
> gfsh>connect
>
> Connecting to Locator at [host=localhost, port=10334] ..
>
> Connecting to Manager at [host=10.99.199.24, port=1099] ..
>
> Successfully connected to: [host=10.99.199.24, port=1099]
>
>
>
> gfsh>list members
>
>                  Name                   | Id
>
> --------------------------------------- |
> --------------------------------------------------------------------------------------
>
> NativeSessionGemFireSerializationServer |
> 10.99.199.24(NativeSessionGemFireSerializationServer:94332)<ec><v0>:1024
> [Coordinator]
>
>
>
> gfsh>describe member --name=NativeSessionGemFireSerializationServer
>
> Name        : NativeSessionGemFireSerializationServer
>
> Id          :
> 10.99.199.24(NativeSessionGemFireSerializationServer:94332)<ec><v0>:1024
>
> Host        : 10.99.199.24
>
> Regions     : Sessions
>
> PID         : 94332
>
> Groups      :
>
> Used Heap   : 190M
>
> Max Heap    : 3641M
>
> Working Dir :
> /Users/jblum/pivdev/spring-data-examples-workspace/spring-session-data-gemfire-serialization-example/native-gemfire-server/target
>
> Log file    :
> /Users/jblum/pivdev/spring-data-examples-workspace/spring-session-data-gemfire-serialization-example/native-gemfire-server/target
>
> Locators    : localhost[10334]
>
>
> Cache Server Information
>
> Server Bind              : localhost
>
> Server Port              : 52886
>
> Running                  : true
>
> Client Connections       : 0
>
>
>
> gfsh>status server --name=NativeSessionGemFireSerializationServer
>
> [error 2019/02/21 11:39:38.932 PST <Gfsh Launcher> tid=0x1f] Could not
> execute "status server --name=NativeSessionGemFireSerializationServer".
>
> java.lang.NullPointerException
>
> at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:128)
>
> at org.json.JSONTokener.nextValue(JSONTokener.java:106)
>
> at org.json.JSONObject.<init>(JSONObject.java:164)
>
> at org.json.JSONObject.<init>(JSONObject.java:179)
>
> at
> org.apache.geode.management.internal.cli.json.GfJsonObject.<init>(GfJsonObject.java:82)
>
> at
> org.apache.geode.distributed.ServerLauncher$ServerState.fromJson(ServerLauncher.java:2572)
>
> at
> org.apache.geode.management.internal.cli.commands.lifecycle.StatusServerCommand.statusServer(StatusServerCommand.java:55)
>
> 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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.invokeCommand(CommandExecutor.java:97)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:45)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:39)
>
> at
> org.apache.geode.management.internal.cli.shell.GfshExecutionStrategy.execute(GfshExecutionStrategy.java:81)
>
> at
> org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:134)
>
> at
> org.apache.geode.management.internal.cli.shell.Gfsh.promptLoop(Gfsh.java:1011)
>
> at org.springframework.shell.core.JLineShell.run(JLineShell.java:179)
>
> at java.lang.Thread.run(Thread.java:748)
>
>
> Could not process command due to error. Error while processing command
> <status server --name=NativeSessionGemFireSerializationServer> Reason : null
>
>
>
> gfsh>status server --pid=94332
>
> [error 2019/02/21 11:39:48.599 PST <Gfsh Launcher> tid=0x1f] Could not
> execute "status server --pid=94332".
>
> java.lang.NullPointerException
>
> at
> org.apache.geode.internal.process.MBeanProcessController.status(MBeanProcessController.java:140)
>
> at
> org.apache.geode.internal.process.MBeanProcessController.status(MBeanProcessController.java:84)
>
> at
> org.apache.geode.internal.process.MBeanOrFileProcessController.status(MBeanOrFileProcessController.java:37)
>
> at
> org.apache.geode.distributed.ServerLauncher.statusWithPid(ServerLauncher.java:1073)
>
> at
> org.apache.geode.distributed.ServerLauncher.status(ServerLauncher.java:1045)
>
> at
> org.apache.geode.management.internal.cli.commands.lifecycle.StatusServerCommand.statusServer(StatusServerCommand.java:74)
>
> 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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.invokeCommand(CommandExecutor.java:97)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:45)
>
> at
> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:39)
>
> at
> org.apache.geode.management.internal.cli.shell.GfshExecutionStrategy.execute(GfshExecutionStrategy.java:81)
>
> at
> org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:134)
>
> at
> org.apache.geode.management.internal.cli.shell.Gfsh.promptLoop(Gfsh.java:1011)
>
> at org.springframework.shell.core.JLineShell.run(JLineShell.java:179)
>
> at java.lang.Thread.run(Thread.java:748)
>
>
> Could not process command due to error. Error while processing command
> <status server --pid=94332> Reason : null
>
>
> gfsh>
>
>
>
>
> So, even when using the GemFire API, configuring and bootstrapping a
> GemFire Server, JVM process using the Java launcher and a main class, no
> good.
>
> You would run into similar problems with *Pulse*.
>
> However, you can still query your Region...
>
>
> gfsh>list regions
>
> List of regions
>
> ---------------
>
> Sessions
>
>
>
> gfsh>describe region --name=/Sessions
>
> ..................................................................
>
> Name            : Sessions
>
> Data Policy     : partition
>
> Hosting Members : NativeSessionGemFireSerializationServer
>
>
> Non-Default Attributes Shared By Hosting Members
>
>
>  Type  |          Name           | Value
>
> ------ | ----------------------- | ---------
>
> Region | data-policy             | PARTITION
>
>        | entry-idle-time.timeout | 1800
>
>        | size                    | 0
>
>        | statistics-enabled      | true
>
>
>
>
> And, after running my test class (again,
> https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/application-client/src/test/java/example/app/client/SessionSerializationWithDataSerializationDeltasAndJavaSerializationIntegrationTests.
> <https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/application-client/src/test/java/example/app/client/SessionSerializationWithDataSerializationDeltasAndJavaSerializationIntegrationTests.java>
> java
> <https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/application-client/src/test/java/example/app/client/SessionSerializationWithDataSerializationDeltasAndJavaSerializationIntegrationTests.java>
> )...
>
>
> gfsh>describe region --name=/Sessions
>
> ..................................................................
>
> Name            : Sessions
>
> Data Policy     : partition
>
> Hosting Members : NativeSessionGemFireSerializationServer
>
>
> Non-Default Attributes Shared By Hosting Members
>
>
>  Type  |          Name           | Value
>
> ------ | ----------------------- | ---------
>
> Region | data-policy             | PARTITION
>
>        | entry-idle-time.timeout | 1800
>
>        | size                    | 1
>
>        | statistics-enabled      | true
>
>
>
>
> gfsh>query --query="SELECT session.id, attribute.key, attribute.value
> FROM /Sessions session, session.attributes attribute ORDER BY session.id
> ASC"
>
> Result : true
>
> Limit  : 100
>
> Rows   : 2
>
>
>                  id                  |   key   | value
>
> ------------------------------------ | ------- |
> -------------------------------
>
> 78b1c7d7-4721-48a3-8e4a-0fe26920a718 | janeDoe |
> example.app.core.model.Customer
>
> 78b1c7d7-4721-48a3-8e4a-0fe26920a718 | jonDoe  |
> example.app.core.model.Customer
>
>
>
>
> Stay tuned...
>
> -John
>
>
> On Thu, Feb 21, 2019 at 10:01 AM John Blum <jblum@pivotal.io> wrote:
>
>> Hi Dharam-
>>
>> You cannot use `status server` or `stop server` on a GemFire Server
>> configured and bootstrapped with *Spring*. (i.e. *Spring Boot* with SDG,
>> or alternatively and preferably SBDG).  Most other commands will work (e.g.
>> `describe member`) as expected.
>>
>> For example, if you `describe member --name=S1`, I would expect this to
>> work for you.
>>
>> The reason for this is that certain *Gfsh* commands (e.g. `status server`
>> as well as `stop server`, depending on the options used, e.g. `--name`)
>> are built with GemFire's MBeans.  Other commands use Functions while still
>> other commands might be local and use the GemFire API.
>>
>> The MBean based commands related to the server (i.e. status/stop) assume
>> the GemFire Server was started via *Gfsh* (i.e. `start server`) in the
>> first place.  When you use the `start server` command, the
>> o.a.g.distributed.ServerLauncher class is used (as the main class) to
>> launch (i.e. start) the server, forked in a separate JVM process.  The
>> MBean associated with `status/stop server` pulls information from the
>> ServerLauncher class used to carry out the function of the commands.
>> *Spring*, in all arrangements, does not and will not use the
>> ServerLauncher class (ever) to bootstrap a GemFire Server.
>>
>> I am less familiar with the internals of *Pulse*, however, I do know it
>> uses a fair amount of information derived from the MBeans.  This might
>> explain some of the issues you are experiencing there.
>>
>> The missing Regions (in Pulse) as well as the querying issues in *Gfsh*,
>> I have not experienced before.
>>
>> Recently, I have been helping a customer with integration of *Spring
>> Session using Pivotal GemFire* (SSDG) in their legacy application.  For
>> theirs and our purposes, I created an example repo, here (
>> https://github.com/jxblum/spring-session-data-gemfire-serialization-example).
>> The example contains a GemFire Server configured and bootstrapped with
>> *Spring*, here (
>> https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/spring-gemfire-server/src/main/java/example/app/gemfire/server/SpringGemFireServerApplication.java
>> ).
>>
>> When I start this server up, I can do the following in *Gfsh* without
>> issue (NOTE: I am using Pivotal GemFire 9.5.2, which would be Apache Geode
>> 1.6.0 since this correlates with what the customer is using):
>>
>> $ echo $GEMFIRE
>>
>> /Users/jblum/pivdev/pivotal-gemfire-9.5.2
>>
>> jblum-mbpro-2:lab jblum$
>>
>> jblum-mbpro-2:lab jblum$ gfsh
>>
>>     _________________________     __
>>
>>    / _____/ ______/ ______/ /____/ /
>>
>>   / /  __/ /___  /_____  / _____  /
>>
>>  / /__/ / ____/  _____/ / /    / /
>>
>> /______/_/      /______/_/    /_/    9.5.2
>>
>>
>> Monitor and Manage Pivotal GemFire
>>
>> gfsh>
>>
>> Then...
>>
>> gfsh>connect
>>
>> Connecting to Locator at [host=localhost, port=10334] ..
>>
>> Connecting to Manager at [host=10.99.199.24, port=1099] ..
>>
>> Successfully connected to: [host=10.99.199.24, port=1099]
>>
>>
>>
>> gfsh>list members
>>
>>                    Name                     | Id
>>
>> ------------------------------------------- |
>> ------------------------------------------------------------------------------------------
>>
>> SpringSessionDataGemFireSerializationServer |
>> 10.99.199.24(SpringSessionDataGemFireSerializationServer:92975)<ec><v0>:1024
>> [Coordinator]
>>
>>
>>
>> gfsh>describe member --name=SpringSessionDataGemFireSerializationServer
>>
>> Name        : SpringSessionDataGemFireSerializationServer
>>
>> Id          :
>> 10.99.199.24(SpringSessionDataGemFireSerializationServer:92975)<ec><v0>:1024
>>
>> Host        : 10.99.199.24
>>
>> Regions     : Sessions
>>
>> PID         : 92975
>>
>> Groups      :
>>
>> Used Heap   : 60M
>>
>> Max Heap    : 3641M
>>
>> Working Dir :
>> /Users/jblum/pivdev/spring-data-examples-workspace/spring-session-data-gemfire-serialization-example/spring-gemfire-server/target
>>
>> Log file    :
>> /Users/jblum/pivdev/spring-data-examples-workspace/spring-session-data-gemfire-serialization-example/spring-gemfire-server/target
>>
>> Locators    : localhost[10334]
>>
>>
>> Cache Server Information
>>
>> Server Bind              :
>>
>> Server Port              : 50606
>>
>> Running                  : true
>>
>> Client Connections       : 0
>>
>> However, if I execute `status server`, I see...
>>
>> gfsh>status server --name=SpringSessionDataGemFireSerializationServer
>>
>> [error 2019/02/21 09:17:51.226 PST <Gfsh Launcher> tid=0x1f] Could not
>> execute "status server --name=SpringSessionDataGemFireSerializationServer".
>>
>> java.lang.NullPointerException
>>
>> at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:128)
>>
>> at org.json.JSONTokener.nextValue(JSONTokener.java:106)
>>
>> at org.json.JSONObject.<init>(JSONObject.java:164)
>>
>> at org.json.JSONObject.<init>(JSONObject.java:179)
>>
>> at
>> org.apache.geode.management.internal.cli.json.GfJsonObject.<init>(GfJsonObject.java:82)
>>
>> at
>> org.apache.geode.distributed.ServerLauncher$ServerState.fromJson(ServerLauncher.java:2572)
>>
>> at
>> org.apache.geode.management.internal.cli.commands.lifecycle.StatusServerCommand.statusServer(StatusServerCommand.java:55)
>>
>> 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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.invokeCommand(CommandExecutor.java:97)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:45)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:39)
>>
>> at
>> org.apache.geode.management.internal.cli.shell.GfshExecutionStrategy.execute(GfshExecutionStrategy.java:81)
>>
>> at
>> org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:134)
>>
>> at
>> org.apache.geode.management.internal.cli.shell.Gfsh.promptLoop(Gfsh.java:1011)
>>
>> at org.springframework.shell.core.JLineShell.run(JLineShell.java:179)
>>
>> at java.lang.Thread.run(Thread.java:748)
>>
>>
>> Could not process command due to error. Error while processing command
>> <status server --name=SpringSessionDataGemFireSerializationServer> Reason :
>> null
>>
>>
>>
>> What if I try to execute `status server --pid=92975`...
>>
>> gfsh>status server --pid=92975
>>
>> [error 2019/02/21 09:18:40.040 PST <Gfsh Launcher> tid=0x1f] Could not
>> execute "status server --pid=92975".
>>
>> org.apache.geode.lang.AttachAPINotFoundException: The Attach API classes
>> could not be found on the classpath.  Please include JDK tools.jar on
>> the classpath or add the JDK tools.jar to the jre/lib/ext directory.
>>
>> at
>> org.apache.geode.internal.process.FileProcessController.checkPidSupport(FileProcessController.java:101)
>>
>> at
>> org.apache.geode.distributed.ServerLauncher.statusWithPid(ServerLauncher.java:1072)
>>
>> at
>> org.apache.geode.distributed.ServerLauncher.status(ServerLauncher.java:1045)
>>
>> at
>> org.apache.geode.management.internal.cli.commands.lifecycle.StatusServerCommand.statusServer(StatusServerCommand.java:74)
>>
>> 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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.invokeCommand(CommandExecutor.java:97)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:45)
>>
>> at
>> org.apache.geode.management.internal.cli.remote.CommandExecutor.execute(CommandExecutor.java:39)
>>
>> at
>> org.apache.geode.management.internal.cli.shell.GfshExecutionStrategy.execute(GfshExecutionStrategy.java:81)
>>
>> at
>> org.springframework.shell.core.AbstractShell.executeCommand(AbstractShell.java:134)
>>
>> at
>> org.apache.geode.management.internal.cli.shell.Gfsh.promptLoop(Gfsh.java:1011)
>>
>> at org.springframework.shell.core.JLineShell.run(JLineShell.java:179)
>>
>> at java.lang.Thread.run(Thread.java:748)
>>
>>
>> Could not process command due to error. Error while processing command
>> <status server --pid=92975> Reason : The Attach API classes could not be
>> found on the classpath.  Please include JDK tools.jar on the classpath
>> or add the JDK tools.jar to the jre/lib/ext directory.
>>
>>
>>
>> OK!  That requires I have the JDK Attach API on the classpath of my
>> server.  However, that will not longer work...
>>
>>
>> https://github.com/apache/geode/blob/rel/v1.6.0/geode-core/src/main/java/org/apache/geode/internal/process/FileProcessController.java#L98-L102
>>
>> And, well...
>>
>>
>> https://github.com/apache/geode/blob/rel/v1.8.0/geode-core/src/main/java/org/apache/geode/internal/process/FileProcessController.java#L98-L102
>>
>> Anyway, let's continue.
>>
>> Because, I have a Spring Session based example, I have a */Sessions*
>> Region, here (
>> https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/spring-gemfire-server/src/main/java/example/app/gemfire/server/SpringGemFireServerApplication.java#L47
>> ).
>>
>> I can...
>>
>> gfsh>list regions
>>
>> List of regions
>>
>> ---------------
>>
>> Sessions
>>
>>
>>
>> required --name: Name/Path of the region to be described.; no default
>> value
>>
>> gfsh>describe region --name=/Sessions
>>
>>
>> .................................................................................................................................................................
>>
>> Name            : Sessions
>>
>> Data Policy     : partition
>>
>> Hosting Members : SpringSessionDataGemFireSerializationServer
>>
>>
>> Non-Default Attributes Shared By Hosting Members
>>
>>
>>  Type  |          Name           | Value
>>
>> ------ | ----------------------- |
>> ---------------------------------------------------------------------------------------------------------------------------
>>
>> Region | data-policy             | PARTITION
>>
>>        | entry-idle-time.timeout | 1800
>>
>>        | size                    | 0
>>
>>        | statistics-enabled      | true
>>
>>        | cache-listeners         |
>> org.springframework.session.data.gemfire.AbstractGemFireOperationsSessionRepository.SessionEventHandlerCacheListenerAdapter
>>
>>
>>
>> Now, if I run my test class (
>> https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/application-client/src/test/java/example/app/client/SessionSerializationWithDataSerializationDeltasAndJavaSerializationIntegrationTests.java),
>> after the test passes, it will create a Session and persist it to GemFire,
>> where I can then see the size to the */Sessions* Region change and query
>> the data...
>>
>> gfsh>describe region --name=/Sessions
>>
>>
>> .................................................................................................................................................................
>>
>> Name            : Sessions
>>
>> Data Policy     : partition
>>
>> Hosting Members : SpringSessionDataGemFireSerializationServer
>>
>>
>> Non-Default Attributes Shared By Hosting Members
>>
>>
>>  Type  |          Name           | Value
>>
>> ------ | ----------------------- |
>> ---------------------------------------------------------------------------------------------------------------------------
>>
>> Region | data-policy             | PARTITION
>>
>>        | entry-idle-time.timeout | 1800
>>
>>        | size                    | 1
>>
>>        | statistics-enabled      | true
>>
>>        | cache-listeners         |
>> org.springframework.session.data.gemfire.AbstractGemFireOperationsSessionRepository.SessionEventHandlerCacheListenerAdapter
>>
>>
>> gfsh>query --query="SELECT session.id, attribute.key, attribute.value
>> FROM /Sessions session, session.attributes attribute ORDER BY session.id
>> ASC"
>>
>> Result : true
>>
>> Limit  : 100
>>
>> Rows   : 2
>>
>>
>>                  id                  |   key   | value
>>
>> ------------------------------------ | ------- |
>> -------------------------------
>>
>> 736eb051-d1ae-4989-b7f3-4e7b91e5bb7a | janeDoe |
>> example.app.core.model.Customer
>>
>> 736eb051-d1ae-4989-b7f3-4e7b91e5bb7a | jonDoe  |
>> example.app.core.model.Customer
>>
>>
>>
>> So, (mostly) all works as expected.
>>
>> I will follow up in another email with details on *Pulse*.
>>
>> -John
>>
>>
>>
>> On Thu, Feb 21, 2019 at 8:54 AM Dharam Thacker <dharamthacker88@gmail.com>
>> wrote:
>>
>>> One more thing about GFSH.
>>>
>>> gfsh>list regions
>>> List of regions
>>> ---------------
>>> GroupDefinition
>>> Sample1
>>> Sample2
>>>
>>> gfsh>query --query="select * from /Sample1"
>>> Result  : false
>>> Message : Cannot find regions <[/Sample1]> in any of the members
>>>
>>> Thanks,
>>> - Dharam Thacker
>>>
>>>
>>> On Thu, Feb 21, 2019 at 10:15 PM Dharam Thacker <
>>> dharamthacker88@gmail.com> wrote:
>>>
>>>> Hi Jens,
>>>>
>>>> I tried again as per your suggestions and traced logs as well again.
>>>> You can see below that, both servers have joined but no regions created, no
>>>> server counts changed and GFSH is behaving strangely as well.
>>>>
>>>> GFSH:
>>>> gfsh>list members
>>>>   Name   | Id
>>>> -------- |
>>>> ----------------------------------------------------------------
>>>> locator1 | 192.168.31.62(locator1:2719:locator)<ec><v0>:41000
>>>> [Coordinator]
>>>> locator2 | 192.168.31.62(locator2:2854:locator)<ec><v1>:41001
>>>> S2       | 192.168.31.62(S2:5021)<v10>:41002
>>>> S1       | 192.168.31.62(S1:5107)<v11>:41003
>>>>
>>>> gfsh>status server --name=S1
>>>> No Geode Cache Server with member name or ID S1 could be found.
>>>>
>>>>
>>>> gfsh>status server --name=S2
>>>> No Geode Cache Server with member name or ID S2 could be found.
>>>>
>>>>
>>>> XHR logs: No regions as well as only locators as members even though
>>>> servers are there.
>>>>
>>>> [image: image.png]
>>>>
>>>> [image: image.png]
>>>>
>>>> I see below logs as well on startup in case they help.
>>>> [debug 2019/02/21 22:04:33.839 IST <main> tid=0x1] Notification Region
>>>> created with Name : _notificationRegion_192.168.31.62<v10>41002
>>>>
>>>> [debug 2019/02/21 22:04:34.113 IST <unicast
>>>> receiver,dharam-thakkar-34169> tid=0x1b] sending via JGroups:
>>>> [HeartbeatMessage [requestId=1]] recipients:
>>>> [192.168.31.62(locator2:2854:locator)<ec><v1>:41001]
>>>>
>>>> [warn 2019/02/21 22:04:34.590 IST <main> tid=0x1] (tid=1 msgId=0) *Could
>>>> not load Command from*: class
>>>> org.apache.geode.management.internal.cli.commands.DestroyIndexCommand due
>>>> to org.apache.geode.management.internal.cli.commands.DestroyIndexCommand
>>>> cannot be cast to org.springframework.shell.core.CommandMarker
>>>>
>>>> [warn 2019/02/21 22:04:34.597 IST <main> tid=0x1] (tid=1 msgId=1) *Could
>>>> not load Command from*: class
>>>> org.apache.geode.management.internal.cli.commands.BackupDiskStoreCommand
>>>> due to
>>>> org.apache.geode.management.internal.cli.commands.BackupDiskStoreCommand
>>>> cannot be cast to org.springframework.shell.core.CommandMarker
>>>>
>>>> [warn 2019/02/21 22:04:34.600 IST <main> tid=0x1] (tid=1 msgId=2) *Could
>>>> not load Command from:* class
>>>> org.apache.geode.management.internal.cli.commands.PDXRenameCommand due to
>>>> org.apache.geode.management.internal.cli.commands.PDXRenameCommand cannot
>>>> be cast to org.springframework.shell.core.CommandMarker
>>>>
>>>> [debug 2019/02/21 22:04:34.632 IST <main> tid=0x1] *Closing Management
>>>> Service*
>>>>
>>>> Thanks,
>>>> Dharam
>>>>
>>>>
>>>> On Wed, Feb 20, 2019 at 10:53 AM Jens Deppe <jensdeppe@apache.org>
>>>> wrote:
>>>>
>>>>> Hi Dharam,
>>>>>
>>>>> I've tried to replicate this, but have not been successful - I've
>>>>> tried restarting my Spring Boot app server at least 20 times, but it always
>>>>> shows up in Pulse.
>>>>>
>>>>> What would be useful is to try and look at the data that Pulse is
>>>>> retrieving in order to update it's display. If you're using Chrome, can you
>>>>> open the developer console and select the 'Network' tab. From there, select
>>>>> the 'XHR' filter tab - that should show you a 'pulseUpdate'
>>>>> request/response every 5 seconds. I'd be interested to see the data (it's a
>>>>> JSON payload) that comes back when you have all the members in the view and
>>>>> then the data that comes back when you are missing a member.
>>>>>
>>>>> Thanks
>>>>> --Jens
>>>>>
>>>>> On Tue, Feb 19, 2019 at 2:47 PM Bruce Schuchardt <
>>>>> bschuchardt@pivotal.io> wrote:
>>>>>
>>>>>> I can't comment on most of the content of your server1.log.  The
>>>>>> java.net.SocketException doesn't seem to be causing any problems but an
>>>>>> internet search indicated that setting
>>>>>>
>>>>>> -Djava.net.preferIPv4Stack=true
>>>>>>
>>>>>> might fix that problem for the machine you're using for testing.
>>>>>> This exception is caught and logged but shouldn't cause any other
>>>>>> problems.  Indeed, I can see from the debug-level logging that UDP
>>>>>> messaging was working okay in your run.
>>>>>>
>>>>>>
>>>>>> On 2/16/19 6:42 AM, Dharam Thacker wrote:
>>>>>>
>>>>>> Hi Team,
>>>>>>
>>>>>> I am sure about this issue now and it's really critical and worth to
>>>>>> look at. I would really appreciate to address it in upcoming release as
>>>>>> it's a BLOCKER for monitoring systems.
>>>>>>
>>>>>> I hope below one helps for your analysis. Please let me know if I can
>>>>>> help with any more details for the same.
>>>>>>
>>>>>> Few quick glimpses
>>>>>> On startup>>
>>>>>> [debug 2019/02/16 19:41:45.642 IST <main> tid=0x1] Creating
>>>>>> Management Region :
>>>>>>
>>>>>> [debug 2019/02/16 19:41:45.680 IST <main> tid=0x1] Management Service
>>>>>> is not initialised hence returning from handleLockServiceCreation
>>>>>>
>>>>>> [warn 2019/02/16 19:41:46.500 IST <main> tid=0x1] Could not
>>>>>> initialize class org.apache.logging.log4j.util.PropertiesUtil
>>>>>> java.lang.NoClassDefFoundError: Could not initialize class
>>>>>> org.apache.logging.log4j.util.PropertiesUtil
>>>>>>
>>>>>> ...
>>>>>>
>>>>>> *System Specification : *
>>>>>> DISTRIB_ID=LinuxMint
>>>>>> DISTRIB_RELEASE=18.3
>>>>>> DISTRIB_CODENAME=sylvia
>>>>>> DISTRIB_DESCRIPTION="Linux Mint 18.3 Sylvia"
>>>>>>
>>>>>> *Java : *
>>>>>> openjdk version "1.8.0_191"
>>>>>> OpenJDK Runtime Environment (build
>>>>>> 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
>>>>>> OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
>>>>>>
>>>>>> *GEODE*: 1.8.0 *Spring-Data-Geode* : 2.1.4.RELEASE (Geode version
>>>>>> overriden from 1.6.0 to 1.8.0)
>>>>>>
>>>>>> John,
>>>>>> It's fully using spring-data-geode and worth looking at several
>>>>>> issues related to that as well in server1.log
>>>>>>
>>>>>> The below link contains following artifacts for detailed analysis and
>>>>>> re-generating issues,
>>>>>>
>>>>>> *Attachments:*
>>>>>> https://drive.google.com/open?id=18AuPx05Aw-ezwNOKqdCfUJUwUycOqzTp
>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__drive.google.com_open-3Fid-3D18AuPx05Aw-2DezwNOKqdCfUJUwUycOqzTp&d=DwMFaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=JEKigqAv3f2lWHmA02pq9MDT5naXLkEStB4d4n0NQmk&m=KXGpMQ3vCHLW9I1372frvIz29jAVik7VeZ19pSYqNjU&s=Encm7VMywtgfrNZoO_gucw4q4RwpZmlQ3xpowDLpiNY&e=>
>>>>>>
>>>>>> 1. I have attached both locator (locator1,locator2) logs & properties
>>>>>> file
>>>>>> *Commands:*
>>>>>> start locator --name=locator1 --port=10334
>>>>>> --properties-file=/home/apps/work/geode/locator1/locator.properties
>>>>>> --dir=/home/apps/work/geode/locator1/work
>>>>>>
>>>>>> start locator --name=locator2 --port=10335
>>>>>> --properties-file=/home/apps/work/geode/locator2/locator.properties
>>>>>> --dir=/home/apps/work/geode/locator2/work
>>>>>>
>>>>>> 2. I have attached server1.log with debug level & demo.tar to
>>>>>> regenerate the same issue
>>>>>> *Command* : java -jar demo-0.0.1-SNAPSHOT.jar --demo.name
>>>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__demo.name&d=DwMFaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=JEKigqAv3f2lWHmA02pq9MDT5naXLkEStB4d4n0NQmk&m=KXGpMQ3vCHLW9I1372frvIz29jAVik7VeZ19pSYqNjU&s=onawLLFvihcvBxkdkVHzB5jqnL6Cy1UmlVfSy1I7KMQ&e=>=S1
>>>>>> --demo.port=40441 > server1.log &
>>>>>>
>>>>>> 3. Below is the pulse view where we can clearly say that, no more JMX
>>>>>> notifications regarding region initialisation or cache server were recorded
>>>>>>
>>>>>> [image: image.png]
>>>>>>
>>>>>> Thanks,
>>>>>> Dharam
>>>>>>
>>>>>>
>>>>>> I have
>>>>>> - Dharam Thacker
>>>>>>
>>>>>>
>>>>>> On Tue, Feb 5, 2019 at 6:28 PM Thacker, Dharam <
>>>>>> dharam.thacker@jpmorgan.com> wrote:
>>>>>>
>>>>>>> Hi Team,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I have usually seen following sequence when new member joins the
>>>>>>> cluster (member = cache-server)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *JMX Notifications on pulse screen :*
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 1.       Member Joined <<SERVER_NAME>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2.       Region Created With Name /<<REGION_NAME>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 3.       Cache Server is Started in the VM
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I am using GEODE 1.8.0  + Spring data geode 2.1.4.RELEASE with
>>>>>>> following properties and pulse in embedded mode.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *locator1.properties*
>>>>>>>
>>>>>>> locators=dharam-thakkar[10440],dharam-thakkar[10440]
>>>>>>>
>>>>>>> mcast-port=0
>>>>>>>
>>>>>>> jmx-manager=true
>>>>>>>
>>>>>>> jmx-manager-start=true
>>>>>>>
>>>>>>> jmx-manager-port=1091
>>>>>>>
>>>>>>> jmx-manager-ssl-enabled=false
>>>>>>>
>>>>>>> jmx-manager-bind-address=dharam-thakkar
>>>>>>>
>>>>>>> enable-network-partition-detection=false
>>>>>>>
>>>>>>> http-service-port=9701
>>>>>>>
>>>>>>> http-service-bind-address=dharam-thakkar
>>>>>>>
>>>>>>> log-file=/local/var/tmp/demo-locator1/locator1.log
>>>>>>>
>>>>>>> log-file-size-limit=10
>>>>>>>
>>>>>>> log-level=config
>>>>>>>
>>>>>>> log-disk-space-limit=50
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I tried below sequence and I see that PULSE is missing “JMX
>>>>>>> Notifications” and gives incorrect view of cluster.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *Steps to reproduce>>*
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 1.       gfsh start locator --name=demo-locator-1 --port=10440
>>>>>>> --properties-file=locator1.properties --work-dir=/var/tmp/demo-locator1/work
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2.       java -jar demo-spring-boot-geode-server.jar
>>>>>>> -DserverName=demo-server1 -DserverPort=40440
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 3.       java -jar demo-spring-boot-geode-server.jar
>>>>>>> -DserverName=demo-server2 -DserverPort=40441
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 4.       Everything will look fine as of now and you will see all
>>>>>>> notifications as explained in above sequence
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 5.       PID=`ps auxwww | fgrep 'java' | fgrep 'demo-server-1' |
>>>>>>> awk '{print $2}'` ; kill -INT $PID
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 6.       You should see *“Member Departed <<SERVER_NAME>>”* message
>>>>>>> on pulse
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 7.       Reboot the member -- java -jar
>>>>>>> demo-spring-boot-geode-server.jar -DserverName=demo-server1
>>>>>>> -DserverPort=40440
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 8.       Observe pulse notifications and member count
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 9.       You will only see *“Member Joined <<SERVER_NAME>>” *
>>>>>>> message on pulse and no update in member count
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 10.   If you don’t see situation as step-9, repeat steps-5 to
>>>>>>> steps-7 few times and you will end up in this situation
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *Note:* Please note that GFSH shows everything correctly but PULSE
>>>>>>> has issues.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Dharam
>>>>>>>
>>>>>>> This message is confidential and subject to terms at: https://
>>>>>>> www.jpmorgan.com/emaildisclaimer
>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.jpmorgan.com_emaildisclaimer&d=DwMFaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=JEKigqAv3f2lWHmA02pq9MDT5naXLkEStB4d4n0NQmk&m=KXGpMQ3vCHLW9I1372frvIz29jAVik7VeZ19pSYqNjU&s=wnMQ4KQ6EkepwerGG8L-HD4Bkb64Lv6lIQ77fjYolzs&e=>
>>>>>>> including on confidentiality, legal privilege, viruses and monitoring of
>>>>>>> electronic messages. If you are not the intended recipient, please delete
>>>>>>> this message and notify the sender immediately. Any unauthorized use is
>>>>>>> strictly prohibited.
>>>>>>>
>>>>>>
>>
>> --
>> -John
>> john.blum10101 (skype)
>>
>
>
> --
> -John
> john.blum10101 (skype)
>

Mime
View raw message