[
https://issues.apache.org/jira/browse/OAK-4735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15487426#comment-15487426
]
Andrei Dulceanu commented on OAK-4735:
--------------------------------------
Per [~frm]'s latest discovery
{{DataStoreTestBase.testProxyFlippedIntermediateByteChange2}} invoked from
{{ExternalPrivateStoreIT}} seems to be stuck forever in the client waiting for
the connection to close:
{code:java}
"main" #1 prio=5 os_prio=31 tid=0x00007fb913806800 nid=0x1703 in Object.wait()
[0x0000700000218000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:239)
- locked <0x00000007b822e468> (a
io.netty.channel.AbstractChannel$CloseFuture)
at
io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129)
at
io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28)
at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:340)
at
io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117)
at
io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:28)
at
org.apache.jackrabbit.oak.segment.standby.client.StandbyClient.run(StandbyClient.java:179)
at
org.apache.jackrabbit.oak.segment.standby.DataStoreTestBase.useProxy(DataStoreTestBase.java:205)
at
org.apache.jackrabbit.oak.segment.standby.DataStoreTestBase.testProxyFlippedIntermediateByteChange2(DataStoreTestBase.java:171)
{code}
the monitor is acquired by these lines in {{StandbyClient}}:
{code:java}
try {
long startTimestamp = System.currentTimeMillis();
// Start the client.
ChannelFuture f = b.connect(host, port).sync();
// Wait until the connection is closed.
f.channel().closeFuture().sync();
this.failedRequests = 0;
this.syncStartTimestamp = startTimestamp;
this.syncEndTimestamp = System.currentTimeMillis();
this.lastSuccessfulRequest = syncEndTimestamp / 1000;
} catch (Exception e) {
this.failedRequests++;
log.error("Failed synchronizing state.", e);
} finally {
synchronized (this.sync) {
this.active = false;
shutdownNetty();
}
}
{code}
/cc [~marett]
> Fix unit tests in DataStoreTestBase
> -----------------------------------
>
> Key: OAK-4735
> URL: https://issues.apache.org/jira/browse/OAK-4735
> Project: Jackrabbit Oak
> Issue Type: Technical task
> Components: segment-tar
> Reporter: Andrei Dulceanu
> Assignee: Andrei Dulceanu
> Fix For: Segment Tar 0.0.12
>
> Attachments: OAK-4735-01.patch
>
>
> Currently failing tests (8/8):
> * {{testSync()}}
> * {{testProxySkippedBytes()}}
> * {{testProxySkippedBytesIntermediateChange()}}
> * {{testProxyFlippedStartByte()}}
> * {{testProxyFlippedIntermediateByte()}}
> * {{testProxyFlippedIntermediateByte2()}}
> * {{testProxyFlippedIntermediateByteChange()}}
> * {{testProxyFlippedIntermediateByteChange2()}}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)