[JBoss JIRA] Created: (JGRP-611) MergeTask GMS ConcurrentModificationException
by Bela Ban (JIRA)
MergeTask GMS ConcurrentModificationException
---------------------------------------------
Key: JGRP-611
URL: http://jira.jboss.com/jira/browse/JGRP-611
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.5.2, 2.6
[Vivek Sar]
I'm using JGroups 2.5 GA and have 3 members in the group using udp
gossip router (stack below). Occasionally, we have seen the following
exception if a node goes down and comes up again. This happens over
and over, only way to recover would then be to stop all the members
and start them again.
2007-10-25 12:08:32,717 ERROR [MergeTask] GMS - exception while merging
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at org.jgroups.protocols.pbcast.CoordGmsImpl.removeRejectedMergeRequests(CoordGmsImpl.java:749)
at org.jgroups.protocols.pbcast.CoordGmsImpl.access$500(CoordGmsImpl.java:26)
at org.jgroups.protocols.pbcast.CoordGmsImpl$MergeTask.run(CoordGmsImpl.java:817)
at java.lang.Thread.run(Unknown Source)
2007-10-25 12:08:32,717 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 12:08:51,443 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 12:08:51,443 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:27,237 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:39,934 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:39,934 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:55,013 ERROR [MergeTask] GMS - coords or merge_id == null
2007-10-25 13:09:55,013 ERROR [MergeTask] GMS - coords or merge_id == null
...
...
Protocol Stack,
<config>
<UDP
ip_mcast="false"
mcast_addr="228.10.10.10"
mcast_port="3092"
bind_addr="${jgroups.bindaddress.ip:jgroupshost}"
bind_port="${jgroups.bindaddress.port:3092}"
tos="16"
ucast_recv_buf_size="200000"
ucast_send_buf_size="640000"
mcast_recv_buf_size="250000"
mcast_send_buf_size="640000"
loopback="true"
discard_incompatible_packets="true"
max_bundle_size="64000"
max_bundle_timeout="30"
use_incoming_packet_handler="true"
use_outgoing_packet_handler="false"
ip_ttl="32"
enable_bundling="true"
use_concurrent_stack="true"
thread_pool.enabled="true"
thread_pool.min_threads="1"
thread_pool.max_threads="100"
thread_pool.keep_alive_time="20000"
thread_pool.queue_enabled="false"
thread_pool.queue_max_size="10"
thread_pool.rejection_policy="Run"
oob_thread_pool.enabled="true"
oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="4"
oob_thread_pool.keep_alive_time="30000"
oob_thread_pool.queue_enabled="true"
oob_thread_pool.queue_max_size="10"
oob_thread_pool.rejection_policy="Run"/>
<PING gossip_host="${jgroups.gossiprouter.ip:jgroupshost}"
gossip_port="${jgroups.gossiprouter.port:3091}"
gossip_refresh="15000"
timeout="3000"
num_initial_members="3"/>
<MERGE2 min_interval="5000" max_interval="10000"
down_thread="false" up_thread="false"/>
<FD_SOCK up_thread="false" down_thread="false"/>
<FD timeout="10000" max_tries="5" shun="true"/>
<VERIFY_SUSPECT timeout="1500"/>
<pbcast.NAKACK max_xmit_size="60000"
use_mcast_xmit="false" gc_lag="0"
retransmit_timeout="100,200,300,600,1200,2400,4800"
discard_delivered_msgs="true"/>
<UNICAST timeout="300,600,1200,2400,3600"/>
<ENCRYPT key_store_name="keystore" store_password="xxx"
key_password="xxx" alias="xxx"/>
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
max_bytes="400000"/>
<VIEW_SYNC avg_send_interval="60000"/>
<AUTH auth_class="org.jgroups.auth.MD5Token"
auth_value="xxx"
token_hash="MD5"/>
<pbcast.GMS print_local_addr="true" join_timeout="5000"
join_retry_timeout="2000" shun="true"/>
<FC max_credits="2000000"
min_threshold="0.10"/>
<FRAG2 frag_size="60000"/>
<pbcast.STATE_TRANSFER />
</config>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months
[JBoss JIRA] Created: (JGRP-613) Access to NAKACK#rebroadcast_digest field needs a lock
by Vladimir Blagojevic (JIRA)
Access to NAKACK#rebroadcast_digest field needs a lock
------------------------------------------------------
Key: JGRP-613
URL: http://jira.jboss.com/jira/browse/JGRP-613
Project: JGroups
Issue Type: Bug
Affects Versions: 2.6
Reporter: Vladimir Blagojevic
Assigned To: Bela Ban
Priority: Minor
Fix For: 2.6
It seems that rebroadcast_digest field of NAKACK is accessed by multiple threads which step over each other leading to a consequences below.
This is very hard to reproduce and I have seen it only a few times so far.
-------------------------------------------------------
GMS: address is 127.0.0.1:2528
-------------------------------------------------------
11141 [INFO][main] ConcurrentStateTransferTest: - Thread for channel 127.0.0.1:2528[A] started
15250 [INFO][A] ConcurrentStateTransferTest: - channel.getState at A127.0.0.1:2518 returned false
15297 [INFO][Multiplexer,udp,127.0.0.1:2520] ConcurrentStateTransferTest: - -- [#A (127.0.0.1:2520)]: received 127.0.0.1:2518
15297 [INFO][Multiplexer,udp,127.0.0.1:2524] ConcurrentStateTransferTest: - -- [#A (127.0.0.1:2524)]: received 127.0.0.1:2518
15297 [INFO][Multiplexer,udp,127.0.0.1:2518] ConcurrentStateTransferTest: - -- [#A (127.0.0.1:2518)]: received 127.0.0.1:2518
15297 [INFO][Multiplexer,udp,127.0.0.1:2528] ConcurrentStateTransferTest: - -- [#A (127.0.0.1:2528)]: received 127.0.0.1:2518
15328 [ERROR][OOB,udp,127.0.0.1:2520] UDP: - failed handling incoming message
java.lang.NullPointerException
at org.jgroups.protocols.pbcast.NAKACK.rebroadcastMessages(NAKACK.java:1036)
at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:620)
at org.jgroups.protocols.UNICAST.down(UNICAST.java:434)
at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:317)
at org.jgroups.protocols.pbcast.GMS.down(GMS.java:813)
at org.jgroups.protocols.FC.down(FC.java:370)
at org.jgroups.protocols.FRAG2.down(FRAG2.java:175)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.down(STREAMING_STATE_TRANSFER.java:318)
at org.jgroups.protocols.pbcast.FLUSH.handleFlushReconcile(FLUSH.java:455)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:337)
at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:258)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:205)
at org.jgroups.protocols.FC.up(FC.java:408)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:742)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:264)
at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:798)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:662)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
at org.jgroups.protocols.FD.up(FD.java:322)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:250)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1512)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1461)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months
[JBoss JIRA] Commented: (EJBTHREE-615) NPE in Embedded Jboss when getCallerPrincipal method on SessionContext
by John Gilbert (JIRA)
[ http://jira.jboss.com/jira/browse/EJBTHREE-615?page=comments#action_12384972 ]
John Gilbert commented on EJBTHREE-615:
---------------------------------------
What does "EJB 3 embedded is no longer supported." mean?
Is something replacing it?
> NPE in Embedded Jboss when getCallerPrincipal method on SessionContext
> ----------------------------------------------------------------------
>
> Key: EJBTHREE-615
> URL: http://jira.jboss.com/jira/browse/EJBTHREE-615
> Project: EJB 3.0
> Issue Type: Bug
> Affects Versions: EJB 3.0 RC8 - FD
> Reporter: Nicolai ?dum
> Assigned To: Carlo de Wolf
> Attachments: BugReportInterceptor.java
>
>
> The bug is pretty easy to create.
> Modify the CalculaterBean in the security example that is distributed with JBoss embedded like this
> import javax.annotation.Resource;
> import java.security.Principal;
> import javax.ejb.SessionContext;
> ..
> public class CalculatorBean implements Calculator
> {
> @Resource SessionContext ctx;
> @RolesAllowed({"student"})
> public int subtract(int x, int y)
> {
> Principal caller = ctx.getCallerPrincipal(); //Nullpointer
> return x - y;
> }
> The exception
> full stacktrace:
> javax.ejb.EJBException: java.lang.NullPointerException
> at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
> at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
> at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:167)
> at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptor.invoke(RoleBasedAuthorizationInterceptor.java:100)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
> at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:181)
> at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
> at $Proxy15.getSubscriberDetails(Unknown Source)
> Another user has reported that is is possible to get the principal from org.jboss.security.SecurityAssociation.getPrincipal(), but not from the Session Context.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 11 months