Xavier,
I have a controller with two backends one enabled and one disabled.

After sometimes, I want to enable the second backend.

So I use the JMX method enableBackendFromCheckpoint.

During the recovery process every access to the two
Backends are suspended so if a write request occurred during the
recovery process it will be delayed.
I don't know where you found backends suspended during the recovery process?
If you look at the RecoverThread code you'll see that we replay the whole recovery log on the enabling backend and only when we have replayed everything, we suspend activities to make sure that pending writes are flushed to the recovery log (this time should be short). Once no pending write remains in-flight, we resume activities.
The code of the method AbstractScheduler.addSuspendedRequest is
    synchronized (suspendedRequests)
    {
      suspendedRequests.add(obj);
    }
    synchronized (totalOrderQueue)
    {
      totalOrderQueue.notifyAll();
    }

But if the VirtualDatabase is not a DistributedVirtualDatabase,
the field totalOrderQueue queue is null and a NPE is thrown.

Is it a bug or I cannot do this?
This one however is a real bug. I filed it under https://forge.continuent.org/jira/browse/SEQUOIA-848 and a fix is on its way for 2.10 and 3.0 branches.

Thanks again for the report,
Emmanuel

--
Emmanuel Cecchet
Chief Scientific Officer, Continuent

Blog: http://emanux.blogspot.com/
Open source: http://www.continuent.org
Corporate: http://www.continuent.com
Skype: emmanuel_cecchet
Cell: +33 687 342 685


_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to