You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Yiming Jiao (JIRA)" <ji...@apache.org> on 2017/11/27 07:28:01 UTC

[jira] [Commented] (IGNITE-6972) BinaryObjectBuilderImpl.build is stuck when server cluster is restarted

    [ https://issues.apache.org/jira/browse/IGNITE-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16266451#comment-16266451 ] 

Yiming Jiao commented on IGNITE-6972:
-------------------------------------

This problem also occurs to my application, I have a 3-node server cluster and several client nodes load data into the cluster, I start these client applications one by one. Some times, some of them will stuck very randomly, I have to restart it. I did a thread dump when it stuck, it looks very similar to the description, I'm using Ignite 2.1.0,
no clue...

"ForkJoinPool.commonPool-worker-50" #285 daemon prio=5 os_prio=0 tid=0x00007f15843a8000 nid=0x20c5d waiting on condition [0x00007f1328cf3000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:176)
	at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:139)
	at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.metadata0(CacheObjectBinaryProcessorImpl.java:483)
	at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$2.metadata0(CacheObjectBinaryProcessorImpl.java:181)
	at org.apache.ignite.internal.binary.BinaryContext.affinityKeyFieldName(BinaryContext.java:1250)
	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:358)
	at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:183)
...


> BinaryObjectBuilderImpl.build is stuck when server cluster is restarted
> -----------------------------------------------------------------------
>
>                 Key: IGNITE-6972
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6972
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 2.3
>            Reporter: Jason Man
>
> When a client node is using a BinaryObjectBuilder to build a BinaryObject, the build() method could get stuck if the cluster is being restarted.
> Thread dump of the stack is
> {code}
> "main" #1 prio=5 os_prio=0 tid=0x004d9000 nid=0x62ac waiting on condition [0x023bf000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
>         at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:177)
>         at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:140)
>         at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl.java:441)
>         at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$2.addMeta(CacheObjectBinaryProcessorImpl.java:182)
>         at org.apache.ignite.internal.binary.BinaryContext.registerUserClassDescriptor(BinaryContext.java:793)
>         at org.apache.ignite.internal.binary.BinaryContext.registerClassDescriptor(BinaryContext.java:752)
>         at org.apache.ignite.internal.binary.BinaryContext.descriptorForClass(BinaryContext.java:623)
>         at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:164)
>         at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:147)
>         at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:134)
>         at org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:496)
>         at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:207)
>         at org.apache.ignite.internal.binary.builder.BinaryValueWithType.writeTo(BinaryValueWithType.java:48)
>         at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73)
>         at org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54)
>         at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.serializeTo(BinaryObjectBuilderImpl.java:313)
>         at org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl.build(BinaryObjectBuilderImpl.java:183)
> ...
> {code}
> Possible solution
> Should we use the get(long timeout) instead of get() which never times out?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)