Update Painless Loop Counter to be Higher (#22560)

Updated Painless loop counter to be 1000000 statements instead of 10000 for update queries.
This commit is contained in:
Jack Conradson 2017-01-11 09:47:04 -08:00 committed by GitHub
commit 97c4cd4812
2 changed files with 9 additions and 7 deletions

View File

@ -41,7 +41,7 @@ public final class CompilerSettings {
* Constant to be used for enabling additional internal compilation checks (slower).
*/
public static final String PICKY = "picky";
/**
* For testing: do not use.
*/
@ -49,15 +49,17 @@ public final class CompilerSettings {
/**
* The maximum number of statements allowed to be run in a loop.
* For now the number is set fairly high to accommodate users
* doing large update queries.
*/
private int maxLoopCounter = 10000;
private int maxLoopCounter = 1000000;
/**
* Whether to throw exception on ambiguity or other internal parsing issues. This option
* makes things slower too, it is only for debugging.
*/
private boolean picky = false;
/**
* For testing. Do not use.
*/
@ -102,7 +104,7 @@ public final class CompilerSettings {
public void setPicky(boolean picky) {
this.picky = picky;
}
/**
* Returns initial call site depth. This means we pretend we've already seen N different types,
* to better exercise fallback code in tests.
@ -110,7 +112,7 @@ public final class CompilerSettings {
public int getInitialCallSiteDepth() {
return initialCallSiteDepth;
}
/**
* For testing megamorphic fallbacks. Do not use.
* @see #getInitialCallSiteDepth()

View File

@ -148,10 +148,10 @@ public class WhenThingsGoWrongTests extends ScriptTestCase {
public void testLoopLimits() {
// right below limit: ok
exec("for (int x = 0; x < 9999; ++x) {}");
exec("for (int x = 0; x < 999999; ++x) {}");
PainlessError expected = expectScriptThrows(PainlessError.class, () -> {
exec("for (int x = 0; x < 10000; ++x) {}");
exec("for (int x = 0; x < 1000000; ++x) {}");
});
assertTrue(expected.getMessage().contains(
"The maximum number of statements that can be executed in a loop has been reached."));