BUILD FAILURE: Jackrabbit Oak - Build # 246 - Failure

2017-05-04 Thread Apache Jenkins Server
The Apache Jenkins build system has built Jackrabbit Oak (build #246)

Status: Failure

Check console output at https://builds.apache.org/job/Jackrabbit%20Oak/246/ to 
view the results.

Changes:
[chetanm] OAK-5558 - Consistency checker for Lucene indexes

Implemented support for testing based on CheckIndex utility from Lucene

[chetanm] OAK-5558 - Consistency checker for Lucene indexes

Implemented basic check which checks for all referred blobs being present and 
valid

 

Test results:
All tests passed

Sort order in MongoMissingLastRevSeeker

2017-05-04 Thread Marcel Reutegger

Hi,

I recently noticed the sort order in MongoMissingLastRevSeeker on 
_modified. The query sorts descending. I think this may be a problem 
given the isolation guarantees provides by MongoDB. See also discussion 
in OAK-4535.


In particular, I'm thinking of the following behaviour mentioned in the 
MongoDB documentation: "Reads may miss matching documents that are 
updated during the course of the read operation."


This happens when a query scans an index and a matching document is 
concurrently updated and moves from the front of the cursor to the part 
of the index that was already scanned. In this case MongoDB will not 
return the document even if it matched the query before and after the 
update.


Given the query in MongoMissingLastRevSeeker, it is quite likely MongoDB 
will scan the _modified index from (currently) newest to specified 
startTime. While doing this, a document may get updated, its index entry 
jumps over the cursor and becomes the newest entry in the index.


A can't really think of a reason why the sort order must be descending 
in MongoMissingLastRevSeeker. The base class doesn't specify a specific 
order.


Does anyone remember why this sort order is in place?

Regards
 Marcel


MongoMK failover behaviour.

2017-05-04 Thread Ian Boston
Hi,
What is the expected behaviour when a Oak MongoMK experiences a MongoDB
primary failure.

I am looking at an instance that appears to try and retry reads repeatedly
from the MongoDB primary and after 60s or more reports the Oak Discovery
lease has been lost, resulting in many minutes of retries there eventually
shutting down the repository.

I don't currently have the MongoDB logs to share. Just wondering what to
expect at this stage ?

I am starting from the assumption that Oak works perfectly in this regard.
Best Regards
Ian


Re: MongoMK failover behaviour.

2017-05-04 Thread Marcel Reutegger

Hi,

On 04/05/17 12:02, Ian Boston wrote:

What is the expected behaviour when a Oak MongoMK experiences a MongoDB
primary failure.

I am looking at an instance that appears to try and retry reads repeatedly
from the MongoDB primary and after 60s or more reports the Oak Discovery
lease has been lost, resulting in many minutes of retries there eventually
shutting down the repository.

I don't currently have the MongoDB logs to share. Just wondering what to
expect at this stage ?


Oak will stop the oak-core bundle if a MongoDB primary is unavailable 
for more than 110 seconds. The 110 seconds are based on the 120 seconds 
lease timeout and a lease update interval of 10 seconds.


When this happens, all reads and writes to the repository will fail. 
Though, in an OSGi environment services depending on oak-core should 
stop as well. You will need to restart the system or affected bundles 
once the primary is available again. See also discussion in OAK-3397 and 
OAK-3250.


Regards
 Marcel


Re: Sort order in MongoMissingLastRevSeeker

2017-05-04 Thread Chetan Mehrotra
On Thu, May 4, 2017 at 3:15 PM, Marcel Reutegger  wrote:
> A can't really think of a reason why the sort order must be descending in
> MongoMissingLastRevSeeker.

I also do not remember. I think it should be fine to drop the sort criteria.

Chetan Mehrotra


Re: MongoMK failover behaviour.

2017-05-04 Thread Ian Boston
Hi,

On 4 May 2017 at 11:26, Marcel Reutegger  wrote:

> Hi,
>
> On 04/05/17 12:02, Ian Boston wrote:
>
>> What is the expected behaviour when a Oak MongoMK experiences a MongoDB
>> primary failure.
>>
>> I am looking at an instance that appears to try and retry reads repeatedly
>> from the MongoDB primary and after 60s or more reports the Oak Discovery
>> lease has been lost, resulting in many minutes of retries there eventually
>> shutting down the repository.
>>
>> I don't currently have the MongoDB logs to share. Just wondering what to
>> expect at this stage ?
>>
>
> Oak will stop the oak-core bundle if a MongoDB primary is unavailable for
> more than 110 seconds. The 110 seconds are based on the 120 seconds lease
> timeout and a lease update interval of 10 seconds.
>

Yes, that happens after 120s.


Before 120 seconds, should the MongoDB Java driver route read queries to a
secondary and use the new primary without any action by Oak (eg closing a
connection and opening a new one ) ?

Best Regards
Ian


>
> When this happens, all reads and writes to the repository will fail.
> Though, in an OSGi environment services depending on oak-core should stop
> as well. You will need to restart the system or affected bundles once the
> primary is available again. See also discussion in OAK-3397 and OAK-3250.
>
> Regards
>  Marcel
>


Re: MongoMK failover behaviour.

2017-05-04 Thread Marcel Reutegger

Hi,

On 04/05/17 14:57, Ian Boston wrote:

Before 120 seconds, should the MongoDB Java driver route read queries to a
secondary and use the new primary without any action by Oak (eg closing a
connection and opening a new one ) ?


Yes, the MongoDB Java driver automatically routes queries based on their 
required read preference. The failover is automatic and the driver 
should direct queries to the new primary once available. Connection 
pooling is done by the driver. Oak does not manage those.


Regards
 Marcel


Re: MongoMK failover behaviour.

2017-05-04 Thread Ian Boston
Hi,

On 4 May 2017 at 15:19, Marcel Reutegger  wrote:

> Hi,
>
> On 04/05/17 14:57, Ian Boston wrote:
>
>> Before 120 seconds, should the MongoDB Java driver route read queries to a
>> secondary and use the new primary without any action by Oak (eg closing a
>> connection and opening a new one ) ?
>>
>
> Yes, the MongoDB Java driver automatically routes queries based on their
> required read preference. The failover is automatic and the driver should
> direct queries to the new primary once available. Connection pooling is
> done by the driver. Oak does not manage those.
>

Thanks.
Looks like there might be a problem with the MongoDB deployment in the case
I am looking at. Either due to performance or misconfiguration. Dropping a
primary results in read queries failing and after 120s the Oak repositories
shutdown as they are not able to write. All that points to the MongoDB
driver config, or the MongoDB instances and not Oak.

Best Regards
Ian


>
> Regards
>  Marcel
>


Re: MongoMK failover behaviour.

2017-05-04 Thread Marcel Reutegger

Hi,

On 04/05/17 16:35, Ian Boston wrote:

Looks like there might be a problem with the MongoDB deployment in the case
I am looking at. Either due to performance or misconfiguration. Dropping a
primary results in read queries failing and after 120s the Oak repositories
shutdown as they are not able to write. All that points to the MongoDB
driver config, or the MongoDB instances and not Oak.


Hmm, depending on the Oak version, this may also be caused by OAK-5528. 
The current fix versions are 1.4.15 and 1.6.0.


Regards
 Marcel


Re: MongoMK failover behaviour.

2017-05-04 Thread Justin Edelson
Hi,

On Thu, May 4, 2017 at 10:46 AM Marcel Reutegger  wrote:

> Hi,
>
> On 04/05/17 16:35, Ian Boston wrote:
> > Looks like there might be a problem with the MongoDB deployment in the
> case
> > I am looking at. Either due to performance or misconfiguration. Dropping
> a
> > primary results in read queries failing and after 120s the Oak
> repositories
> > shutdown as they are not able to write. All that points to the MongoDB
> > driver config, or the MongoDB instances and not Oak.
>
> Hmm, depending on the Oak version, this may also be caused by OAK-5528.
> The current fix versions are 1.4.15 and 1.6.0.
>

Would this show up in thread dumps? Based on the description, it seems like
it should.

Regards,
Justin




>
> Regards
>   Marcel
>


BUILD FAILURE: Jackrabbit Oak - Build # 253 - Failure

2017-05-04 Thread Apache Jenkins Server
The Apache Jenkins build system has built Jackrabbit Oak (build #253)

Status: Failure

Check console output at https://builds.apache.org/job/Jackrabbit%20Oak/253/ to 
view the results.

Changes:
[angela] OAK-5882 : Improve coverage for oak.security code in oak-core

 

Test results:
1 tests failed.
FAILED:  
org.apache.jackrabbit.oak.plugins.document.VersionGCTest.gcMonitorStatusUpdates

Error Message:
expected:<[INITIALIZING, COLLECTING, UPDATING, SPLITS_CLEANUP, IDLE]> but 
was:<[INITIALIZING, COLLECTING, CHECKING, COLLECTING, DELETING, SORTING, 
DELETING, UPDATING, SPLITS_CLEANUP, IDLE]>

Stack Trace:
java.lang.AssertionError: expected:<[INITIALIZING, COLLECTING, UPDATING, 
SPLITS_CLEANUP, IDLE]> but was:<[INITIALIZING, COLLECTING, CHECKING, 
COLLECTING, DELETING, SORTING, DELETING, UPDATING, SPLITS_CLEANUP, IDLE]>
at 
org.apache.jackrabbit.oak.plugins.document.VersionGCTest.gcMonitorStatusUpdates(VersionGCTest.java:207)

[ANNOUNCE] Apache Jackrabbit 2.15.2 released

2017-05-04 Thread Julian Reschke

The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit 2.15.2. The release is available for download at:

https://jackrabbit.apache.org/jcr/downloads.html#v2.15

See the full release notes below for details about this release:

Release Notes -- Apache Jackrabbit -- Version 2.15.2

Introduction


This is Apache Jackrabbit(TM) 2.15.2, a fully compliant implementation 
of the

Content Repository for Java(TM) Technology API, version 2.0 (JCR 2.0) as
specified in the Java Specification Request 283 (JSR 283).

Apache Jackrabbit 2.15.2 is an unstable release cut directly from
Jackrabbit trunk, with a focus on new features and other
improvements. For production use we recommend the latest stable 2.14.x
release.

Changes in Jackrabbit 2.15.2


Bug

[JCR-4118] - RepositoryChecker creates invalid node names
[JCR-4121] - ConcurrentModificationException in 
InternalVersionHistoryImpl.fixLegacy()

[JCR-4133] - fix javadoc problems that are errors with JDK8

Task

[JCR-4112] - Require Java 8
[JCR-4119] - Upgrade httpcomponents/httpmime to 4.5.3
[JCR-4122] - align parent pom references with Oak
[JCR-4127] - update to latest apache parent pom (18)
[JCR-4128] - update maven plugins and require Maven 3.2.1
[JCR-4129] - get rid of unused org.json dependency

In addition to the above-mentioned changes, this release contains
all the changes included up to the Apache Jackrabbit 2.14.x release.

For more detailed information about all the changes in this and other
Jackrabbit releases, please see the Jackrabbit issue tracker at

https://issues.apache.org/jira/browse/JCR

Release Contents


This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.txt file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at
https://svn.apache.org/repos/asf/jackrabbit/dist/KEYS.

About Apache Jackrabbit
---

Apache Jackrabbit is a fully conforming implementation of the Content
Repository for Java Technology API (JCR). A content repository is a
hierarchical content store with support for structured and unstructured
content, full text search, versioning, transactions, observation, and
more.

For more information, visit http://jackrabbit.apache.org/

About The Apache Software Foundation


Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 140 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 3,800+ contributors.

For more information, visit http://www.apache.org/

Trademarks
--

Apache Jackrabbit, Jackrabbit, Apache, the Apache feather logo, and the 
Apache

Jackrabbit project logo are trademarks of The Apache Software Foundation.