Merge branch 'cassandra-3.0' into cassandra-3.X

This commit is contained in:
Robert Stupp 2016-11-13 12:56:22 +01:00
commit c31463a4cf
3 changed files with 51 additions and 1 deletions

View File

@ -1,3 +1,8 @@
3.11
Merged from 3.0:
* Prevent reloading of logback.xml from UDF sandbox (CASSANDRA-12535)
3.10
* Fix CommitLogSegmentManagerTest (CASSANDRA-12283)
* Fix cassandra-stress truncate option (CASSANDRA-12695)

View File

@ -29,6 +29,14 @@ import java.security.ProtectionDomain;
import java.util.Collections;
import java.util.Enumeration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.TurboFilterList;
import ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter;
import ch.qos.logback.classic.turbo.TurboFilter;
/**
* Custom {@link SecurityManager} and {@link Policy} implementation that only performs access checks
* if explicitly enabled.
@ -69,9 +77,44 @@ public final class ThreadAwareSecurityManager extends SecurityManager
if (installed)
return;
System.setSecurityManager(new ThreadAwareSecurityManager());
Logger l = LoggerFactory.getLogger(ThreadAwareSecurityManager.class);
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) l;
LoggerContext ctx = logbackLogger.getLoggerContext();
TurboFilterList turboFilterList = ctx.getTurboFilterList();
for (int i = 0; i < turboFilterList.size(); i++)
{
TurboFilter turboFilter = turboFilterList.get(i);
if (turboFilter instanceof ReconfigureOnChangeFilter)
{
ReconfigureOnChangeFilter reconfigureOnChangeFilter = (ReconfigureOnChangeFilter) turboFilter;
turboFilterList.set(i, new SMAwareReconfigureOnChangeFilter(reconfigureOnChangeFilter));
break;
}
}
installed = true;
}
/**
* The purpose of this class is
*/
private static class SMAwareReconfigureOnChangeFilter extends ReconfigureOnChangeFilter
{
SMAwareReconfigureOnChangeFilter(ReconfigureOnChangeFilter reconfigureOnChangeFilter)
{
setRefreshPeriod(reconfigureOnChangeFilter.getRefreshPeriod());
}
protected boolean changeDetected(long now)
{
if (isSecuredThread())
return false;
return super.changeDetected(now);
}
}
static
{
//

View File

@ -1791,7 +1791,8 @@ public class AggregationTest extends CQLTester
" STYPE map<text,bigint>\n" +
" INITCOND { };");
for (int i = 0; i < 1000; i++)
long tEnd = System.currentTimeMillis() + 150;
while (System.currentTimeMillis() < tEnd)
{
execute("SELECT " + releasesByCountry + "(country,title) FROM %s WHERE year=1980");
}
@ -1814,6 +1815,7 @@ public class AggregationTest extends CQLTester
if (turboFilter instanceof ReconfigureOnChangeFilter)
{
ReconfigureOnChangeFilter reconfigureFilter = (ReconfigureOnChangeFilter) turboFilter;
reconfigureFilter.setContext(ctx);
reconfigureFilter.setRefreshPeriod(millis);
reconfigureFilter.stop();
reconfigureFilter.start(); // start() sets the next check timestammp