diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/Config.java b/fe/fe-core/src/main/java/org/apache/doris/common/Config.java index 50c677013a..c1bfb504e7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/Config.java @@ -1894,5 +1894,11 @@ public class Config extends ConfigBase { */ @ConfField(mutable = false, masterOnly = false) public static long external_cache_expire_time_minutes_after_access = 24 * 60; // 1 day + + /** + * Set session variables randomly to check more issues in github workflow + */ + @ConfField(mutable = true, masterOnly = false) + public static boolean use_fuzzy_session_variable = false; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java index 6a9e16d9fb..03c75400de 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java @@ -21,6 +21,7 @@ import org.apache.doris.analysis.UserIdentity; import org.apache.doris.catalog.DatabaseIf; import org.apache.doris.catalog.Env; import org.apache.doris.cluster.ClusterNamespace; +import org.apache.doris.common.Config; import org.apache.doris.common.UserException; import org.apache.doris.common.telemetry.Telemetry; import org.apache.doris.common.util.DebugUtil; @@ -213,6 +214,9 @@ public class ConnectContext { remoteIP = mysqlChannel.getRemoteIp(); } queryDetail = null; + if (Config.use_fuzzy_session_variable) { + sessionVariable.initFuzzyModeVariables(); + } } public boolean isTxnModel() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index f40b8bfcfb..e28e454512 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -38,6 +38,7 @@ import java.io.Serializable; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; +import java.util.Random; /** * System variable. @@ -588,6 +589,16 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = INTERNAL_SESSION) public boolean internalSession = false; + // If this fe is in fuzzy mode, then will use initFuzzyModeVariables to generate some variables, + // not the default value set in the code. + public void initFuzzyModeVariables() { + Random random = new Random(); + this.parallelExecInstanceNum = random.nextInt(8) + 1; + this.enableLocalExchange = random.nextBoolean(); + this.disableJoinReorder = random.nextBoolean(); + this.disableStreamPreaggregations = random.nextBoolean(); + } + public String getBlockEncryptionMode() { return blockEncryptionMode; }