[jira] [Resolved] (OAK-1034) OOME running Oak benchmark suite
[ https://issues.apache.org/jira/browse/OAK-1034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger resolved OAK-1034. --- Resolution: Fixed Fix Version/s: 0.10 In http://svn.apache.org/r1527935 I changed the afterSuite() method of ReadManyTest (aka LinearReadEmpty) to remove the nodes in batches. This is a workaround for OAK-1056. Now the test runs successfully with Oak-Mongo: {noformat} # LinearReadEmptymin 10% 50% 90% max N Oak-Mongo 0 2 108 726 838 325 {noformat} OOME running Oak benchmark suite Key: OAK-1034 URL: https://issues.apache.org/jira/browse/OAK-1034 Project: Jackrabbit Oak Issue Type: Bug Components: mongomk, run Reporter: Michael Dürig Assignee: Marcel Reutegger Fix For: 0.10 Several of the benchmarks result in an OOME running with {{-Xmx512M}} -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Assigned] (OAK-1057) Configurable DocumentStore logging wrapper
[ https://issues.apache.org/jira/browse/OAK-1057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger reassigned OAK-1057: - Assignee: Marcel Reutegger Configurable DocumentStore logging wrapper --- Key: OAK-1057 URL: https://issues.apache.org/jira/browse/OAK-1057 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Marcel Reutegger Assignee: Marcel Reutegger Priority: Minor Currently the MongoMK Builder only allows to configure the timing wrapper. It would be nice to also configure the use of the DocumentStore logging wrapper. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (OAK-1057) Configurable DocumentStore logging wrapper
Marcel Reutegger created OAK-1057: - Summary: Configurable DocumentStore logging wrapper Key: OAK-1057 URL: https://issues.apache.org/jira/browse/OAK-1057 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Marcel Reutegger Priority: Minor Currently the MongoMK Builder only allows to configure the timing wrapper. It would be nice to also configure the use of the DocumentStore logging wrapper. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Resolved] (OAK-1057) Configurable DocumentStore logging wrapper
[ https://issues.apache.org/jira/browse/OAK-1057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger resolved OAK-1057. --- Resolution: Fixed Fix Version/s: 0.10 Implemented in http://svn.apache.org/r1527959 Configurable DocumentStore logging wrapper --- Key: OAK-1057 URL: https://issues.apache.org/jira/browse/OAK-1057 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Marcel Reutegger Assignee: Marcel Reutegger Priority: Minor Fix For: 0.10 Currently the MongoMK Builder only allows to configure the timing wrapper. It would be nice to also configure the use of the DocumentStore logging wrapper. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (OAK-1058) Review TreeTypeProvider
angela created OAK-1058: --- Summary: Review TreeTypeProvider Key: OAK-1058 URL: https://issues.apache.org/jira/browse/OAK-1058 Project: Jackrabbit Oak Issue Type: Improvement Components: core Reporter: angela Priority: Minor reminder to review and possibly refactor the tree type provider. this part of the core-package is still marked with TODOs and we should clean it up before releasing oak. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (OAK-1044) Reduce traffic between MongoMK and MongoDB
[ https://issues.apache.org/jira/browse/OAK-1044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13782881#comment-13782881 ] Marcel Reutegger commented on OAK-1044: --- Introduced {{DocumentStore.update(CollectionT collection, ListString ids, UpdateOp updateOp)}} in http://svn.apache.org/r1528065. This allows to update multiple documents with a single call to MongoDB. The method is used in MongoMK.backgroundWrite() when {{_lastRev}} and {{_modified}} are written back. Reduce traffic between MongoMK and MongoDB -- Key: OAK-1044 URL: https://issues.apache.org/jira/browse/OAK-1044 Project: Jackrabbit Oak Issue Type: Improvement Components: core, mongomk Reporter: Marcel Reutegger Assignee: Marcel Reutegger There is quite some redundant traffic going on between MongoMK and MongoDB, which can have a major impact on performance. One of the problems we already saw in the past when there are many changes on a node. The document in MongoDB grows and with every modification to the node the cost increases because MongoMK always requests the complete old document from MongoDB in the response. This is done for several reasons: 1) MongoMK looks at the returned old document and checks if the updates applied do not conflict. 2) MongoMK updates its cache with the old document and the updates it applied. Splitting the documents when they reach a certain size keeps the cost for an update within bounds, but most of the time the response just contains redundant information already present in MongoMK. E.g. when no other MongoMK instance modified the node, the returned document is the same as the one potentially already in the cache. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (OAK-1059) Property index: faster unique indexes using new storage strategy
Thomas Mueller created OAK-1059: --- Summary: Property index: faster unique indexes using new storage strategy Key: OAK-1059 URL: https://issues.apache.org/jira/browse/OAK-1059 Project: Jackrabbit Oak Issue Type: Improvement Reporter: Thomas Mueller Assignee: Thomas Mueller The property index now stores all entries for a key as a tree (ContentMirrorStoreStrategy). This is very good for non-unique indexes. However, for unique indexes such as the UUID index, this results in lots of nodes. To improve performance for UUID lookup and update, the (only) entry could be stored as a property (UniqueEntryStoreStrategy). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (OAK-1059) Property index: faster unique indexes using new storage strategy
[ https://issues.apache.org/jira/browse/OAK-1059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Thomas Mueller updated OAK-1059: Component/s: query core Property index: faster unique indexes using new storage strategy Key: OAK-1059 URL: https://issues.apache.org/jira/browse/OAK-1059 Project: Jackrabbit Oak Issue Type: Improvement Components: core, query Reporter: Thomas Mueller Assignee: Thomas Mueller The property index now stores all entries for a key as a tree (ContentMirrorStoreStrategy). This is very good for non-unique indexes. However, for unique indexes such as the UUID index, this results in lots of nodes. To improve performance for UUID lookup and update, the (only) entry could be stored as a property (UniqueEntryStoreStrategy). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (OAK-1055) Occasional test failure in ObservationTest.observation()
[ https://issues.apache.org/jira/browse/OAK-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13783088#comment-13783088 ] Michael Dürig commented on OAK-1055: Turns out there is a race condition between reporting internal events ({{ChangeDispatche.contentChanged()}}) and polling for external events ({{ChangeDispatcher.externalChange()}}): the new root reported by the latter may be older than a new root set previously through the former. This is due to the changes being persisted outside the lock of {{ChangeDispatche.contentChanged()}} and thus being visible inside {{ChangeDispatcher.externalChange()}}. For the time being I think there is no harm in removing the polling for external events. I will open a follow up issue to track this in case we need it. Occasional test failure in ObservationTest.observation() Key: OAK-1055 URL: https://issues.apache.org/jira/browse/OAK-1055 Project: Jackrabbit Oak Issue Type: Bug Components: core Reporter: Michael Dürig The test occasionally fails with {code} Failed tests: observation[1](org.apache.jackrabbit.oak.jcr.observation.ObservationTest): Unexpected events: [EventImpl{type=8, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}] {code} As [noted before | http://markmail.org/message/lk3vrrcn5edib73d] having {{external=true}} and also the event types indicate that the events are being seen in reverse (i.e. reverse diffing of the node states involved). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (OAK-1060) Periodically poll for external events
[ https://issues.apache.org/jira/browse/OAK-1060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Dürig updated OAK-1060: --- Summary: Periodically poll for external events (was: Periodically poll for externel events) Periodically poll for external events - Key: OAK-1060 URL: https://issues.apache.org/jira/browse/OAK-1060 Project: Jackrabbit Oak Issue Type: Improvement Components: core Reporter: Michael Dürig Priority: Minor Currently external events are only reported along with local changes. That is, when local changes are persisted external changes are detected and reported along with the local changes. This might cause external events to be delayed indefinitely on cluster nodes without writes. We might want to implement a solution that regularly polls for external events. See OAK-1055 for why a previous implementation didn't work. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (OAK-1055) Occasional test failure in ObservationTest.observation()
[ https://issues.apache.org/jira/browse/OAK-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13783097#comment-13783097 ] Michael Dürig commented on OAK-1055: See OAK-1060 for the follow up issue. Occasional test failure in ObservationTest.observation() Key: OAK-1055 URL: https://issues.apache.org/jira/browse/OAK-1055 Project: Jackrabbit Oak Issue Type: Bug Components: core Reporter: Michael Dürig The test occasionally fails with {code} Failed tests: observation[1](org.apache.jackrabbit.oak.jcr.observation.ObservationTest): Unexpected events: [EventImpl{type=8, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}] {code} As [noted before | http://markmail.org/message/lk3vrrcn5edib73d] having {{external=true}} and also the event types indicate that the events are being seen in reverse (i.e. reverse diffing of the node states involved). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Resolved] (OAK-1055) Occasional test failure in ObservationTest.observation()
[ https://issues.apache.org/jira/browse/OAK-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Dürig resolved OAK-1055. Resolution: Fixed Fix Version/s: 0.10 Assignee: Michael Dürig Fixed at http://svn.apache.org/r1528134 Occasional test failure in ObservationTest.observation() Key: OAK-1055 URL: https://issues.apache.org/jira/browse/OAK-1055 Project: Jackrabbit Oak Issue Type: Bug Components: core Reporter: Michael Dürig Assignee: Michael Dürig Fix For: 0.10 The test occasionally fails with {code} Failed tests: observation[1](org.apache.jackrabbit.oak.jcr.observation.ObservationTest): Unexpected events: [EventImpl{type=8, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}] {code} As [noted before | http://markmail.org/message/lk3vrrcn5edib73d] having {{external=true}} and also the event types indicate that the events are being seen in reverse (i.e. reverse diffing of the node states involved). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Reopened] (OAK-1055) Occasional test failure in ObservationTest.observation()
[ https://issues.apache.org/jira/browse/OAK-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Dürig reopened OAK-1055: Reopening since this is only half way fixed yet. The same race actually exists between concurrent invocations of {{PostCommitHook.contentChanged()}}. Occasional test failure in ObservationTest.observation() Key: OAK-1055 URL: https://issues.apache.org/jira/browse/OAK-1055 Project: Jackrabbit Oak Issue Type: Bug Components: core Reporter: Michael Dürig Assignee: Michael Dürig Fix For: 0.10 The test occasionally fails with {code} Failed tests: observation[1](org.apache.jackrabbit.oak.jcr.observation.ObservationTest): Unexpected events: [EventImpl{type=8, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}] {code} As [noted before | http://markmail.org/message/lk3vrrcn5edib73d] having {{external=true}} and also the event types indicate that the events are being seen in reverse (i.e. reverse diffing of the node states involved). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (OAK-1055) Occasional test failure in ObservationTest.observation()
[ https://issues.apache.org/jira/browse/OAK-1055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13783287#comment-13783287 ] Michael Dürig commented on OAK-1055: In a quick chat with Jukka, we discussed moving the {{PostCommitHook}} from being passed as an argument to being owned by the {{NodeStore}}. This makes it much easier to specify a contract that requires a linear sequence of node states to be passed to that hook. Occasional test failure in ObservationTest.observation() Key: OAK-1055 URL: https://issues.apache.org/jira/browse/OAK-1055 Project: Jackrabbit Oak Issue Type: Bug Components: core Reporter: Michael Dürig Assignee: Michael Dürig Fix For: 0.10 The test occasionally fails with {code} Failed tests: observation[1](org.apache.jackrabbit.oak.jcr.observation.ObservationTest): Unexpected events: [EventImpl{type=8, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/property', userID='oak:unknown', identifier='/test_node', info={}, date=0, userData=null, external=true}, EventImpl{type=16, jcrPath='/test_node/n1/p1', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n1/p2', userID='oak:unknown', identifier='/test_node/n1', info={}, date=0, userData=null, external=true}, EventImpl{type=2, jcrPath='/test_node/n2', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=8, jcrPath='/test_node/n2/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n2', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/n3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/jcr:primaryType', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/n3/p3', userID='oak:unknown', identifier='/test_node/n3', info={}, date=0, userData=null, external=true}, EventImpl{type=1, jcrPath='/test_node/{4}', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}, EventImpl{type=4, jcrPath='/test_node/{4}/jcr:primaryType', userID='oak:unknown', identifier='/test_node/{4}', info={}, date=0, userData=null, external=true}] {code} As [noted before | http://markmail.org/message/lk3vrrcn5edib73d] having {{external=true}} and also the event types indicate that the events are being seen in reverse (i.e. reverse diffing of the node states involved). -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (OAK-1060) Periodically poll for external events
[ https://issues.apache.org/jira/browse/OAK-1060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13783291#comment-13783291 ] Michael Dürig commented on OAK-1060: In [the same chat | https://issues.apache.org/jira/browse/OAK-1055?focusedCommentId=13783287page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13783287] we also discussed that splitting the single {{PostCommitHook.contentChanged()}} method up into three separate methods as proposed in OAK-775 helps with polling for external events without the problematic race. Periodically poll for external events - Key: OAK-1060 URL: https://issues.apache.org/jira/browse/OAK-1060 Project: Jackrabbit Oak Issue Type: Improvement Components: core Reporter: Michael Dürig Priority: Minor Currently external events are only reported along with local changes. That is, when local changes are persisted external changes are detected and reported along with the local changes. This might cause external events to be delayed indefinitely on cluster nodes without writes. We might want to implement a solution that regularly polls for external events. See OAK-1055 for why a previous implementation didn't work. -- This message was sent by Atlassian JIRA (v6.1#6144)