Hi Udo,

Sure! I have attached demo project with apache-geode 1.8.0 &
spring-data-geode 2.1.4.RELEASE.
Hope that helps!

Download demo.tar from ->
https://drive.google.com/open?id=10j3NQEkb74n9tNBuWxza9J772p7IYg-7

*Steps:*
1. Start locator
$GFSH start locator --name=locator1 --port=10334
--J=-Denable-network-partition-detection=false --log-level=config

2. Start server1
java -jar demo-0.0.1-SNAPSHOT.jar -Ddemo.name=demo-server-1
-Ddemo.port=40440

3. Start server2
java -jar demo-0.0.1-SNAPSHOT.jar -Ddemo.name=demo-server-2
-Ddemo.port=40441

4. Execute below command to suspend server 'demo-server-2'
PID=`ps auxwww | fgrep 'java' | fgrep 'demo-server-2' | awk '{print $2}'` ;
kill -STOP $PID

5. Make sure server 'demo-server-2' is thrown out of distributed system
from logs/pulse

6. Resume server 'demo-server-2' and let it bootstrap and rejoin
distributed system (This will take few seconds so be patient!)
PID=`ps auxwww | fgrep 'java' | fgrep 'demo-server-2' | awk '{print $2}'` ;
kill -CONT $PID

7. Let the member make at least 2 reconnect attempt (You will see all
possible track traces I provided earlier)

Thanks,
- Dharam Thacker


On Fri, Feb 1, 2019 at 11:23 PM Udo Kohlmeyer <u...@apache.org> wrote:

> Hi there Dharam,
>
> Given that you are testing with Geode 1.6 + 1.8 and seemingly you are
> using Spring Data Geode. Could you possibly provide a little more
> information on HOW you are starting the servers? Also what version Spring
> Data Geode and maybe, if you could, a simplified configuration / java
> classes that cause this to happen.
>
> --Udo
> On 2/1/19 04:37, Thacker, Dharam wrote:
>
> John/Bruce,
>
>
>
> It’s the same behavior even with “MappingPdxSerializer” for “Force
> Reconnect” L
>
>
>
> I would really appreciate if we can address into GEODE-1.9.0 release J
>
>
>
> It tries for 6 attempts to reconnect distributed system. In first attempt
> it still complains for “pdxSerializer” issue and in later attempts it
> always gives,
>
>
>
> [info 2019-02-01 18:01:33.878 IST <ReconnectThread>
> internal.ClusterDistributionManager tid=142] Serial Queue info :
> THROTTLE_PERCENT: 0.75 SERIAL_QUEUE_BYTE_LIMIT :41943040
> SERIAL_QUEUE_THROTTLE :31457280 TOTAL_SERIAL_QUEUE_BYTE_LIMIT :83886080
> TOTAL_SERIAL_QUEUE_THROTTLE :31457280 SERIAL_QUEUE_SIZE_LIMIT :20000
> SERIAL_QUEUE_SIZE_THROTTLE :15000
>
>
>
> [info 2019-02-01 18:01:33.883 IST <ReconnectThread> gms.Services tid=142]
> Starting membership services
>
>
>
> [fatal 2019-02-01 18:01:33.883 IST <ReconnectThread> gms.Services tid=142]
> Unexpected exception while booting membership services
>
> *java.lang.NullPointerException*
>
>        at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.establishLocalAddress(
> *JGroupsMessenger.java:483*)
>
>        …
>
>
>
>
>
> @EnablePdx(readSerialized = *true*, serializerBeanName =
> "mappingPdxSerializer")
>
>
>
> @Bean
>
> public MappingPdxSerializer mappingPdxSerializer() {
>
>                 MappingPdxSerializer mappingPdxSerializer = new
> MappingPdxSerializer();
>
>                 Map<Class<?>, EntityInstantiator> customInstantiators =
> new HashMap<>();
>
>                 EntityInstantiator instantiator =
> ReflectionEntityInstantiator.INSTANCE;
>
>                 customInstantiators.put(A1.class, instantiator);
>
>                 customInstantiators.put(A1Audit.class, instantiator);
>
>                 customInstantiators.put(B1.class, instantiator);
>
>                 customInstantiators.put(B1Audit.class, instantiator);
>
>                 return mappingPdxSerializer;
>
> }
>
>
>
>
>
> 1 more issue with MappingPdxSerializer,
>
> Class A1 à region A1
>
>
>
> a1Reposiroty.findAll() à This should give me List<A1> as a standard
> contact.
>
>
>
> Ø  Works with ReflectionBasedAutoSerializer
>
> Ø  Fails with “MappingPdxSerializer” (It gives List<PdxInstanceImp> and
> internally you have to call pdxInstance.getObject() to get real instance of
> A1)
>
>
>
>
>
>
>
> Thanks,
>
> Dharam
>
>
>
> *From:* Thacker, Dharam
> *Sent:* Friday, February 01, 2019 12:58 PM
> *To:* 'user@geode.apache.org' <user@geode.apache.org>
> *Subject:* RE: NullPointerException with GMS services (Geode 1.6.0)
>
>
>
> Hi John/Bruce,
>
>
>
> Typo in email was by me but code does not have that.
>
>
>
> Here is the detailed logs explaining what might have happened and looks
> like a CRITICAL BUG only in both (1.6.0) and (1.8.0) as well.
>
>
>
> [Attached email thread for GEODE 1.8.0 as well]
>
>
>
> *ISSUES:*
>
>
>
> Ø  1 common scenario which fails – Member is unable to join distributed
> system back after FORCE DICONNECT
>
>
>
> Ø  Why does PDXSerializer play a role while boot strapping cache member?
> (Note : No disk persistence is being used but only
> ReflectionBasedAutoSerializer)
>
>
>
> Ø  GMS is throwing NullPointer exception in this situation
>
>
>
> Ø  Same error messages and stack trace for GMS is being printed once with
> fatal/error/warn log levels which does not look consistent.
>
>
>
>
>
> [Pending] : Dharam to find out if that’s the same issue with
> MappingPdxSerializer as suggested by John
>
>
>
> Current logs both for GEODE – 1.6.0 & GEODE 1.8.0
>
>
>
>
>
> [warn 2019-02-01 00:05:29.000 EST <StatSampler>
> statistics.HostStatSampler] Statistics sampling thread detected a wakeup
> delay of 16617 ms, indicating a possible resource issue. Check the GC,
> memory, and CPU statistics.
>
>
>
> [fatal 2019-02-01 00:05:29.937 EST <unicast receiver,iaasn00005748-49024>
> gms.Services] Membership service failure: Failed to acknowledge a new
> membership view and then failed tcp/ip connection attempt
>
> org.apache.geode.ForcedDisconnectException: Failed to acknowledge a new
> membership view and then failed tcp/ip connection attempt
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.forceDisconnect(GMSMembershipManager.java:2503)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:1049)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processRemoveRequest(GMSJoinLeave.java:654)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1810)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1301)
>
>         at org.jgroups.JChannel.invokeCallback(JChannel.java:816)
>
>         at org.jgroups.JChannel.up(JChannel.java:741)
>
>         at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030)
>
>         at org.jgroups.protocols.FRAG2.up(FRAG2.java:165)
>
>         at org.jgroups.protocols.FlowControl.up(FlowControl.java:390)
>
>         at
> org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1077)
>
>         at
> org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:792)
>
>         at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:433)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder.up(StatRecorder.java:73)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:72)
>
>         at org.jgroups.protocols.TP.passMessageUp(TP.java:1658)
>
>         at org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)
>
>         at org.jgroups.util.DirectExecutor.execute(DirectExecutor.java:10)
>
>         at org.jgroups.protocols.TP.handleSingleMessage(TP.java:1789)
>
>         at org.jgroups.protocols.TP.receive(TP.java:1714)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.Transport.receive(Transport.java:152)
>
>         at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
>
>         at java.lang.Thread.run(Thread.java:745)
>
>
>
> [error 2019-02-01 00:06:35.651 EST <ReconnectThread>
> cache.GemFireCacheImpl] org.apache.geode.cache.CacheClosedException: Could
> not PDX serialize because the cache was closed
>
>
>
> [warn 2019-02-01 00:06:35.652 EST <ReconnectThread>
> internal.InternalDistributedSystem] Exception occurred while trying to
> create the cache during reconnect
>
> org.apache.geode.cache.CacheClosedException: Could not PDX serialize
> because the cache was closed
>
>         at
> org.apache.geode.pdx.internal.TypeRegistry.getPdxSerializer(TypeRegistry.java:317)
>
>         at
> org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1648)
>
>         at
> org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1548)
>
>         at
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2200)
>
>         at
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2952)
>
>         at
> org.apache.geode.internal.cache.MemberFunctionStreamingMessage.toData(MemberFunctionStreamingMessage.java:315)
>
>         at
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2398)
>
>         at
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1517)
>
>         at
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:234)
>
>         at
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:394)
>
>         at
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:251)
>
>         at
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:616)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1686)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1864)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2860)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:2780)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2819)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1523)
>
>         at
> org.apache.geode.internal.cache.execute.StreamingFunctionOperation.getFunctionResultFrom(StreamingFunctionOperation.java:107)
>
>         at
> org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:151)
>
>         at
> org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:189)
>
>         at
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:392)
>
>         at
> org.apache.geode.internal.cache.ClusterConfigurationLoader.requestConfigurationFromOneLocator(ClusterConfigurationLoader.java:312)
>
>         at
> org.apache.geode.internal.cache.ClusterConfigurationLoader.requestConfigurationFromLocators(ClusterConfigurationLoader.java:282)
>
>         at
> org.apache.geode.internal.cache.GemFireCacheImpl.requestSharedConfiguration(GemFireCacheImpl.java:1066)
>
>         at
> org.apache.geode.internal.cache.GemFireCacheImpl.<init>(GemFireCacheImpl.java:857)
>
>         at
> org.apache.geode.internal.cache.GemFireCacheImpl.basicCreate(GemFireCacheImpl.java:794)
>
>         at
> org.apache.geode.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:773)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2765)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2530)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1044)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:3406)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1534)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$3(GMSMembershipManager.java:2531)
>
>         at java.lang.Thread.run(Thread.java:745)
>
>
>
> [fatal 2019-02-01 00:07:35.810 EST <ReconnectThread> gms.Services]
> Unexpected exception while booting membership services
>
> java.lang.NullPointerException
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.establishLocalAddress(JGroupsMessenger.java:483)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:361)
>
>         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:348)
>
>         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.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2704)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2530)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1044)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:3406)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1534)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$3(GMSMembershipManager.java:2531)
>
>         at java.lang.Thread.run(Thread.java:745)
>
>
>
> [error 2019-02-01 00:07:35.810 EST <ReconnectThread> gms.Services]
> Unexpected problem starting up membership services
>
> java.lang.NullPointerException
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.establishLocalAddress(JGroupsMessenger.java:483)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:361)
>
>         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:348)
>
>         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.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2704)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2530)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1044)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:3406)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1534)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$3(GMSMembershipManager.java:2531)
>
>         at java.lang.Thread.run(Thread.java:745)
>
>
>
>
>
> Thanks,
>
> Dharam
>
>
>
> *From:* John Blum [mailto:jb...@pivotal.io <jb...@pivotal.io>]
> *Sent:* Tuesday, January 29, 2019 3:49 AM
> *To:* user@geode.apache.org
> *Subject:* Re: NullPointerException with GMS services (Geode 1.6.0)
>
>
>
> Although, there is an apparent problem with your Locator configuration
> property, which can/will lead to an NPE thrown by Geode in this case (as I
> reported in https://issues.apache.org/jira/browse/GEODE-6153, which is
> not exactly the same as your problem), as Bruce points out, this is
> occurring during reconnect.
>
>
>
> If the default value of the Locator property had been used (which it
> apparently wasn't in this case), then the node would have failed even on
> initial startup.  So, something else is going wrong here.
>
>
>
> On Mon, Jan 28, 2019 at 10:32 AM Bruce Schuchardt <bschucha...@pivotal.io>
> wrote:
>
> These NPEs are probably not your main problem since their occurring in a
> Reconnect Thread.  Something bad happened when you tried to start these
> caches.  They joined the cluster and then were kicked out for some reason.
> The log file for that process will likely tell you what the problem was.
> Post it or PM it to me if you want help.
>
> On 1/27/19 10:56 PM, Thacker, Dharam wrote:
>
> java.lang.NullPointerException
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.establishLocalAddress(JGroupsMessenger.java:468)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.start(JGroupsMessenger.java:355)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.Services.start(Services.java:157)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.GMSMemberFactory.newMembershipManager(GMSMemberFactory.java:106)
>
>         at
> org.apache.geode.distributed.internal.membership.MemberFactory.newMembershipManager(MemberFactory.java:90)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:1027)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.<init>(ClusterDistributionManager.java:1061)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:554)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:763)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:355)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:341)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:335)
>
>         at
> org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:211)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2736)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2560)
>
>         at
> org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:1041)
>
>         at
> org.apache.geode.distributed.internal.ClusterDistributionManager$DMListener.membershipFailure(ClusterDistributionManager.java:4033)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1554)
>
>         at
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$1(GMSMembershipManager.java:2561)
>
>         at java.lang.Thread.run(Thread.java:745)
>
>
>
>
> --
>
> -John
>
> john.blum10101 (skype)
>
> This message is confidential and subject to terms at: https://
> www.jpmorgan.com/emaildisclaimer 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.
>
>

Reply via email to