You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Jean-Daniel Cryans (JIRA)" <ji...@apache.org> on 2017/07/06 21:29:00 UTC
[jira] [Resolved] (KUDU-406) [java client] TestKuduSession is flaky
when testing for PleaseThrottleException
[ https://issues.apache.org/jira/browse/KUDU-406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Daniel Cryans resolved KUDU-406.
-------------------------------------
Resolution: Duplicate
Fix Version/s: n/a
Resolving as a duplicate of the newer KUDU-1521.
> [java client] TestKuduSession is flaky when testing for PleaseThrottleException
> -------------------------------------------------------------------------------
>
> Key: KUDU-406
> URL: https://issues.apache.org/jira/browse/KUDU-406
> Project: Kudu
> Issue Type: Bug
> Components: client
> Affects Versions: M4
> Reporter: Jean-Daniel Cryans
> Fix For: n/a
>
>
> From Adar:
> {noformat}
> This code:
> // Test sending edits too fast
> session.setFlushMode(KuduSession.FlushMode.AUTO_FLUSH_BACKGROUND);
> session.setMutationBufferSpace(10);
> // The buffer has a capacity of 10, we insert 21 rows, meaning we fill the first one,
> // force flush, fill a second one before the first one could come back,
> // and the 21st row will be sent back.
> boolean gotException = false;
> for (int i = 50; i < 71; i++) {
> try {
> session.apply(createInsert(i));
> } catch (PleaseThrottleException ex) {
> gotException = true;
> assertEquals(70, i);
> // Wait for the buffer to clear
> ex.getDeferred().join(DEFAULT_SLEEP);
> session.apply(ex.getFailedRpc());
> session.flush().join(DEFAULT_SLEEP);
> }
> }
> assertTrue(gotException); <--
> assertEquals(21, countInRange(50, 71));
> If the client is running particularly slowly, isn't it possible for the background flush to finish before the 11th (or possibly 21st) row is inserted? Then we won't throw a PleaseThrottleException.
> {noformat}
> It's indeed possible and it happened once. We need a way to block the background flushing from happening, maybe through mocking.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)