Re: [DISCUSS] Which I/O statistics should the FileStore expose?

2017-02-13 Thread Francesco Mari
Thanks Chetan and Julian for the pointers. On one hand I would like to
do something similar - in spirit - to DocumentStoreStats. On the other
hand, I don't see the advantage of the Metrics framework over a
hand-rolled IOMonitorMBean with two AtomicLong fields and two volatile
variables. IIUC there is no automatic way of exposing Metrics via an
MBean. In fact, the DocumentNodeStoreService registers the
DocumentStoreStatsMBean in the same way I would register the
IOMonitorMBean from the SegmentNodeStoreService. What could be gained
by adding Metrics to the trivial implementation of IOMonitorMBean
described above?

It is also unclear to me if it's really appropriate to digest some
statistics before exposing them to the outside world. In example, how
the methods in DocumentStoreStats returning time series as
CompositeData play with other monitoring solutions like
ElasticSearch/Kibana? How easy is to consume and aggregate this data
for a monitoring solution?

2017-02-14 5:13 GMT+01:00 Chetan Mehrotra :
> Hi Francesco,
>
> As Julian mentioned it would be good to collects stats as Metrics.
> Have a look at DocumentStoreStats which collects some stats around
> operations being performed by DocumentStore implementations
> Chetan Mehrotra
>
>
> On Tue, Feb 14, 2017 at 12:37 AM, Julian Sedding  wrote:
>> Hi Francesco
>>
>> I believe you should implement an IOMonitor using the metrics in the
>> org.apache.jackrabbit.oak.stats package. These can be backed by
>> swappable StatisticsProvider implementations. I believe by default
>> it's a NOOP implementation. However, I believe that if the
>> MetricStatisticsProvider implementation is used, it automatically
>> exposes the metrics via JMX. So all you need to do is feed the correct
>> data into a suitable metric. I believe Chetan contributed these, so he
>> will know more about the details.
>>
>> Regards
>> Julian
>>
>>
>> On Mon, Feb 13, 2017 at 6:21 PM, Francesco Mari
>>  wrote:
>>> Hi all,
>>>
>>> The recently introduced IOMonitor allows the FileStore to trigger I/O
>>> events. Callback methods from IOMonitor can be implemented to receive
>>> information about segment reads and writes.
>>>
>>> A trivial implementation of IOMonitor is able to track the following raw 
>>> data.
>>>
>>> - The number of segments read and write operations.
>>> - The duration in nanoseconds of every read and write.
>>> - The number of bytes read or written by each operation.
>>>
>>> We are about to expose this kind of information from an MBean - for
>>> the sake of discussion, let's call it IOMonitorMBean. I'm currently in
>>> favour of starting small and exposing the following statistics:
>>>
>>> - The duration of the latest write (long).
>>> - The duration of the latest read (long).
>>> - The number of write operations (long).
>>> - The number of read operations (long).
>>>
>>> I would like your opinion about what's the most useful way to present
>>> this data through an MBean. Should just raw data be exposed? Is it
>>> appropriate for IOMonitorMBean to perform some kind of aggregation,
>>> like sum and average? Should richer data be returned from the MBean,
>>> like tabular data?
>>>
>>> Please keep in mind that this data is supposed to be consumed by a
>>> monitoring solution, and not a by human reader.


[Oak origin/trunk] Apache Jackrabbit Oak matrix - Build # 1422 - Still Failing

2017-02-13 Thread Apache Jenkins Server
The Apache Jenkins build system has built Apache Jackrabbit Oak matrix (build 
#1422)

Status: Still Failing

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

Changes:
[frm] OAK-5631 - Expose segment read time from IOMonitor

[adulceanu] OAK-5600 - Test coverage for CheckCommand Added tests for checking a

[mreutegg] OAK-5633: Builds on travis-ci time out

[frm] OAK-5632 - Expose segment write statistics from IOMonitor

[frm] OAK-5637 - Increase time granularity in IOMonitor

[adulceanu] OAK-5620 - Simplify consistency check

[stefanegli] OAK-5619 : fixing withIncludeAncestorsRemove which reported 
/unrelated

 

Test results:
3 tests failed.
FAILED:  org.apache.jackrabbit.oak.segment.standby.StandbyTestIT.testSyncLoop

Error Message:
expected: org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { 
... }, root = { ... } }> but was: 
org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { ... }, 
root = { ... } }>

Stack Trace:
java.lang.AssertionError: expected: 
org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { ... }, 
root = { ... } }> but was: org.apache.jackrabbit.oak.segment.SegmentNodeState<{ 
checkpoints = { ... }, root = { ... } }>
at 
org.apache.jackrabbit.oak.segment.standby.StandbyTestIT.testSyncLoop(StandbyTestIT.java:126)


FAILED:  org.apache.jackrabbit.oak.segment.standby.StandbyTestIT.testSyncLoop

Error Message:
expected: org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { 
... }, root = { ... } }> but was: 
org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { ... }, 
root = { ... } }>

Stack Trace:
java.lang.AssertionError: expected: 
org.apache.jackrabbit.oak.segment.SegmentNodeState<{ checkpoints = { ... }, 
root = { ... } }> but was: org.apache.jackrabbit.oak.segment.SegmentNodeState<{ 
checkpoints = { ... }, root = { ... } }>
at 
org.apache.jackrabbit.oak.segment.standby.StandbyTestIT.testSyncLoop(StandbyTestIT.java:126)


FAILED:  
org.apache.jackrabbit.oak.plugins.document.DocumentDiscoveryLiteServiceIT.testLargeStartStopFiesta

Error Message:
unable to create new native thread

Stack Trace:
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.(DocumentNodeStore.java:599)
at 
org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.getNodeStore(DocumentMK.java:839)
at 
org.apache.jackrabbit.oak.plugins.document.DocumentMK.(DocumentMK.java:144)
at 
org.apache.jackrabbit.oak.plugins.document.DocumentMK$Builder.open(DocumentMK.java:1138)
at 
org.apache.jackrabbit.oak.plugins.document.BaseDocumentDiscoveryLiteServiceTest.createMK(BaseDocumentDiscoveryLiteServiceTest.java:716)
at 
org.apache.jackrabbit.oak.plugins.document.BaseDocumentDiscoveryLiteServiceTest.createMK(BaseDocumentDiscoveryLiteServiceTest.java:710)
at 
org.apache.jackrabbit.oak.plugins.document.BaseDocumentDiscoveryLiteServiceTest.createNodeStore(BaseDocumentDiscoveryLiteServiceTest.java:589)
at 
org.apache.jackrabbit.oak.plugins.document.BaseDocumentDiscoveryLiteServiceTest.createInstance(BaseDocumentDiscoveryLiteServiceTest.java:608)
at 
org.apache.jackrabbit.oak.plugins.document.BaseDocumentDiscoveryLiteServiceTest.doStartStopFiesta(BaseDocumentDiscoveryLiteServiceTest.java:760)
at 
org.apache.jackrabbit.oak.plugins.document.DocumentDiscoveryLiteServiceIT.testLargeStartStopFiesta(DocumentDiscoveryLiteServiceIT.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJ

[Oak origin/1.0] Apache Jackrabbit Oak matrix - Build # 1421 - Still Failing

2017-02-13 Thread Apache Jenkins Server
The Apache Jenkins build system has built Apache Jackrabbit Oak matrix (build 
#1421)

Status: Still Failing

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

Changes:
[mreutegg] OAK-5608: Test failure: 
org.apache.jackrabbit.mk.util.CommitGateIT.test

 

Test results:
28 tests failed.
FAILED:  
org.apache.jackrabbit.oak.security.authentication.ldap.LdapDefaultLoginModuleTest.org.apache.jackrabbit.oak.security.authentication.ldap.LdapDefaultLoginModuleTest

Error Message:
ERR_171 Failed to bind an LDAP service (1,024) to the service registry.

Stack Trace:
org.apache.directory.api.ldap.model.exception.LdapConfigurationException: 
ERR_171 Failed to bind an LDAP service (1,024) to the service registry.
at 
org.apache.directory.server.ldap.LdapServer.startNetwork(LdapServer.java:695)
at 
org.apache.directory.server.ldap.LdapServer.start(LdapServer.java:547)
at 
org.apache.jackrabbit.oak.security.authentication.ldap.AbstractServer.setUp(AbstractServer.java:227)
at 
org.apache.jackrabbit.oak.security.authentication.ldap.InternalLdapServer.setUp(InternalLdapServer.java:33)
at 
org.apache.jackrabbit.oak.security.authentication.ldap.LdapLoginTestBase.beforeClass(LdapLoginTestBase.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at 
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at 
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at 
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:463)
at sun.nio.ch.Net.bind(Net.java:455)
at 
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at 
org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.java:198)
at 
org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.java:51)
at 
org.apache.mina.core.polling.AbstractPollingIoAcceptor.registerHandles(AbstractPollingIoAcceptor.java:547)
at 
org.apache.mina.core.polling.AbstractPollingIoAcceptor.access$400(AbstractPollingIoAcceptor.java:68)
at 
org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPollingIoAcceptor.java:422)
at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)


FAILED:  
org.apache.jackrabbit.oak.security.authentication.ldap.LdapProviderTest.testNullIntermediatePath

Error Message:
ERR_171 Failed to bind an LDAP service (1,024) to the service registry.

Stack Trace:
org.apache.directory.api.ldap.model.exception.LdapConfigurationException: 
ERR_171 Failed to bind an LDAP service (1,024) to the service registry.
at 
org.apache.directory.server.ldap.LdapServer.startNetwork(LdapServer.java:695)
at 
org.apache.directory.server.ldap.LdapServ

[Oak origin/1.2] Apache Jackrabbit Oak matrix - Build # 1420 - Still Failing

2017-02-13 Thread Apache Jenkins Server
The Apache Jenkins build system has built Apache Jackrabbit Oak matrix (build 
#1420)

Status: Still Failing

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

Changes:
[mreutegg] OAK-5608: Test failure: 
org.apache.jackrabbit.mk.util.CommitGateIT.test

 

Test results:
1 tests failed.
FAILED:  org.apache.jackrabbit.oak.jcr.LargeOperationIT.initializationError

Error Message:
unable to create new native thread

Stack Trace:
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
at com.mongodb.Mongo.(Mongo.java:326)
at com.mongodb.Mongo.(Mongo.java:304)
at com.mongodb.MongoClient.(MongoClient.java:253)
at 
org.apache.jackrabbit.oak.plugins.document.util.MongoConnection.(MongoConnection.java:45)
at 
org.apache.jackrabbit.oak.jcr.NodeStoreFixture$DocumentFixture.createNodeStore(NodeStoreFixture.java:180)
at 
org.apache.jackrabbit.oak.jcr.NodeStoreFixture$DocumentFixture.isAvailable(NodeStoreFixture.java:211)
at 
org.apache.jackrabbit.oak.jcr.LargeOperationIT.fixtures(LargeOperationIT.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.runners.Parameterized.allParameters(Parameterized.java:280)
at org.junit.runners.Parameterized.(Parameterized.java:248)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at 
org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at 
org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at 
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at 
org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at 
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at 
org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at 
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at 
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)




Re: [DISCUSS] Which I/O statistics should the FileStore expose?

2017-02-13 Thread Chetan Mehrotra
Hi Francesco,

As Julian mentioned it would be good to collects stats as Metrics.
Have a look at DocumentStoreStats which collects some stats around
operations being performed by DocumentStore implementations
Chetan Mehrotra


On Tue, Feb 14, 2017 at 12:37 AM, Julian Sedding  wrote:
> Hi Francesco
>
> I believe you should implement an IOMonitor using the metrics in the
> org.apache.jackrabbit.oak.stats package. These can be backed by
> swappable StatisticsProvider implementations. I believe by default
> it's a NOOP implementation. However, I believe that if the
> MetricStatisticsProvider implementation is used, it automatically
> exposes the metrics via JMX. So all you need to do is feed the correct
> data into a suitable metric. I believe Chetan contributed these, so he
> will know more about the details.
>
> Regards
> Julian
>
>
> On Mon, Feb 13, 2017 at 6:21 PM, Francesco Mari
>  wrote:
>> Hi all,
>>
>> The recently introduced IOMonitor allows the FileStore to trigger I/O
>> events. Callback methods from IOMonitor can be implemented to receive
>> information about segment reads and writes.
>>
>> A trivial implementation of IOMonitor is able to track the following raw 
>> data.
>>
>> - The number of segments read and write operations.
>> - The duration in nanoseconds of every read and write.
>> - The number of bytes read or written by each operation.
>>
>> We are about to expose this kind of information from an MBean - for
>> the sake of discussion, let's call it IOMonitorMBean. I'm currently in
>> favour of starting small and exposing the following statistics:
>>
>> - The duration of the latest write (long).
>> - The duration of the latest read (long).
>> - The number of write operations (long).
>> - The number of read operations (long).
>>
>> I would like your opinion about what's the most useful way to present
>> this data through an MBean. Should just raw data be exposed? Is it
>> appropriate for IOMonitorMBean to perform some kind of aggregation,
>> like sum and average? Should richer data be returned from the MBean,
>> like tabular data?
>>
>> Please keep in mind that this data is supposed to be consumed by a
>> monitoring solution, and not a by human reader.


Re: [DISCUSS] Which I/O statistics should the FileStore expose?

2017-02-13 Thread Julian Sedding
Hi Francesco

I believe you should implement an IOMonitor using the metrics in the
org.apache.jackrabbit.oak.stats package. These can be backed by
swappable StatisticsProvider implementations. I believe by default
it's a NOOP implementation. However, I believe that if the
MetricStatisticsProvider implementation is used, it automatically
exposes the metrics via JMX. So all you need to do is feed the correct
data into a suitable metric. I believe Chetan contributed these, so he
will know more about the details.

Regards
Julian


On Mon, Feb 13, 2017 at 6:21 PM, Francesco Mari
 wrote:
> Hi all,
>
> The recently introduced IOMonitor allows the FileStore to trigger I/O
> events. Callback methods from IOMonitor can be implemented to receive
> information about segment reads and writes.
>
> A trivial implementation of IOMonitor is able to track the following raw data.
>
> - The number of segments read and write operations.
> - The duration in nanoseconds of every read and write.
> - The number of bytes read or written by each operation.
>
> We are about to expose this kind of information from an MBean - for
> the sake of discussion, let's call it IOMonitorMBean. I'm currently in
> favour of starting small and exposing the following statistics:
>
> - The duration of the latest write (long).
> - The duration of the latest read (long).
> - The number of write operations (long).
> - The number of read operations (long).
>
> I would like your opinion about what's the most useful way to present
> this data through an MBean. Should just raw data be exposed? Is it
> appropriate for IOMonitorMBean to perform some kind of aggregation,
> like sum and average? Should richer data be returned from the MBean,
> like tabular data?
>
> Please keep in mind that this data is supposed to be consumed by a
> monitoring solution, and not a by human reader.


[DISCUSS] Which I/O statistics should the FileStore expose?

2017-02-13 Thread Francesco Mari
Hi all,

The recently introduced IOMonitor allows the FileStore to trigger I/O
events. Callback methods from IOMonitor can be implemented to receive
information about segment reads and writes.

A trivial implementation of IOMonitor is able to track the following raw data.

- The number of segments read and write operations.
- The duration in nanoseconds of every read and write.
- The number of bytes read or written by each operation.

We are about to expose this kind of information from an MBean - for
the sake of discussion, let's call it IOMonitorMBean. I'm currently in
favour of starting small and exposing the following statistics:

- The duration of the latest write (long).
- The duration of the latest read (long).
- The number of write operations (long).
- The number of read operations (long).

I would like your opinion about what's the most useful way to present
this data through an MBean. Should just raw data be exposed? Is it
appropriate for IOMonitorMBean to perform some kind of aggregation,
like sum and average? Should richer data be returned from the MBean,
like tabular data?

Please keep in mind that this data is supposed to be consumed by a
monitoring solution, and not a by human reader.


Re: Clone Not implemented

2017-02-13 Thread Alex Parvulescu
Hi,

> The repository description might be wrong here.
It doesn't look like it though [0]. Maybe an error on the client side
reading/displaying the values?

alex


[0]
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java#L233



On Mon, Feb 6, 2017 at 9:23 AM, Michael Dürig  wrote:

>
> Hi,
>
> Shareable nodes are not supported by Oak and there is currently no
> discussions for implementing this feature. The repository description might
> be wrong here. Please report an issue at https://issues.apache.org/jira
> /browse/OAK if you think this is a bug. Attaching a test case for the
> problem helps getting this addressed.
>
> Michael
>
>
>
> On 3.2.17 4:05 , Valentina Marioli wrote:
>
>> Hi, I'm Valentina Marioli,
>> I'm working with Oak and I get confused using "clone" method.
>>
>> Querying the repository descriptor table with
>> "Repository.OPTION_SHAREABLE_NODES_SUPPORTED" , I get "true", so I
>> aspect that shareable nodes are supported, but when I try to use the
>> method "clone", I get "Not implemented".
>> Is it right? Is "clone" operation not supported yet?
>> When are you planning to release this feature?
>>
>> Regards,
>> Valentina Marioli
>>
>