>From Michael Blow <[email protected]>:
Michael Blow has submitted this change. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21189?usp=email )
Change subject: Merge branch 'gerrit/morpheus' into 'gerrit/lumina'
......................................................................
Merge branch 'gerrit/morpheus' into 'gerrit/lumina'
* [NO ISSUE][HYR][MISC] Fix Span lifefycle / API issues (MB-71012)
Change-Id: If9e05840734fae281bc1fedd5f5ee3f4ef0a6e93
---
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
M
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
M
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
4 files changed, 6 insertions(+), 296 deletions(-)
Approvals:
Jenkins: Verified; Verified
Michael Blow: Looks good to me, approved
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
index 9f4ad5d..00d2358 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/rewriter/runtime/SuperActivityOperatorNodePushable.java
@@ -297,9 +297,8 @@
for (Future<Void> task : tasks) {
task.cancel(true);
}
- Span completionPoll = Span.init(TASKS_COMPLETION_POLL_SECONDS,
TimeUnit.SECONDS);
+ Span completionPoll = Span.start(TASKS_COMPLETION_POLL_SECONDS,
TimeUnit.SECONDS);
while (true) {
- completionPoll.reset();
if (completionPoll.tryAcquireUninterruptibly(completeSemaphore)) {
return true;
}
@@ -314,6 +313,7 @@
preCancelStackTraces.put(runningThread,
runningThread.getStackTrace());
}
interruptRunningThreads(runningThreads);
+ completionPoll.reset();
}
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
index e59543e..dc699b6 100644
---
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
+++
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
@@ -176,10 +176,6 @@
return s;
}
-<<<<<<< HEAD (99caa2 Null merge branch 'gerrit/morpheus' into
'gerrit/lumina')
- public static Span init(long span, TimeUnit unit) {
- return new Span(span, unit);
-=======
/**
* Creates a span that is immediately elapsed, analogous to a do/while
loop: the elapsed condition is true on the
* first check, triggering immediate action, after which {@link #reset()}
begins the countdown for subsequent
@@ -202,7 +198,6 @@
Span s = new Span(span, unit);
s.startNanos = System.nanoTime() - s.spanNanos;
return s;
->>>>>>> BRANCH (0d9477 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
}
public boolean elapsed() {
diff --git
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
index 74729cf..33e6cfb 100644
---
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
+++
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
@@ -19,294 +19,6 @@
package org.apache.hyracks.util.annotations;
import static org.apache.hyracks.util.annotations.AiProvenance.AiProvenances;
-<<<<<<< HEAD (99caa2 Null merge branch 'gerrit/morpheus' into
'gerrit/lumina')
-import static org.apache.hyracks.util.annotations.AiProvenance.Agent.GPT_5_3;
-import static
org.apache.hyracks.util.annotations.AiProvenance.Agent.GPT_5_MINI;
-import static
org.apache.hyracks.util.annotations.AiProvenance.ContributionKind.GENERATED;
-import static org.apache.hyracks.util.annotations.AiProvenance.Tool.CHATGPT_UI;
-import static
org.apache.hyracks.util.annotations.AiProvenance.Tool.GITHUB_COPILOT;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Repeatable;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotation used to record AI provenance metadata for a program element.
- *
- * <p>This annotation may be applied to types, methods, constructors and fields
- * to indicate that the element was generated or assisted by an AI model. It
- * records which {@link Agent} (model), which {@link Tool} (invocation
- * surface) and the kind of contribution via {@link ContributionKind}.</p>
- *
- * <p>The annotation is repeatable using the {@link AiProvenances} container
- * which allows multiple provenance records to be attached to the same
- * program element (for example: initial draft generated by one model and
- * later refinement by another).</p>
- *
- * <p>Example:</p>
- * <pre>
- * import static org.apache.hyracks.util.annotations.AiProvenance.Agent.*;
- * import static org.apache.hyracks.util.annotations.AiProvenance.Tool.*;
- * import static
org.apache.hyracks.util.annotations.AiProvenance.ContributionKind.*;
- *
- * {@literal @}AiProvenance(agent = GPT_5_MINI, tool = OPENAI_API,
contributionKind = GENERATED,
- * notes = "Initial PoC helper generated by GPT-5 Mini")
- * public class ExampleGeneratedClass { ... }
- * </pre>
- *
- */
-@AiProvenance(agent = GPT_5_3, tool = CHATGPT_UI, contributionKind =
GENERATED, notes = "Initial implementation generated via GPT-5.3 (browser)")
-@AiProvenance(agent = GPT_5_MINI, tool = GITHUB_COPILOT, contributionKind =
GENERATED, notes = "Refinements / Javadocs generated via GPT-5 Mini (GitHub
Copilot)")
-@Retention(RetentionPolicy.SOURCE)
-@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR,
ElementType.FIELD })
-@Repeatable(AiProvenances.class)
-public @interface AiProvenance {
- Agent agent();
-
- Tool tool();
-
- ContributionKind contributionKind() default GENERATED;
-
- String notes() default "";
-
- enum ContributionKind {
- /**
- * The element was fully generated by an AI model.
- */
- GENERATED,
-
- /**
- * The element was assisted or suggested by an AI model and requires
- * human review or modification.
- */
- ASSISTED,
-
- /**
- * The element was refactored or rewritten by an AI model (not newly
- * generated from scratch).
- */
- REFACTORED,
-
- /**
- * The element is a test that was generated by an AI model.
- */
- TEST_GENERATED,
-
- /**
- * The element is documentation that was generated by an AI model.
- */
- DOC_GENERATED
- }
-
- enum Agent {
- // OpenAI
- GPT_5_4("openai", "gpt-5.4", "GPT-5.4"),
- GPT_5_3("openai", "gpt-5.3", "GPT-5.3"),
- GPT_5_2("openai", "gpt-5.2", "GPT-5.2"),
- GPT_5_MINI("openai", "gpt-5-mini", "GPT-5 Mini"),
- GPT_5_1_CODEX("openai", "gpt-5.1-codex", "GPT-5.1 Codex"),
- GPT_5_3_CODEX("openai", "gpt-5.3-codex", "GPT-5.3 Codex"),
-
- // =========================
- // OpenAI — GPT-4.x Family
- // =========================
- GPT_4_1("openai", "gpt-4.1", "GPT-4.1"),
- GPT_4_1_MINI("openai", "gpt-4.1-mini", "GPT-4.1 Mini"),
- GPT_4_1_NANO("openai", "gpt-4.1-nano", "GPT-4.1 Nano"),
-
- GPT_4O("openai", "gpt-4o", "GPT-4o"),
- GPT_4O_MINI("openai", "gpt-4o-mini", "GPT-4o Mini"),
-
- // =========================
- // OpenAI — Reasoning (o-series)
- // =========================
- O1("openai", "o1", "o1"),
- O1_MINI("openai", "o1-mini", "o1 Mini"),
-
- O3("openai", "o3", "o3"),
- O3_MINI("openai", "o3-mini", "o3 Mini"),
-
- O4("openai", "o4", "o4"),
- O4_MINI("openai", "o4-mini", "o4 Mini"),
-
- // =========================
- // Anthropic — Claude Opus
- // =========================
- CLAUDE_OPUS_4("anthropic", "claude-4-opus", "Claude Opus 4"),
- CLAUDE_OPUS_4_6("anthropic", "claude-4-opus-4.6", "Claude Opus 4.6"),
-
- CLAUDE_OPUS_3("anthropic", "claude-3-opus", "Claude Opus 3"),
-
- // =========================
- // Anthropic — Claude Sonnet
- // =========================
- CLAUDE_SONNET_4("anthropic", "claude-4-sonnet", "Claude Sonnet 4"),
- CLAUDE_SONNET_4_5("anthropic", "claude-4-sonnet-4.5", "Claude Sonnet
4.5"),
- CLAUDE_SONNET_4_6("anthropic", "claude-4-sonnet-4.6", "Claude Sonnet
4.6"),
-
- CLAUDE_SONNET_3("anthropic", "claude-3-sonnet", "Claude Sonnet 3"),
- CLAUDE_SONNET_3_5("anthropic", "claude-3-5-sonnet", "Claude Sonnet
3.5"),
-
- // =========================
- // Anthropic — Claude Haiku
- // =========================
- CLAUDE_HAIKU_4("anthropic", "claude-4-haiku", "Claude Haiku 4"),
- CLAUDE_HAIKU_3("anthropic", "claude-3-haiku", "Claude Haiku 3"),
-
- // Google
- GEMINI_1_5_PRO("google", "gemini-1.5-pro", "Gemini 1.5 Pro"),
- GEMINI_1_5_FLASH("google", "gemini-1.5-flash", "Gemini 1.5 Flash"),
-
- // Meta
- LLAMA_3_70B("meta", "llama-3-70b", "LLaMA 3 70B"),
- LLAMA_3_8B("meta", "llama-3-8b", "LLaMA 3 8B"),
-
- // Mistral
- MISTRAL_LARGE("mistral", "mistral-large", "Mistral Large"),
- MISTRAL_SMALL("mistral", "mistral-small", "Mistral Small"),
- MIXTRAL_8X7B("mistral", "mixtral-8x7b", "Mixtral 8x7B"),
-
- // Cohere
- COMMAND_R_PLUS("cohere", "command-r-plus", "Command R+"),
- COMMAND_R("cohere", "command-r", "Command R"),
-
- // OSS / local
- DEEPSEEK_CHAT("deepseek", "deepseek-chat", "DeepSeek Chat"),
- DEEPSEEK_CODER("deepseek", "deepseek-coder", "DeepSeek Coder"),
- QWEN_2("alibaba", "qwen-2", "Qwen 2"),
- PHI_3("microsoft", "phi-3", "Phi-3"),
-
- // Fallback
- OTHER("other", "other", "Other");
-
- private final String provider;
- private final String modelId;
- private final String displayName;
-
- Agent(String provider, String modelId, String displayName) {
- this.provider = provider;
- this.modelId = modelId;
- this.displayName = displayName;
- }
-
- /**
- * Returns the provider identifier (e.g. "openai", "anthropic").
- */
- public String provider() {
- return provider;
- }
-
- /**
- * Returns a canonical model identifier useful for telemetry and
- * analytics (for example "gpt-5.4" or "claude-4-opus-4.6").
- */
- public String modelId() {
- return modelId;
- }
-
- /**
- * Human-friendly display name for the model.
- */
- public String displayName() {
- return displayName;
- }
- }
-
- /**
- * Container annotation for repeatable {@link AiProvenance} entries.
- *
- * <p>Kept with RUNTIME retention to allow tools that read compiled class
- * files to discover provenance entries. The primary {@link AiProvenance}
- * annotation is SOURCE-retained; the container is provided to satisfy the
- * repeatable contract when tools choose to materialize the annotations at
- * runtime.</p>
- */
- @Retention(RetentionPolicy.RUNTIME)
- @Target({ ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR,
ElementType.FIELD })
- @interface AiProvenances {
- /**
- * The contained provenance entries.
- */
- AiProvenance[] value();
- }
-
- enum Tool {
-
- // Web / Chat UIs
- CHATGPT_UI("openai", "chatgpt-ui", "ChatGPT"),
- CLAUDE_UI("anthropic", "claude-ui", "Claude UI"),
- GEMINI_UI("google", "gemini-ui", "Gemini UI"),
- PERPLEXITY("perplexity", "perplexity", "Perplexity"),
-
- // IDE integrations
- GITHUB_COPILOT("github", "copilot", "GitHub Copilot"),
- GEMINI_CODE_ASSIST("google", "gemini-code-assist", "Gemini Code
Assist"),
- CURSOR("cursor", "cursor", "Cursor"),
- WINDSURF("windsurf", "windsurf", "Windsurf"),
- INTELLIJ_AI_ASSISTANT("jetbrains", "ai-assistant", "JetBrains AI
Assistant"),
- VSCODE_AI_EXTENSION("microsoft", "vscode-ai", "VS Code AI Extension"),
-
- // APIs / SDK usage
- OPENAI_API("openai", "api", "OpenAI API"),
- ANTHROPIC_API("anthropic", "api", "Anthropic API"),
- GOOGLE_AI_API("google", "api", "Google AI API"),
- GENERIC_API("generic", "api", "Generic API"),
-
- // Agent / orchestration platforms
- FACTORY("factory", "factory-ai", "Factory.ai"),
- LANGCHAIN("langchain", "langchain", "LangChain"),
- LLAMAINDEX("llamaindex", "llamaindex", "LlamaIndex"),
- CUSTOM_AGENT("custom", "custom-agent", "Custom Agent Runtime"),
-
- // CLI tools
- OPENAI_CLI("openai", "cli", "OpenAI CLI"),
- ANTHROPIC_CLI("anthropic", "cli", "Anthropic CLI"),
- FACTORY_CLI("factory", "factory-cli", "Factory.ai CLI"),
-
- // Fallback
- OTHER("other", "other", "Other");
-
- private final String provider;
- private final String id;
- private final String displayName;
-
- Tool(String provider, String id, String displayName) {
- this.provider = provider;
- this.id = id;
- this.displayName = displayName;
- }
-
- /**
- * Returns the provider identifier (e.g. "openai", "anthropic").
- */
- public String provider() {
- return provider;
- }
-
- /**
- * Returns an identifier for the specific tool or integration
- * (for example "api", "chatgpt-ui" or "copilot").
- */
- public String id() {
- return id;
- }
-
- /**
- * Human-friendly display name for the tool.
- */
- public String displayName() {
- return displayName;
- }
-
- /**
- * Returns a compact qualified name composed of provider and id which
- * is useful for logging and tagging (for example
"factory/factory-cli").
- */
- public String qualifiedName() {
- return provider + "/" + id;
-=======
import static
org.apache.hyracks.util.annotations.AiProvenance.Agent.CLAUDE_SONNET_4_6;
import static org.apache.hyracks.util.annotations.AiProvenance.Agent.GPT_5_3;
import static
org.apache.hyracks.util.annotations.AiProvenance.Agent.GPT_5_MINI;
@@ -679,7 +391,6 @@
*/
public String qualifiedName() {
return id() + "/" + id;
->>>>>>> BRANCH (0d9477 Merge branch 'gerrit/trinity' into 'gerrit/morpheus')
}
}
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21189?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: asterixdb
Gerrit-Branch: lumina
Gerrit-Change-Id: If9e05840734fae281bc1fedd5f5ee3f4ef0a6e93
Gerrit-Change-Number: 21189
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Michael Blow <[email protected]>