[JBoss JIRA] Created: (JBCACHE-957) Allow per-node configuration of LockParentForChildInsertRemove
by Brian Stansberry (JIRA)
Allow per-node configuration of LockParentForChildInsertRemove
--------------------------------------------------------------
Key: JBCACHE-957
URL: http://jira.jboss.com/jira/browse/JBCACHE-957
Project: JBoss Cache
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Brian Stansberry
Assigned To: Manik Surtani
Fix For: 2.0.0.BETA2
Use the new LockParentForChildInsertRemove as a global default that sets a per-node behavior. Expose an API in Node (not NodeSPI) that allows the application to change the behavior for an individual node.
Use case: session replication, which stores data in a structure like this:
/SESSION/webapp/session1/.../...
/SESSION/webapp/session2/.../...
The session managment layer wants the greater correctness that comes with enforcing LockParentForChildInsertRemove="true" with the sessionX node and below. But requiring a WL on /SESSION/webapp before any session could be added or removed will greatly disrupt session creation and expiration. This feature allows the best of both worlds, by allowing the application to set LockParentForChildInsertRemove="false" on /SESSION and /SESSION/webapp.
This is a simple alternative to lock striping in the node's children map.
--
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
18 years, 7 months
[JBoss JIRA] Created: (JBCACHE-910) TreeCache.createSubtreeRootNode(Fqn subtree) ugliness
by Elias Ross (JIRA)
TreeCache.createSubtreeRootNode(Fqn subtree) ugliness
-----------------------------------------------------
Key: JBCACHE-910
URL: http://jira.jboss.com/jira/browse/JBCACHE-910
Project: JBoss Cache
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Elias Ross
Assigned To: Manik Surtani
This method is called by the region manager.
There's a bunch of Voodoo taking place here, legacy bits mixed with some newer stuff.
One thing that strikes me as wrong already is this code:
child = factory.createDataNode(type, name,
subtree.getFqnChild(i + 1),
parent, lock_table, coordinator, null, this.rootSpi);
For some reason, it is passing the lock_table into the Node as the data to initialize the node with.
Somehow I think the right way to fix this would be to do a Cache.addChild(Fqn) call in RegionManager and remove this method.
--
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
18 years, 7 months
[JBoss JIRA] Created: (JBMESSAGING-634) If Server is restarted, client leases IDs might be out of sync
by Clebert Suconic (JIRA)
If Server is restarted, client leases IDs might be out of sync
--------------------------------------------------------------
Key: JBMESSAGING-634
URL: http://jira.jboss.com/jira/browse/JBMESSAGING-634
Project: JBoss Messaging
Issue Type: Bug
Reporter: Clebert Suconic
Assigned To: Ovidiu Feodorov
This is the scenario I have:
I start the server...
I have clients opening/closing connections in a loop...
I kill the server...
(will ignore the errors on client until I get restarted)
I restart the server....
I will get a bunch of errors on client, regarding not being able to find ClientIds on Lease operations (Just WARNs)
Kill the client...
after some time.. .the server gets into an unexpected state, after we have seen this exception:
20:59:37,765 ERROR [STDERR] java.lang.NullPointerException
20:59:37,765 ERROR [STDERR] at org.jboss.remoting.Lease.notifyClientLost(Lease.java:211)
20:59:37,765 ERROR [STDERR] at org.jboss.remoting.Lease.access$300(Lease.java:39)
20:59:37,765 ERROR [STDERR] at org.jboss.remoting.Lease$LeaseTimerTask.run(Lease.java:242)
20:59:37,765 ERROR [STDERR] at java.util.TimerThread.mainLoop(Timer.java:512)
20:59:37,765 ERROR [STDERR] at java.util.TimerThread.run(Timer.java:462)
I consider the description of this JIRA issue very subjective, we should rename it as soon as we have found the real cause.
--
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
18 years, 7 months
[JBoss JIRA] Created: (JBMESSAGING-553) Run AS (4.x and 5.x) integration tests with Messaging
by Ovidiu Feodorov (JIRA)
Run AS (4.x and 5.x) integration tests with Messaging
-----------------------------------------------------
Key: JBMESSAGING-553
URL: http://jira.jboss.com/jira/browse/JBMESSAGING-553
Project: JBoss Messaging
Issue Type: Task
Components: Tests and Performance
Reporter: Ovidiu Feodorov
Assigned To: Richard Achmatowicz
Priority: Critical
Fix For: 1.2.0.Beta1
This is the container task for everthing required to run JBoss AS JMS integration tests with JBoss Messaging. The existing integration test framework should be modified in such a manner to allow interchangeably running the same JMS tests with JBossMQ and JBoss Messaging. None of the existing JBossMQ tests should be removed, they must be at most refactored so the JBossMQ-specific tests will be executed with JBossMQ only (as part of the JBossMQ functional testsuite) and generic JMS tests will be executed with both JBossMQ and JBoss Messaging.
More details in the sub-tasks.
--
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
18 years, 7 months
[JBoss JIRA] Created: (JGRP-384) DistributedLockManager.unlock() throws an exception if one of the group members terminates.
by Sean Landis (JIRA)
DistributedLockManager.unlock() throws an exception if one of the group members terminates.
-------------------------------------------------------------------------------------------
Key: JGRP-384
URL: http://jira.jboss.com/jira/browse/JGRP-384
Project: JGroups
Issue Type: Bug
Affects Versions: 2.4
Environment: Suse Linux 10.1 Desktop
java version "1.5.0_07"
Dell Optiplex GX280
Reporter: Sean Landis
Assigned To: Bela Ban
I am trying to use the DLM to implement a failover mechanism. Two
identical processes are started. One acquires the lock and becomes the
primary; the other can't acquire the lock and becomes the backup. The
primary does it's processing. The backup checks periodically if it can
get the lock. Should the primary fail, the backup will acquire the
lock and do the processing.
This works fine. The problem I am having is if both are running, the
backup fails, and the primary tries to unlock. I get the following
stack trace:
Exception in thread "main"
org.jgroups.blocks.LockNotReleasedException: Lock cannot be unlocked.
at org.jgroups.blocks.DistributedLockManager.unlock(DistributedLockManager.java:318)
at org.jgroups.blocks.DistributedLockManager.unlock(DistributedLockManager.java:260)
at com.overstock.distlock.examples.FailoverTest.doIt(FailoverTest.java:50)
at com.overstock.distlock.examples.FailoverTest.main(FailoverTest.java:61)
I am running version 2.4. Here's a sample program:
package distlock.examples;
import org.jgroups.JChannel;
import org.jgroups.blocks.DistributedLockManager;
import org.jgroups.blocks.LockNotGrantedException;
import org.jgroups.blocks.VotingAdapter;
public class FailoverTest {
public static final String SERVER_PROTOCOL_STACK =
"UDP(mcast_addr=228.3.11.76;mcast_port=12345;ip_ttl=1;"
+ "mcast_send_buf_size=150000;mcast_recv_buf_size=80000)"
+ ":PING(timeout=500;num_initial_members=1)"
+ ":FD"
+ ":VERIFY_SUSPECT(timeout=1500)"
+ ":pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800)"
+ ":UNICAST(timeout=5000)"
+ ":pbcast.STABLE(desired_avg_gossip=200)"
+ ":FRAG(frag_size=4096)"
+ ":pbcast.GMS(join_timeout=5000;join_retry_timeout=1000;"
+ "shun=false;print_local_addr=false)"
;
private void doIt() throws Exception {
JChannel channel = new JChannel(SERVER_PROTOCOL_STACK);
VotingAdapter adapter = new VotingAdapter(channel);
channel.connect("cluster");
DistributedLockManager dlm = new DistributedLockManager(adapter, "Mgr");
String lockId = "theLock";
for (int i = 0; i < 40; i++) {
while (true) {
try {
System.out.println("Trying to get lock.");
dlm.lock(lockId, channel.getLocalAddress(), 10000);
break;
} catch (LockNotGrantedException ex) {
System.out.println("Could not get lock.");
}
try {
Thread.sleep(5000);
} catch(InterruptedException ex) {
}
}
System.out.println("Got lock, sleeping.");
try {
Thread.sleep(10000);
} catch(InterruptedException ex) {
}
System.out.println("unlocking and sleeping.");
dlm.unlock(lockId, channel.getLocalAddress());
try {
Thread.sleep(5000);
} catch(InterruptedException ex) {
}
}
channel.close();
}
public static void main(String[] args) throws Exception {
System.setProperty("java.net.preferIPv4Stack", "true");
new FailoverTest().doIt();
}
}
--
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
18 years, 7 months