[GitHub] activemq-artemis pull request #1691: ARTEMIS-1541 Make the JDBC Node Manager...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis pull request #1691: ARTEMIS-1541 Make the JDBC Node Manager...

pgfox
GitHub user franz1981 opened a pull request:

    https://github.com/apache/activemq-artemis/pull/1691

    ARTEMIS-1541 Make the JDBC Node Manager more resilient on failures

    In order to make the JDBC Node Manager more resilient has been implemented:
    - lowered from SERIALIZABLE to READ_COMMITTED Isolation level on NodeId setup to avoid
      ad-hoc (ie per DBMS) handling of failures
    - recovering with fixed number of retries during the NodeId setup + unrecoverable failure otherwise
    - unrecoverable fail on exceptions while renewing a lease lock
   
    In addition, in different parts of these critical processes are added more log informations to help diagnose.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/franz1981/activemq-artemis jdbc_ha_improvements

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/1691.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1691
   
----

----


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor Please do not merge it yet: I need to run the CI tests first
   
    @mtaylor @jmesnil How it seems?



---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor The CI tests hasn't shown any regression due to this PR :+1:


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user mtaylor commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @franz1981 nice one.  Did you test this against all our current supported databases?  Our CI currently doesn't cover DB tests.


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor Thanks! And good point: I need to do further tests with the different DBMS first :+1:


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis pull request #1691: ARTEMIS-1541 Make the JDBC Node Manager...

pgfox
In reply to this post by pgfox
Github user franz1981 closed the pull request at:

    https://github.com/apache/activemq-artemis/pull/1691


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis pull request #1691: ARTEMIS-1541 Make the JDBC Node Manager...

pgfox
In reply to this post by pgfox
GitHub user franz1981 reopened a pull request:

    https://github.com/apache/activemq-artemis/pull/1691

    ARTEMIS-1541 Make the JDBC Node Manager more resilient on failures

    In order to make the JDBC Node Manager more resilient has been implemented:
    - recovering with fixed number of retries during the NodeId setup + unrecoverable failure otherwise
    - unrecoverable fail on exceptions while renewing a lease lock
   
    In addition, in different parts of these critical processes are added more log informations to help diagnose.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/franz1981/activemq-artemis jdbc_ha_improvements

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/1691.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1691
   
----
commit 70b21725edae28b591b87bb4de0f51364e9cfd50
Author: Francesco Nigro <[hidden email]>
Date:   2017-12-06T10:28:59Z

    ARTEMIS-1541 Make the JDBC Node Manager more resilient on failures
   
    In order to make the JDBC Node Manager more resilient has been implemented:
    - recovering with fixed number of retries during the NodeId setup + unrecoverable failure otherwise
    - unrecoverable fail on exceptions while renewing a lease lock
   
    In addition, in different parts of these critical processes are added more log informations to help diagnose.

----


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor I've performed the failover tests on other DBMS and it is working as expected, but disabling the `ThreadLeakCheckRule` due to a "known" leak on the Oracle thin driver - the uninterruptible/unstoppable/unbreakable `oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser` thread:
    ```
    public void run() {
                    while(true) {
                        try {
                            BlockSource.ThreadedCachingBlockSource.BlockReleaser var1 = SOLE_INSTANCE;
                            synchronized(SOLE_INSTANCE) {
                                SOLE_INSTANCE.wait(300000L);
                            }
   
                            BlockSource.ThreadedCachingBlockSource.releaseFromAllSources();
                        } catch (Throwable var4) {
                            ;
                        }
                    }
                }
    ```



---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user mtaylor commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @franz1981 If you really can't kill it and the thread does not cause interference with other tests you can add an exception to the ThreadCheckerRule.  Which systems did you run the tests against?  It would be good to have this set up in the CI env.


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor
    > and the thread does not cause interference with other tests
   
    That's the part I'm sure of it: it seems that only a SIGKILL can close a process that has any of these threads running-
   
    > Which systems did you run the tests against?
   
    Do you mean which versions of which DBMS?
   
    > It would be good to have this set up in the CI env
   
    Considering that I'm not sure that is possible to kill gently the Oracle one, how do you propose to do that?
    eg The Oracle thin driver is not on maven AFAIK
   



---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user mtaylor commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    > Do you mean which versions of which DBMS?
    Yes.
   
    >  how do you propose to do that?
    Just add the driver to the class path and pass in the driver class parameter via system properties.  We do this for other JDBC tests


---
Reply | Threaded
Open this post in threaded view
|

[GitHub] activemq-artemis issue #1691: ARTEMIS-1541 Make the JDBC Node Manager more r...

pgfox
In reply to this post by pgfox
Github user franz1981 commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1691
 
    @mtaylor
    The DBMS I've tested are MySQL 5.7 and Oracle 12 c (and obviously Derby!).
    What I think it worths to do is improve the tests to make them more configurations with ease but I'm thinking to address it as a separate PR in order to not charge this one with other changes, wdyt?



---