[jboss-jira] [JBoss JIRA] (JBMESSAGING-1657) IllegalStateException upon cluster fail-over
Raghavendra Venkatakrishnan (JIRA)
jira-events at lists.jboss.org
Tue Jun 4 07:00:56 EDT 2013
[ https://issues.jboss.org/browse/JBMESSAGING-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779102#comment-12779102 ]
Raghavendra Venkatakrishnan commented on JBMESSAGING-1657:
----------------------------------------------------------
Hi Yong and Bela,
if (!rsp.wasReceived())
{
if (!rsp.wasSuspected())
{ throw new IllegalStateException(this + " response not received from " + rsp.getSender() + " - there may be others"); }
}
Can you let me know whether the above code shall work for all the scenarios.
Received a JMS leak in JBoss jms service and when I analysed it narrowed down to the above code in GroupMember.java.I also analysed the other jgroups related code surrounding this issue and if you notice in Rsp.java:
public boolean wasReceived() {
66 return received;
67 }
68
69 public void setReceived(boolean received) {
70 this.received=received;
71 if(received)
72 suspected=false;
73 }
74
75 public boolean wasSuspected() {
76 return suspected;
77 }
78
79 public void setSuspected(boolean suspected) {
80 this.suspected=suspected;
81 if(suspected)
82 received=false;
83 }
In GroupRequest's execute:
public boolean execute(boolean use_anycasting, boolean block_for_results) throws Exception {
247 if(corr == null && transport == null) {
248 if(log.isErrorEnabled()) log.error("both corr and transport are null, cannot send group request");
249 return false;
250 }
251
252 Vector<Address> targets=null;
253 lock.lock();
254 try {
255 targets=new Vector<Address>(members);
256 for(Address suspect: suspects) { // mark all suspects in 'received' array
257 Rsp rsp=requests.get(suspect); // rsp shall be null if this requests map does not contain a mapped value for this address suspect or if the map is an empty one and hence suspect shall not be set to true.
258 if(rsp != null) {
259 rsp.setSuspected(true);
260 break; // we can break here because we ensure there are no duplicate members
261 }
262 }
263 }
> IllegalStateException upon cluster fail-over
> --------------------------------------------
>
> Key: JBMESSAGING-1657
> URL: https://issues.jboss.org/browse/JBMESSAGING-1657
> Project: JBoss Messaging
> Issue Type: Bug
> Affects Versions: 1.4.0.SP3.CP05, 1.4.0.SP3.CP07, 1.4.0.SP3.CP08
> Reporter: Justin Bertram
> Assignee: Yong Hao Gao
> Fix For: 1.4.0.SP3.CP09, 1.4.5.GA
>
> Attachments: 127.0.0.1.log, 127.0.0.2.log, client.log, JmsTest.java
>
>
> I set up two cluster nodes like so:
> 1) unzipped fresh JBoss EAP 4.3 CP04
> 2) renamed <JBOSS_HOME>/server/default/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml to hsqldb-persistence-service.xml.rej
> 3) copied <JBOSS_HOME>/docs/examples/jms/mysql-persistence-service.xml to <JBOSS_HOME>/server/default/deploy/jboss-messaging.sar
> 4) Modified the "Clustered" attribute to be "true" in <JBOSS_HOME>/server/default/deploy/jboss-messaging.sar/mysql-persistence-service.xml
> 5) copied <JBOSS_HOME>/docs/examples/jca/mysql-ds.xml to <JBOSS_HOME>/server/default/deploy and changed the jndi-name to "DefaultDS" and pointed it at my local MySQL
> 6) copied MySQL driver to <JBOSS_HOME>/server/default/lib
> 7) copied jgroups.jar from <JBOSS_HOME>/server/all/lib to <JBOSS_HOME>/server/default/lib
> 8) copied <JBOSS_HOME> to <JBOSS_HOME2>
> 9) Start first instance with "./run.sh -c default -b 127.0.0.1 -Djboss.messaging.ServerPeerID=1"
> 10) Start second instance with "./run.sh -c default -b 127.0.0.2 -Djboss.messaging.ServerPeerID=2"
> Then I ran the test (which is attached as JmsTest.java)
> -Start test client connecting to 127.0.0.1
> -Observe client log filling up with "."
> -Drop JBoss running on 127.0.0.1 (using kill -9 <pid>)
> -Client fails with org.jboss.jms.exception.MessagingJMSException (see log attached as client.log)
> -Observe java.lang.IllegalStateException on the 127.0.0.2 (attached as 127.0.0.2.log)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list