You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2009/05/12 22:24:45 UTC
[jira] Commented: (CASSANDRA-163) fix RackUnawareStrategyTest
[ https://issues.apache.org/jira/browse/CASSANDRA-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708603#action_12708603 ]
Jonathan Ellis commented on CASSANDRA-163:
------------------------------------------
here is the problem
void put(String key, ColumnFamily columnFamily, CommitLog.CommitLogContext cLogCtx) throws IOException
{
isDirty_ = true;
executor_.submit(new Putter(key, columnFamily));
if (isThresholdViolated())
{
enqueueFlush(cLogCtx);
}
}
(enqueueFlush is the one that swaps out this memtable for a new one in CFS and calls shutdown)
the problem is that we submit first and ask questions later, so we can clearly submit to this [old] memtable on one thread after another thread starts the shutdown.
the only option I see is going to back to the old double-checked-ish logic of checking threshold first, then recursing to resubmit if we switch memtables. (overriding TPE.execute/addIfUnderMaximumPoolSize is not an option since liberal use of private variables is made.)
> fix RackUnawareStrategyTest
> ---------------------------
>
> Key: CASSANDRA-163
> URL: https://issues.apache.org/jira/browse/CASSANDRA-163
> Project: Cassandra
> Issue Type: Bug
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
>
> it's been failing for forever but it was in the wrong directory so testng didn't run it. I've moved it to the right directory for the junit migration but commented out.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.