[jira] [Created] (OAK-5980) Bad Join Query Plan Used

2017-03-24 Thread Thomas Mueller (JIRA)
Thomas Mueller created OAK-5980:
---

 Summary: Bad Join Query Plan Used
 Key: OAK-5980
 URL: https://issues.apache.org/jira/browse/OAK-5980
 Project: Jackrabbit Oak
  Issue Type: Bug
  Components: query
Reporter: Thomas Mueller
Assignee: Thomas Mueller
 Fix For: 1.8


For a join query, where selectors are joined over ischildnode but also can use 
an index,
the selectors sometimes use the index instead of the much less
expensive parent join. Example:

{noformat}
select [a].* from [nt:unstructured] as [a]
inner join [nt:unstructured] as [b] on ischildnode([b], [a]) 
inner join [nt:unstructured] as [c] on ischildnode([c], [b]) 
inner join [nt:unstructured] as [d] on ischildnode([d], [c]) 
inner join [nt:unstructured] as [e] on ischildnode([e], [d]) 
where [a].[classname] = 'letter' 
and isdescendantnode([a], '/content') 
and [c].[classname] = 'chapter' 
and localname([b]) = 'chapters' 
and [e].[classname] = 'list' 
and localname([d]) = 'lists' 
and [e].[path] = cast('/content/abc' as path)
{noformat}

The order of selectors is sometimes wrong (not e, d, c, b, a), but
more importantly, selectors c and a use the index on className.




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5981) Oak-Segment version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)
Alex Parvulescu created OAK-5981:


 Summary: Oak-Segment version check with disabled mmaping
 Key: OAK-5981
 URL: https://issues.apache.org/jira/browse/OAK-5981
 Project: Jackrabbit Oak
  Issue Type: Technical task
Reporter: Alex Parvulescu






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5981) Oak-Segment version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5981:
-
Fix Version/s: 1.6.2

> Oak-Segment version check with disabled mmaping
> ---
>
> Key: OAK-5981
> URL: https://issues.apache.org/jira/browse/OAK-5981
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segment-tar
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5979) FileStore version check should disable memory mapping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5979:
-
Component/s: run

> FileStore version check should disable memory mapping
> -
>
> Key: OAK-5979
> URL: https://issues.apache.org/jira/browse/OAK-5979
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: run, segment-tar, segmentmk
>Affects Versions: 1.4.15, 1.6.1
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
>  Labels: candidate_oak_1_4, candidate_oak_1_6
> Fix For: 1.7.0
>
>
> As 
> [discussed|https://lists.apache.org/thread.html/6a3f6cbc9169cfb70e56557fc49acf4ee62e37badc3f09a9b558fd7e@%3Coak-dev.jackrabbit.apache.org%3E]
>  on oak-dev list, using memory mapping for this check can cause issues with 
> collecting the unreferenced files, effectively doubling the size of the 
> virtual memory mapped for the repository.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5981) Oak-Segment version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5981:
-
Component/s: (was: segmentmk)
 run

> Oak-Segment version check with disabled mmaping
> ---
>
> Key: OAK-5981
> URL: https://issues.apache.org/jira/browse/OAK-5981
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segment-tar
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (OAK-5981) Oak-Segment version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu reassigned OAK-5981:


Assignee: Alex Parvulescu

> Oak-Segment version check with disabled mmaping
> ---
>
> Key: OAK-5981
> URL: https://issues.apache.org/jira/browse/OAK-5981
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segment-tar
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5981) Oak-Segment version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu resolved OAK-5981.
--
Resolution: Fixed

fixed on trunk with http://svn.apache.org/viewvc?rev=1788378&view=rev
and on 1.6 with http://svn.apache.org/viewvc?rev=1788379&view=rev

these changes are only on oak-run and affect a single command, the datastore 
consistency check.

> Oak-Segment version check with disabled mmaping
> ---
>
> Key: OAK-5981
> URL: https://issues.apache.org/jira/browse/OAK-5981
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segment-tar
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5981) SegmentTar version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5981:
-
Summary: SegmentTar version check with disabled mmaping  (was: Oak-Segment 
version check with disabled mmaping)

> SegmentTar version check with disabled mmaping
> --
>
> Key: OAK-5981
> URL: https://issues.apache.org/jira/browse/OAK-5981
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segment-tar
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5982) SegmentMk version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)
Alex Parvulescu created OAK-5982:


 Summary: SegmentMk version check with disabled mmaping
 Key: OAK-5982
 URL: https://issues.apache.org/jira/browse/OAK-5982
 Project: Jackrabbit Oak
  Issue Type: Technical task
  Components: run, segmentmk
Reporter: Alex Parvulescu
Assignee: Alex Parvulescu






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5982) SegmentMk version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5982:
-
Fix Version/s: (was: 1.7.0)
   1.6.2
   1.4.15

> SegmentMk version check with disabled mmaping
> -
>
> Key: OAK-5982
> URL: https://issues.apache.org/jira/browse/OAK-5982
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segmentmk
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.4.15, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5982) SegmentMk version check with disabled mmaping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu resolved OAK-5982.
--
Resolution: Fixed

Changes are only on oak-run.

Due to the fact that SegmentMk was removed from trunk I was obligated to fix 
the branches directly (1.6 and 1.4, backporting was also not an option):
  fixed on 1.6 http://svn.apache.org/viewvc?rev=1788382&view=rev
  fixed on 1.4 http://svn.apache.org/viewvc?rev=1788384&view=rev



> SegmentMk version check with disabled mmaping
> -
>
> Key: OAK-5982
> URL: https://issues.apache.org/jira/browse/OAK-5982
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: run, segmentmk
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.4.15, 1.6.2
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5979) FileStore version check should disable memory mapping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu resolved OAK-5979.
--
Resolution: Fixed

subtasks are done and backported

> FileStore version check should disable memory mapping
> -
>
> Key: OAK-5979
> URL: https://issues.apache.org/jira/browse/OAK-5979
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: run, segment-tar, segmentmk
>Affects Versions: 1.4.15, 1.6.1
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0
>
>
> As 
> [discussed|https://lists.apache.org/thread.html/6a3f6cbc9169cfb70e56557fc49acf4ee62e37badc3f09a9b558fd7e@%3Coak-dev.jackrabbit.apache.org%3E]
>  on oak-dev list, using memory mapping for this check can cause issues with 
> collecting the unreferenced files, effectively doubling the size of the 
> virtual memory mapped for the repository.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5979) FileStore version check should disable memory mapping

2017-03-24 Thread Alex Parvulescu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Parvulescu updated OAK-5979:
-
Labels:   (was: candidate_oak_1_4 candidate_oak_1_6)

> FileStore version check should disable memory mapping
> -
>
> Key: OAK-5979
> URL: https://issues.apache.org/jira/browse/OAK-5979
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: run, segment-tar, segmentmk
>Affects Versions: 1.4.15, 1.6.1
>Reporter: Alex Parvulescu
>Assignee: Alex Parvulescu
> Fix For: 1.7.0
>
>
> As 
> [discussed|https://lists.apache.org/thread.html/6a3f6cbc9169cfb70e56557fc49acf4ee62e37badc3f09a9b558fd7e@%3Coak-dev.jackrabbit.apache.org%3E]
>  on oak-dev list, using memory mapping for this check can cause issues with 
> collecting the unreferenced files, effectively doubling the size of the 
> virtual memory mapped for the repository.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-4933) Create a data store implementation that integrates with Microsoft Azure Blob Storage

2017-03-24 Thread Amit Jain (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940057#comment-15940057
 ] 

Amit Jain commented on OAK-4933:


[~rhudea] Thanks a lot for your contribution! 
Thanks [~mattvryan] for inital work and review.

Committed the changes with some minor modifications (those are required for s3 
as well).
* oak-blob-cloud-azure - http://svn.apache.org/viewvc?rev=1788387&view=rev
* oak-it changes - http://svn.apache.org/viewvc?rev=1788388&view=rev
* oak-run changes - http://svn.apache.org/viewvc?rev=1788389&view=rev

> Create a data store implementation that integrates with Microsoft Azure Blob 
> Storage
> 
>
> Key: OAK-4933
> URL: https://issues.apache.org/jira/browse/OAK-4933
> Project: Jackrabbit Oak
>  Issue Type: Epic
>  Components: blob, core
>Reporter: Matt Ryan
>Assignee: Amit Jain
> Attachments: OAK-4933-v5.patch
>
>
> This epic proposes the creation of a new type of Oak data store, 
> AzureDataStore, that offers an integration between Oak and Microsoft Azure 
> Blob Storage.  AzureDataStore would be very similar in purpose and 
> functionality to S3DataStore, with a different backend that uses Azure Blob 
> Storage instead of S3.
> Some initial exploration into this concept can be seen in my github here:  
> https://github.com/mattvryan/jackrabbit-oak/tree/azure-blob-store
> More info about Azure Blob Storage:
> * [Java 
> SDK|https://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-blob-storage/]
> * [Javadoc|http://azure.github.io/azure-storage-java/]
> * [Source|https://github.com/azure/azure-storage-java] (GitHub) - Microsoft's 
> Azure Storage Java SDK is open source and Apache licensed
> * [Package 
> info|https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage] on 
> mvnrepository.com
> As I see it, the following work would be required:
> * Create an AzureDataStore class that extends CachingDataStore
> * Create a new backend for Azure Blob Storage
> * Comprehensive unit testing of the new data store and backend classes
> * Create test "mocks" for the necessary Azure Storage classes to facilitate 
> unit testing (they are all final classes and cannot be mocked directly)
> * Create SharedAzureDataStore class
> * Create AzureDataStoreService class
> * Implement similar JMX metrics as exist for S3DataStore
> * Combine and refactor existing Oak code with newly added code to make best 
> reuse of existing code, etc.
> * Integration testing with system configured with AzureDataStore, comparison 
> w/ S3DataStore in terms of performance and correctness
> * Modify Azure Storage SDK code to make it into a valid OSGi bundle, and 
> submit these changes back to that project (currently it is not an OSGi bundle 
> and therefore currently has to be embedded)
> List isn't purported to be comprehensive of course.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-4933) Create a data store implementation that integrates with Microsoft Azure Blob Storage

2017-03-24 Thread Amit Jain (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amit Jain resolved OAK-4933.

   Resolution: Fixed
Fix Version/s: 1.8
   1.7.0

> Create a data store implementation that integrates with Microsoft Azure Blob 
> Storage
> 
>
> Key: OAK-4933
> URL: https://issues.apache.org/jira/browse/OAK-4933
> Project: Jackrabbit Oak
>  Issue Type: Epic
>  Components: blob, core
>Reporter: Matt Ryan
>Assignee: Amit Jain
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-4933-v5.patch
>
>
> This epic proposes the creation of a new type of Oak data store, 
> AzureDataStore, that offers an integration between Oak and Microsoft Azure 
> Blob Storage.  AzureDataStore would be very similar in purpose and 
> functionality to S3DataStore, with a different backend that uses Azure Blob 
> Storage instead of S3.
> Some initial exploration into this concept can be seen in my github here:  
> https://github.com/mattvryan/jackrabbit-oak/tree/azure-blob-store
> More info about Azure Blob Storage:
> * [Java 
> SDK|https://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-blob-storage/]
> * [Javadoc|http://azure.github.io/azure-storage-java/]
> * [Source|https://github.com/azure/azure-storage-java] (GitHub) - Microsoft's 
> Azure Storage Java SDK is open source and Apache licensed
> * [Package 
> info|https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage] on 
> mvnrepository.com
> As I see it, the following work would be required:
> * Create an AzureDataStore class that extends CachingDataStore
> * Create a new backend for Azure Blob Storage
> * Comprehensive unit testing of the new data store and backend classes
> * Create test "mocks" for the necessary Azure Storage classes to facilitate 
> unit testing (they are all final classes and cannot be mocked directly)
> * Create SharedAzureDataStore class
> * Create AzureDataStoreService class
> * Implement similar JMX metrics as exist for S3DataStore
> * Combine and refactor existing Oak code with newly added code to make best 
> reuse of existing code, etc.
> * Integration testing with system configured with AzureDataStore, comparison 
> w/ S3DataStore in terms of performance and correctness
> * Modify Azure Storage SDK code to make it into a valid OSGi bundle, and 
> submit these changes back to that project (currently it is not an OSGi bundle 
> and therefore currently has to be embedded)
> List isn't purported to be comprehensive of course.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5971) Offline compaction corrupts the journal

2017-03-24 Thread Andrei Dulceanu (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrei Dulceanu updated OAK-5971:
-
Attachment: OAK-5971-02.patch

I came up with a simple test case in which a blob is added, then removed and 
offline compaction is called. The test asserts there's only one valid entry in 
the journal and that the size after compaction is less than the size before 
compaction.

[~alexparvulescu], could you take a look at it, please?

> Offline compaction corrupts the journal
> ---
>
> Key: OAK-5971
> URL: https://issues.apache.org/jira/browse/OAK-5971
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: segment-tar
>Reporter: Alex Parvulescu
>Assignee: Andrei Dulceanu
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5971-02.patch, OAK-5971.patch
>
>
> Seems offline compaction corrupts the journal by persisting an illegal value 
> as the head state.
> Pre Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> 244b31cd-031d-48f2-ac64-d196ebccb43a:625 root 1490200945396
> accca99a-8829-4e16-a158-c75c08d92252:1580 root 1490200951316
> b188d865-9e26-4263-a9f1-5db3de9e8bfa:1724 root 1490200955354
> {noformat}
> Post Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> org.apache.jackrabbit.oak.segment.file.JournalEntry@f2680686 root 
> 1490201167938
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5983) BlobGC should log the amount of space reclaimed after GC run is done

2017-03-24 Thread Chetan Mehrotra (JIRA)
Chetan Mehrotra created OAK-5983:


 Summary: BlobGC should log the amount of space reclaimed after GC 
run is done
 Key: OAK-5983
 URL: https://issues.apache.org/jira/browse/OAK-5983
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: blob
Reporter: Chetan Mehrotra
 Fix For: 1.8


Currently BlobGC logic reports the number of blobs removed

{noformat}
24.03.2017 12:33:33.120 *INFO* [sling-oak-observation-205] 
org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector Blob garbage 
collection completed in 16.76 s. Number of blobs deleted [1776] with max 
modification time of [2017-03-23 12:33:16.373]
{noformat}

It would helpful it can also report the size reclaimed by deleted those blobs



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5983) BlobGC should log the amount of space reclaimed after GC run is done

2017-03-24 Thread Chetan Mehrotra (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940189#comment-15940189
 ] 

Chetan Mehrotra commented on OAK-5983:
--

Currently in all cases blobId also encode the blob length. So it should be 
possible to get this information without any extra cost. We can use the 
{{BlobStore#getBlobLength}} for that or introduce a new method which gurantees 
that length is calculated without doing any remote call. 

[~amitjain] Thoughts?

> BlobGC should log the amount of space reclaimed after GC run is done
> 
>
> Key: OAK-5983
> URL: https://issues.apache.org/jira/browse/OAK-5983
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: blob
>Reporter: Chetan Mehrotra
> Fix For: 1.8
>
>
> Currently BlobGC logic reports the number of blobs removed
> {noformat}
> 24.03.2017 12:33:33.120 *INFO* [sling-oak-observation-205] 
> org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector Blob garbage 
> collection completed in 16.76 s. Number of blobs deleted [1776] with max 
> modification time of [2017-03-23 12:33:16.373]
> {noformat}
> It would helpful it can also report the size reclaimed by deleted those blobs



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5520) Improve index and query documentation

2017-03-24 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940192#comment-15940192
 ] 

Thomas Mueller commented on OAK-5520:
-

http://svn.apache.org/r1788415: Troubleshooting

> Improve index and query documentation
> -
>
> Key: OAK-5520
> URL: https://issues.apache.org/jira/browse/OAK-5520
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene, query
>Reporter: Thomas Mueller
>Assignee: Thomas Mueller
> Fix For: 1.7.0
>
>
> The Oak index and query documentation needs to be improved:
> * step-by-step descriptions of how to fix problems (for example from slow 
> queries to fast queries)
> * checklists
> * index corruption vs merely _perceive_ corruption
> * checkpoints
> * text extraction
> * link to tools, such as the Oak Lucene Index Definition Generator at 
> http://oakutils.appspot.com/generate/index
> * indexing and reindex: when it is needed and how to do it, how long does it 
> take, how to stop
> * document currently undocumented features (for example Lucene index, 
> notNullCheckEnabled)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940216#comment-15940216
 ] 

Julian Reschke commented on OAK-5528:
-

Good question, will check.

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4859) Warn if lease update is invoked with large delay

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4859:

Labels: candidate_oak_1_4  (was: )

> Warn if lease update is invoked with large delay
> 
>
> Key: OAK-4859
> URL: https://issues.apache.org/jira/browse/OAK-4859
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: documentmk
>Affects Versions: 1.5.10
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>  Labels: candidate_oak_1_4
> Fix For: 1.5.13, 1.6.0
>
>
> DocumentMk's lease mechanism is built on the assumption that the lease is 
> periodically updated by each instance. If the update doesn't happen within a 
> certain time - and the instance hasn't crashed - there's the risk of the own 
> lease to fail. It is therefore important that the lease update happens 
> without (large) delay according to the configured period.
> One pattern where this doesn't happen is when the VM is under heavy load due 
> to JVM-Full-GC cycles. It seems likely that a memory problem doesn't normally 
> happen instantly, but slowly builds up. Based on this assumption we could 
> introduce a check that compares the actual time since last lease update with 
> the desired period. If these two diverge _a lot_ then we can at least issue a 
> log.warn. This might help to easier identify this type of lease failures and 
> perhaps find root causes earlier/easier.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940216#comment-15940216
 ] 

Julian Reschke edited comment on OAK-5528 at 3/24/17 12:29 PM:
---

bq.  Are they any code dependencies that requires us to backport more changes?

Good point. Turns out we should backport OAK-4859 first; I'll assume I can go 
ahead with that as it only affects logging.


was (Author: reschke):
Good question, will check.

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5222) Optimize the multiplexing node store

2017-03-24 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-5222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tomek Rękawek updated OAK-5222:
---
Fix Version/s: 1.7.0

> Optimize the multiplexing node store
> 
>
> Key: OAK-5222
> URL: https://issues.apache.org/jira/browse/OAK-5222
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5222-1.patch, results1.png
>
>
> I added support for the multiplexing node store for the oak-run benchmark 
> fixtures. It seems that the performance in ReadDeepTreeTest is linearly 
> dependent on the mount counts:
> {noformat}
> MountsN
> 0 729
> 1 402
> 2 287
> 3 209
> 4 188
> 5 154
> 6 133
> 7 126
> 8 104
> 9 100
> 1085
> 2046
> {noformat}
> {{N}} - throughput in 60 seconds. Following command was used:
> {noformat}
> $ java -jar target/oak-run-1.6-SNAPSHOT.jar benchmark ReadDeepTreeTest 
> Oak-Multiplexing --mounts=10
> {noformat}
> It should be possible to improve this, so we won't have a noticeable 
> performance decrease for 1000 mounts.
> //cc: [~rombert]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5222) Optimize the multiplexing node store

2017-03-24 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-5222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tomek Rękawek resolved OAK-5222.

Resolution: Fixed

> Optimize the multiplexing node store
> 
>
> Key: OAK-5222
> URL: https://issues.apache.org/jira/browse/OAK-5222
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Tomek Rękawek
>Assignee: Tomek Rękawek
> Fix For: 1.8
>
> Attachments: OAK-5222-1.patch, results1.png
>
>
> I added support for the multiplexing node store for the oak-run benchmark 
> fixtures. It seems that the performance in ReadDeepTreeTest is linearly 
> dependent on the mount counts:
> {noformat}
> MountsN
> 0 729
> 1 402
> 2 287
> 3 209
> 4 188
> 5 154
> 6 133
> 7 126
> 8 104
> 9 100
> 1085
> 2046
> {noformat}
> {{N}} - throughput in 60 seconds. Following command was used:
> {noformat}
> $ java -jar target/oak-run-1.6-SNAPSHOT.jar benchmark ReadDeepTreeTest 
> Oak-Multiplexing --mounts=10
> {noformat}
> It should be possible to improve this, so we won't have a noticeable 
> performance decrease for 1000 mounts.
> //cc: [~rombert]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4859) Warn if lease update is invoked with large delay

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4859:

Labels: candidate_oak_1_0 candidate_oak_1_2 candidate_oak_1_4  (was: 
candidate_oak_1_4)

> Warn if lease update is invoked with large delay
> 
>
> Key: OAK-4859
> URL: https://issues.apache.org/jira/browse/OAK-4859
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: documentmk
>Affects Versions: 1.5.10
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.5.13, 1.6.0
>
>
> DocumentMk's lease mechanism is built on the assumption that the lease is 
> periodically updated by each instance. If the update doesn't happen within a 
> certain time - and the instance hasn't crashed - there's the risk of the own 
> lease to fail. It is therefore important that the lease update happens 
> without (large) delay according to the configured period.
> One pattern where this doesn't happen is when the VM is under heavy load due 
> to JVM-Full-GC cycles. It seems likely that a memory problem doesn't normally 
> happen instantly, but slowly builds up. Based on this assumption we could 
> introduce a check that compares the actual time since last lease update with 
> the desired period. If these two diverge _a lot_ then we can at least issue a 
> log.warn. This might help to easier identify this type of lease failures and 
> perhaps find root causes earlier/easier.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4770) Missing exception handling in ClusterNodeInfo.renewLease()

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4770:

Labels: candidate_oak_1_0 candidate_oak_1_2 resilience  (was: resilience)

> Missing exception handling in ClusterNodeInfo.renewLease()
> --
>
> Key: OAK-4770
> URL: https://issues.apache.org/jira/browse/OAK-4770
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core, documentmk
>Reporter: Marcel Reutegger
>Assignee: Marcel Reutegger
>  Labels: candidate_oak_1_0, candidate_oak_1_2, resilience
> Fix For: 1.4.10, 1.5.10, 1.6.0
>
>
> ClusterNodeInfo.renewLease() does not handle a potential 
> DocumentStoreException on {{findAndModify()}}. This may leave 
> {{previousLeaseEndTime}} in an inconsistent state and a subsequent 
> {{renewLease()}} call then considers the lease timed out. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5971) Offline compaction corrupts the journal

2017-03-24 Thread Alex Parvulescu (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940267#comment-15940267
 ] 

Alex Parvulescu commented on OAK-5971:
--

bq .I came up with a simple test case in which a blob is added, then removed 
and offline compaction is called. The test asserts there's only one valid entry 
in the journal and that the size after compaction is less than the size before 
compaction.
Oh, that's too much overhead for this specific issue (I can't see how the size 
of the repo is relevant here). You can augment an existing offline compaction 
test and simply focus on checking the journal is not getting corrupted (ie. 
start with CompactionAndCleanupIT#offlineCompaction).

> Offline compaction corrupts the journal
> ---
>
> Key: OAK-5971
> URL: https://issues.apache.org/jira/browse/OAK-5971
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: segment-tar
>Reporter: Alex Parvulescu
>Assignee: Andrei Dulceanu
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5971-02.patch, OAK-5971.patch
>
>
> Seems offline compaction corrupts the journal by persisting an illegal value 
> as the head state.
> Pre Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> 244b31cd-031d-48f2-ac64-d196ebccb43a:625 root 1490200945396
> accca99a-8829-4e16-a158-c75c08d92252:1580 root 1490200951316
> b188d865-9e26-4263-a9f1-5db3de9e8bfa:1724 root 1490200955354
> {noformat}
> Post Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> org.apache.jackrabbit.oak.segment.file.JournalEntry@f2680686 root 
> 1490201167938
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4859) Warn if lease update is invoked with large delay

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4859:

Fix Version/s: 1.4.15

> Warn if lease update is invoked with large delay
> 
>
> Key: OAK-4859
> URL: https://issues.apache.org/jira/browse/OAK-4859
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: documentmk
>Affects Versions: 1.5.10
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.5.13, 1.6.0
>
>
> DocumentMk's lease mechanism is built on the assumption that the lease is 
> periodically updated by each instance. If the update doesn't happen within a 
> certain time - and the instance hasn't crashed - there's the risk of the own 
> lease to fail. It is therefore important that the lease update happens 
> without (large) delay according to the configured period.
> One pattern where this doesn't happen is when the VM is under heavy load due 
> to JVM-Full-GC cycles. It seems likely that a memory problem doesn't normally 
> happen instantly, but slowly builds up. Based on this assumption we could 
> introduce a check that compares the actual time since last lease update with 
> the desired period. If these two diverge _a lot_ then we can at least issue a 
> log.warn. This might help to easier identify this type of lease failures and 
> perhaps find root causes earlier/easier.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4859) Warn if lease update is invoked with large delay

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4859:

Labels: candidate_oak_1_0 candidate_oak_1_2  (was: candidate_oak_1_0 
candidate_oak_1_2 candidate_oak_1_4)

> Warn if lease update is invoked with large delay
> 
>
> Key: OAK-4859
> URL: https://issues.apache.org/jira/browse/OAK-4859
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: documentmk
>Affects Versions: 1.5.10
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.5.13, 1.6.0
>
>
> DocumentMk's lease mechanism is built on the assumption that the lease is 
> periodically updated by each instance. If the update doesn't happen within a 
> certain time - and the instance hasn't crashed - there's the risk of the own 
> lease to fail. It is therefore important that the lease update happens 
> without (large) delay according to the configured period.
> One pattern where this doesn't happen is when the VM is under heavy load due 
> to JVM-Full-GC cycles. It seems likely that a memory problem doesn't normally 
> happen instantly, but slowly builds up. Based on this assumption we could 
> introduce a check that compares the actual time since last lease update with 
> the desired period. If these two diverge _a lot_ then we can at least issue a 
> log.warn. This might help to easier identify this type of lease failures and 
> perhaps find root causes earlier/easier.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-4859) Warn if lease update is invoked with large delay

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940280#comment-15940280
 ] 

Julian Reschke commented on OAK-4859:
-

trunk: [r1767502|http://svn.apache.org/r1767502]
1.4: [r1788434|http://svn.apache.org/r1788434]


> Warn if lease update is invoked with large delay
> 
>
> Key: OAK-4859
> URL: https://issues.apache.org/jira/browse/OAK-4859
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: documentmk
>Affects Versions: 1.5.10
>Reporter: Stefan Egli
>Assignee: Stefan Egli
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.5.13, 1.6.0
>
>
> DocumentMk's lease mechanism is built on the assumption that the lease is 
> periodically updated by each instance. If the update doesn't happen within a 
> certain time - and the instance hasn't crashed - there's the risk of the own 
> lease to fail. It is therefore important that the lease update happens 
> without (large) delay according to the configured period.
> One pattern where this doesn't happen is when the VM is under heavy load due 
> to JVM-Full-GC cycles. It seems likely that a memory problem doesn't normally 
> happen instantly, but slowly builds up. Based on this assumption we could 
> introduce a check that compares the actual time since last lease update with 
> the desired period. If these two diverge _a lot_ then we can at least issue a 
> log.warn. This might help to easier identify this type of lease failures and 
> perhaps find root causes earlier/easier.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940216#comment-15940216
 ] 

Julian Reschke edited comment on OAK-5528 at 3/24/17 1:19 PM:
--

bq.  Are they any code dependencies that requires us to backport more changes?

Good point. Turns out we should backport OAK-4859 first; I'll assume I can go 
ahead with that as it only affects logging.

Another tiny conflict is due to OAK-4184, which I believe we do not want to 
backport?


was (Author: reschke):
bq.  Are they any code dependencies that requires us to backport more changes?

Good point. Turns out we should backport OAK-4859 first; I'll assume I can go 
ahead with that as it only affects logging.

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2, candidate_oak_1_4
> Fix For: 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5971) Offline compaction corrupts the journal

2017-03-24 Thread Andrei Dulceanu (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940336#comment-15940336
 ] 

Andrei Dulceanu commented on OAK-5971:
--

bq. I can't see how the size of the repo is relevant here.
Right, I was thinking the same, but since I was checking the validity of the 
journal, I said to check also the size after compaction. I can remove the size 
check to simplify the test case.

bq. You can augment an existing offline compaction test and simply focus on 
checking the journal is not getting corrupted.
Initially I tried the same, but then I realised that the bug happened only for 
calls to {{Compact#compact}} [1] which rewrites the {{journal}} to contain only 
the head revision. Augmenting an offline compaction IT won't prevent breaking 
{{oak-run compact}} since it deals only with updating the {{journal}} from 
{{TarRevisions#doFlush}} [2]. In turn this is successfully tested by 
{{TarRevisionsTest}} [3].

[1] 
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/Compact.java#L123
[2] 
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarRevisions.java#L215
[3] 
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java

> Offline compaction corrupts the journal
> ---
>
> Key: OAK-5971
> URL: https://issues.apache.org/jira/browse/OAK-5971
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: segment-tar
>Reporter: Alex Parvulescu
>Assignee: Andrei Dulceanu
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5971-02.patch, OAK-5971.patch
>
>
> Seems offline compaction corrupts the journal by persisting an illegal value 
> as the head state.
> Pre Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> 244b31cd-031d-48f2-ac64-d196ebccb43a:625 root 1490200945396
> accca99a-8829-4e16-a158-c75c08d92252:1580 root 1490200951316
> b188d865-9e26-4263-a9f1-5db3de9e8bfa:1724 root 1490200955354
> {noformat}
> Post Compaction:
> {noformat}
> ~ head segmentstore/journal.log 
> org.apache.jackrabbit.oak.segment.file.JournalEntry@f2680686 root 
> 1490201167938
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5528:

Fix Version/s: 1.4.15

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5528:

Labels: candidate_oak_1_0 candidate_oak_1_2  (was: candidate_oak_1_0 
candidate_oak_1_2 candidate_oak_1_4)

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940338#comment-15940338
 ] 

Julian Reschke commented on OAK-5528:
-

trunk: [r1780424|http://svn.apache.org/r1780424]
1.4: [r1788441|http://svn.apache.org/r1788441]


> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Issue Comment Deleted] (OAK-5528) leaseUpdateThread might be blocked by leaseUpdateCheck

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5528:

Comment: was deleted

(was: trunk: [r1780424|http://svn.apache.org/r1780424]
)

> leaseUpdateThread might be blocked by leaseUpdateCheck
> --
>
> Key: OAK-5528
> URL: https://issues.apache.org/jira/browse/OAK-5528
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.4, 1.5.14
>Reporter: Stefan Eissing
>Assignee: Julian Reschke
>  Labels: candidate_oak_1_0, candidate_oak_1_2
> Fix For: 1.4.15, 1.6.0
>
> Attachments: OAK-5446.diff, OAK-5446-jr.diff, [#OAK-5446] 
> leaseUpdateThread might be blocked by leaseUpdateCheck.html, 
> OAK-5446.testcase, OAK-5446.testcase.v3, OAK-5446.xml
>
>
> {color:red}
> cloned from OAK-5446 due to internal JIRA issues
> {color}
> Fighting with cluster nodes losing their lease and shutting down oak-core in 
> a cloud environment. For reasons unknown at this point in time, the whole 
> process seems to skip about two minutes of real time.
> This is a situation from which oak currently does not recover. Code analysis 
> shows that {{ClusterNodeInfo}} is handed the 
> {{LeaseCheckDocumentStoreWrapper}} instance to use as store. This is fatal 
> since any action the {{renewLease()}} tries to do will first invoke the 
> {{performLeaseCheck()}}. The lease check will, when the {{FailureMargin}} is 
> reached, _stall the renewLease() thread_ for 5 retry attempts and then 
> declare the lease to be lost.
> The {{ClusterNodeInfo}} should instead be using the "real" {{DocumentStore}}, 
> not the wrapped one, IMO.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5978) Allow deployers to configure a query time limit

2017-03-24 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940361#comment-15940361
 ] 

Thomas Mueller commented on OAK-5978:
-

How is your request different from what we have already? As Davide wrote on the 
Oak list, we cancel a query that iterated over a certain amount of nodes or as 
of 1.6 may hit the traversal index (doesn't have an index). As for resource 
exhaustion: we have a limit on the number of nodes read in memory. The number 
of traversed nodes is very similar to a time limit: the more nodes are 
traversed, the slower a query is (it's basically a 1:1 relationship). Measuring 
the time taken for a query is tricky, we would have to measure each individual 
"nextNode()" call, and sum that. This would include time to load binaries from 
Lucene indexes (possibly reads from the S3 datastore). This is highly dependant 
on caching, much more than a typical query in a relational database with a 
local file system.

> Allow deployers to configure a query time limit
> ---
>
> Key: OAK-5978
> URL: https://issues.apache.org/jira/browse/OAK-5978
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: query
>Affects Versions: 1.6.1
>Reporter: Ian Boston
>
> Currently when a query takes a long time to complete, Oak allows it to 
> continue to completion, which can under certain circumstances result in 
> resource exhaustion and slow performance for all operations depending on Oak.
> This feature request is to apply a deployer configurable time limit to all 
> queries. If the query exceeds that time limit, it is canceled with a suitable 
> exception, so that it consumes no more resources and the code or user that 
> submitted the query is notified.
> Ideally this needs to work while the query is executing inside Oak rather 
> than waiting to return via the Oak API before being canceled. Cancelation 
> should result in minimal resource usage. 
> At this stage, this is an idea. It may not be possible to implement.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5978) Allow deployers to configure a query time limit

2017-03-24 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940365#comment-15940365
 ] 

Thomas Mueller commented on OAK-5978:
-

See also 
http://jackrabbit.apache.org/oak/docs/query/query-engine.html#Slow_Queries_and_Read_Limits
 (for LimitReads and LimitInMemory) and 
http://jackrabbit.apache.org/oak/docs/query/query-engine.html#Query_Options 
(for QueryEngineSettings.failTraversal)

> Allow deployers to configure a query time limit
> ---
>
> Key: OAK-5978
> URL: https://issues.apache.org/jira/browse/OAK-5978
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: query
>Affects Versions: 1.6.1
>Reporter: Ian Boston
>
> Currently when a query takes a long time to complete, Oak allows it to 
> continue to completion, which can under certain circumstances result in 
> resource exhaustion and slow performance for all operations depending on Oak.
> This feature request is to apply a deployer configurable time limit to all 
> queries. If the query exceeds that time limit, it is canceled with a suitable 
> exception, so that it consumes no more resources and the code or user that 
> submitted the query is notified.
> Ideally this needs to work while the query is executing inside Oak rather 
> than waiting to return via the Oak API before being canceled. Cancelation 
> should result in minimal resource usage. 
> At this stage, this is an idea. It may not be possible to implement.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5972) Provide a way to abort indexing / reindexing of synchronous indexes

2017-03-24 Thread Thomas Mueller (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Mueller updated OAK-5972:

Summary: Provide a way to abort indexing / reindexing of synchronous 
indexes  (was: Provide a way to abort indexing / reindexing)

> Provide a way to abort indexing / reindexing of synchronous indexes
> ---
>
> Key: OAK-5972
> URL: https://issues.apache.org/jira/browse/OAK-5972
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: query
>Reporter: Thomas Mueller
> Fix For: 1.8
>
>
> Indexing and reindexing is slow. There should be a way to abort this (for 
> example if it was started by accident).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5972) Provide a way to abort indexing / reindexing of synchronous indexes

2017-03-24 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940412#comment-15940412
 ] 

Thomas Mueller commented on OAK-5972:
-

[~chetanm] this is for synchronous indexes. Right now it's part of the commit, 
but once we split up reindexing it will be possible to stop that as well.

(Or maybe we just use the same / a similar mechanism as for asynchronous 
reindexing, in which case we have solved that problem as well).

> Provide a way to abort indexing / reindexing of synchronous indexes
> ---
>
> Key: OAK-5972
> URL: https://issues.apache.org/jira/browse/OAK-5972
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: query
>Reporter: Thomas Mueller
> Fix For: 1.8
>
>
> Indexing and reindexing is slow. There should be a way to abort this (for 
> example if it was started by accident).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5978) Allow deployers to configure a query time limit

2017-03-24 Thread Ian Boston (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940424#comment-15940424
 ] 

Ian Boston commented on OAK-5978:
-

It's different for the reasons you stated. 

When a query causes the working set of an active repository to increase beyond 
the resources that are available, everything slows down. That shows up as page 
faulting in TarMK, page faults with MongoMK on MMAPv1 and saturated IO in 
MongoMK WT. Counting the number of results or looking for traversal is no 
longer a good way of detecting a query that should be canceled. Starting a 
timer at the start of the query and checking the time elapsed at convenient 
points throughout the query execution would be a better way of protecting 
normal operation from roque queries. That suggestion is based on my very 
limited knowledge of how Oak works internally. There are probably much better 
ways of doing it based on elapsed time. 

Perhaps it can't be implemented in Oak. The current limits don't appear to 
protect against outage.

> Allow deployers to configure a query time limit
> ---
>
> Key: OAK-5978
> URL: https://issues.apache.org/jira/browse/OAK-5978
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: query
>Affects Versions: 1.6.1
>Reporter: Ian Boston
>
> Currently when a query takes a long time to complete, Oak allows it to 
> continue to completion, which can under certain circumstances result in 
> resource exhaustion and slow performance for all operations depending on Oak.
> This feature request is to apply a deployer configurable time limit to all 
> queries. If the query exceeds that time limit, it is canceled with a suitable 
> exception, so that it consumes no more resources and the code or user that 
> submitted the query is notified.
> Ideally this needs to work while the query is executing inside Oak rather 
> than waiting to return via the Oak API before being canceled. Cancelation 
> should result in minimal resource usage. 
> At this stage, this is an idea. It may not be possible to implement.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5978) Allow deployers to configure a query time limit

2017-03-24 Thread Thomas Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940437#comment-15940437
 ] 

Thomas Mueller commented on OAK-5978:
-

> The current limits don't appear to protect against outage.

Could you provide more details about that please.

> Starting a timer at the start of the query and checking the time elapsed at 
> convenient points

Well, there are different times limits, which one are you interested in:

* The time since the query was started (for example, between the 
Query.execute() and the very latest call for this query, which might be 
NodeIterator.nextNode() or for example getSize()). This is relatively easy to 
measure.
* The accumulated time of each call for the given query. That is, the time 
needed for Query.execute(), plus the time needed for each individual 
NodeIterator.nextNode(), and all other calls individually).



> Allow deployers to configure a query time limit
> ---
>
> Key: OAK-5978
> URL: https://issues.apache.org/jira/browse/OAK-5978
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: query
>Affects Versions: 1.6.1
>Reporter: Ian Boston
>
> Currently when a query takes a long time to complete, Oak allows it to 
> continue to completion, which can under certain circumstances result in 
> resource exhaustion and slow performance for all operations depending on Oak.
> This feature request is to apply a deployer configurable time limit to all 
> queries. If the query exceeds that time limit, it is canceled with a suitable 
> exception, so that it consumes no more resources and the code or user that 
> submitted the query is notified.
> Ideally this needs to work while the query is executing inside Oak rather 
> than waiting to return via the Oak API before being canceled. Cancelation 
> should result in minimal resource usage. 
> At this stage, this is an idea. It may not be possible to implement.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-3.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-8.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: OAK-5855-16.diff

(wip) logging

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-6.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-2.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-7.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-4.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-5.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff, 
> OAK-5855-9.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5855:

Attachment: (was: OAK-5855-9.diff)

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5984) Property indexes can get ouf of sync

2017-03-24 Thread Thomas Mueller (JIRA)
Thomas Mueller created OAK-5984:
---

 Summary: Property indexes can get ouf of sync
 Key: OAK-5984
 URL: https://issues.apache.org/jira/browse/OAK-5984
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: query
Reporter: Thomas Mueller
Assignee: Thomas Mueller
 Fix For: 1.8


Property indexes can get out of sync for the following reasons:

* the index was disabled for some time
* the property index component was not started / configured
* the index definition was changed without reindexing



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)
Julian Reschke created OAK-5985:
---

 Summary: add CloseableIterator similar to CloseableIterable
 Key: OAK-5985
 URL: https://issues.apache.org/jira/browse/OAK-5985
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: commons
Reporter: Julian Reschke






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5985:

Fix Version/s: 1.8

> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.8
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke reassigned OAK-5985:
---

Assignee: Julian Reschke

> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.8
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5985:

Description: Needed by OAK-5855 but tracked separately so it can be 
independently back-ported.

> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.8
>
>
> Needed by OAK-5855 but tracked separately so it can be independently 
> back-ported.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-5985:

Fix Version/s: 1.7.0

> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.7.0, 1.8
>
>
> Needed by OAK-5855 but tracked separately so it can be independently 
> back-ported.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke resolved OAK-5985.
-
Resolution: Fixed

> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.7.0, 1.8
>
>
> Needed by OAK-5855 but tracked separately so it can be independently 
> back-ported.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5985) add CloseableIterator similar to CloseableIterable

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940504#comment-15940504
 ] 

Julian Reschke commented on OAK-5985:
-

trunk: [r1788463|http://svn.apache.org/r1788463]


> add CloseableIterator similar to CloseableIterable
> --
>
> Key: OAK-5985
> URL: https://issues.apache.org/jira/browse/OAK-5985
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: commons
>Reporter: Julian Reschke
>Assignee: Julian Reschke
> Fix For: 1.7.0, 1.8
>
>
> Needed by OAK-5855 but tracked separately so it can be independently 
> back-ported.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke resolved OAK-5855.
-
   Resolution: Fixed
Fix Version/s: 1.8
   1.7.0

> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (OAK-5855) RDBDocumentStore: improve query support for VersionGC

2017-03-24 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940585#comment-15940585
 ] 

Julian Reschke commented on OAK-5855:
-

trunk: [r1788476|http://svn.apache.org/r1788476]


> RDBDocumentStore: improve query support for VersionGC
> -
>
> Key: OAK-5855
> URL: https://issues.apache.org/jira/browse/OAK-5855
> Project: Jackrabbit Oak
>  Issue Type: Technical task
>  Components: rdbmk
>Reporter: Julian Reschke
>Assignee: Julian Reschke
>Priority: Minor
> Fix For: 1.7.0, 1.8
>
> Attachments: OAK-5855-10.diff, OAK-5855-11.diff, OAK-5855-12.diff, 
> OAK-5855-13.diff, OAK-5855-14.diff, OAK-5855-15.diff, OAK-5855-16.diff
>
>
> ...matching {{MongoVersionSupport}}, such as: no batched query needed; just 
> return an iterable over delete candidates. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (OAK-5986) Clarify default nodestore/datastore in http://jackrabbit.apache.org/oak/docs/osgi_config.html

2017-03-24 Thread Konrad Windszus (JIRA)
Konrad Windszus created OAK-5986:


 Summary: Clarify default nodestore/datastore in 
http://jackrabbit.apache.org/oak/docs/osgi_config.html
 Key: OAK-5986
 URL: https://issues.apache.org/jira/browse/OAK-5986
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: doc
Reporter: Konrad Windszus


Although with OAK-3159 the documentation around segment stores have been 
greatly improved it is still not clear which segment store is configured if no 
explicit configuration is found (in OSGi). Please add that information for both 
the data store as well as the node store.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-4780) VersionGarbageCollector should be able to run incrementally

2017-03-24 Thread Julian Reschke (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-4780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-4780:

Attachment: OAJK-4780-rdb.diff

RDB-specific extensions, not completely in sync with Stefan's generic/mogo 
patches though. 

> VersionGarbageCollector should be able to run incrementally
> ---
>
> Key: OAK-4780
> URL: https://issues.apache.org/jira/browse/OAK-4780
> Project: Jackrabbit Oak
>  Issue Type: Task
>  Components: core, documentmk
>Reporter: Julian Reschke
> Attachments: leafnodes.diff, leafnodes-v2.diff, leafnodes-v3.diff, 
> OAJK-4780-rdb.diff
>
>
> Right now, the documentmk's version garbage collection runs in several phases.
> It first collects the paths of candidate nodes, and only once this has been 
> successfully finished, starts actually deleting nodes.
> This can be a problem when the regularly scheduled garbage collection is 
> interrupted during the path collection phase, maybe due to other maintenance 
> tasks. On the next run, the number of paths to be collected will be even 
> bigger, thus making it even more likely to fail.
> We should think about a change in the logic that would allow the GC to run in 
> chunks; maybe by partitioning the path space by top level directory.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-3342) move benchmarks in oak-benchmark module

2017-03-24 Thread Davide Giannella (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-3342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Davide Giannella updated OAK-3342:
--
Attachment: OAK-3342-1.diff

[patch|^OAK-3342-1.diff] for review.

The build compiles fine and oak-run went from 54MB to 34MB and we added 
cloud-azure module since last build.

Still the pending questions about backports remain. Don't really know what to 
do.

If prefer to review individual commits, see the github link in a previous 
comment.

> move benchmarks in oak-benchmark module
> ---
>
> Key: OAK-3342
> URL: https://issues.apache.org/jira/browse/OAK-3342
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: run
>Reporter: Davide Giannella
>Assignee: Davide Giannella
>Priority: Minor
> Fix For: 1.8
>
> Attachments: OAK-3342-1.diff
>
>
> Take all the benchmarks provided by oak-run and move them into the 
> oak-development module. Micro-benchmarking and Scalability



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5762) [Oak Lucene] Several full-text operators do not work (NOT, !, AND)

2017-03-24 Thread David Gonzalez (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Gonzalez updated OAK-5762:

Summary: [Oak Lucene] Several full-text operators do not work (NOT, !, AND) 
 (was: [Oak Lucene] NOT and ! full-text operators do not work.)

> [Oak Lucene] Several full-text operators do not work (NOT, !, AND)
> --
>
> Key: OAK-5762
> URL: https://issues.apache.org/jira/browse/OAK-5762
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Affects Versions: 1.6.0
>Reporter: David Gonzalez
>
> The following 3 full-text queries return the same results. I expected the 1st 
> to be different from the 2nd and 3rd, but the 2nd and 3rd should be identical 
> to one another. All 3 yield the same results.
> {noformat}
> dog AND cat
> {noformat}
> {noformat}
> dog AND NOT cat
> {noformat}
> {noformat}
> dog AND !cat
> {noformat}
> The following (which, IIUC is the equivalent to NOT and !) does yield 
> expected results.
> {noformat}
> dog AND -cat
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (OAK-5762) [Oak Lucene] Several full-text operators do not work (NOT, !, AND)

2017-03-24 Thread David Gonzalez (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-5762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Gonzalez updated OAK-5762:

Description: 
The following fulltext operators do not appear to be evaluated correctly.

AND operator
{noformat}
QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
cq:Page)[(jcr:contains(., 'response AND layout'))]/rep:excerpt(.)
PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
+(+:fulltext:respons +:fulltext:and +:fulltext:layout) 
+:ancestors:/content/docs/en/aem/6-3 ft:("response" "AND" "layout") where 
(contains([a].[*], 'response AND layout')) and (isdescendantnode([a], 
[/content/docs/en/aem/6-3])) */
{noformat}

NOT operator
{noformat}
QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
cq:Page)[(jcr:contains(., 'response NOT layout'))]/rep:excerpt(.)
PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
+(+:fulltext:respons +:fulltext:not +:fulltext:layout) 
+:ancestors:/content/docs/en/aem/6-3 ft:("response" "NOT" "layout") where 
(contains([a].[*], 'response NOT layout')) and (isdescendantnode([a], 
[/content/docs/en/aem/6-3])) */
{noformat}

! operator
{noformat}
QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
cq:Page)[(jcr:contains(., 'response !layout'))]/rep:excerpt(.)
PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
+(+:fulltext:respons +:fulltext:layout) +:ancestors:/content/docs/en/aem/6-3 
ft:("response" "!layout") where (contains([a].[*], 'response !layout')) and 
(isdescendantnode([a], [/content/docs/en/aem/6-3])) */
{noformat}

Note the `-` operator works.


  was:
The following 3 full-text queries return the same results. I expected the 1st 
to be different from the 2nd and 3rd, but the 2nd and 3rd should be identical 
to one another. All 3 yield the same results.

{noformat}
dog AND cat
{noformat}

{noformat}
dog AND NOT cat
{noformat}

{noformat}
dog AND !cat
{noformat}

The following (which, IIUC is the equivalent to NOT and !) does yield expected 
results.

{noformat}
dog AND -cat
{noformat}


> [Oak Lucene] Several full-text operators do not work (NOT, !, AND)
> --
>
> Key: OAK-5762
> URL: https://issues.apache.org/jira/browse/OAK-5762
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: lucene
>Affects Versions: 1.6.0
>Reporter: David Gonzalez
>
> The following fulltext operators do not appear to be evaluated correctly.
> AND operator
> {noformat}
> QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
> cq:Page)[(jcr:contains(., 'response AND layout'))]/rep:excerpt(.)
> PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
> +(+:fulltext:respons +:fulltext:and +:fulltext:layout) 
> +:ancestors:/content/docs/en/aem/6-3 ft:("response" "AND" "layout") where 
> (contains([a].[*], 'response AND layout')) and (isdescendantnode([a], 
> [/content/docs/en/aem/6-3])) */
> {noformat}
> NOT operator
> {noformat}
> QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
> cq:Page)[(jcr:contains(., 'response NOT layout'))]/rep:excerpt(.)
> PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
> +(+:fulltext:respons +:fulltext:not +:fulltext:layout) 
> +:ancestors:/content/docs/en/aem/6-3 ft:("response" "NOT" "layout") where 
> (contains([a].[*], 'response NOT layout')) and (isdescendantnode([a], 
> [/content/docs/en/aem/6-3])) */
> {noformat}
> ! operator
> {noformat}
> QUERY: /jcr:root/content/docs/en/aem/_x0036_-3//element(*, 
> cq:Page)[(jcr:contains(., 'response !layout'))]/rep:excerpt(.)
> PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) 
> +(+:fulltext:respons +:fulltext:layout) +:ancestors:/content/docs/en/aem/6-3 
> ft:("response" "!layout") where (contains([a].[*], 'response !layout')) and 
> (isdescendantnode([a], [/content/docs/en/aem/6-3])) */
> {noformat}
> Note the `-` operator works.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)