Skip to content

feat: complete Java 17 candidate SDK cutover - #46

Closed
imbajin wants to merge 34 commits into
java17-module-prerequisitesfrom
java17-candidate-cutover
Closed

imbajin wants to merge 34 commits into
java17-module-prerequisitesfrom
java17-candidate-cutover

Conversation

@imbajin

@imbajin imbajin commented Oct 3, 2026 •

Copy link
Copy Markdown

This switches the Java Client, ordinary Loader, Tools and Hubble to Java 17 after module preparation in #40–#45. Before this change, the shared build used older bytecode and published HugeGraph dependencies. The candidate build now installs the locked server reactor into an isolated Maven repository so Common, Core, PD and Store artifacts come from the same source. Released Server 1.7 retains its supported Java 11 JVM and separate dependencies.

TODO (apache/hugegraph#3263): the organization Server source is only a pre-merge validation input. After the Java 17 Server migration merges, switch to verified ASF source and revalidate SDK/runtime compatibility; prefer distinct staged SDK coordinates when available. Do not retain the temporary fork/ref/SHA after the merge.

The base materializes sibling prerequisites for review. Merge #40 first, then #41/#42/#43/#45 independently; #44 follows #41 and #45 so overlapping release metadata is coordinated before Hubble. After those prerequisites land, retarget this PR to master. The prerequisite union is not an additional merge unit. Container builds follow in #37; Spark Loader and Flink CDC are separate stacks in #38 and #47.

flowchart LR
    source[Locked server source] --> sdk[Isolated same-source SDK]
    sdk --> tools[Core tools on Java 17]
    tools --> checks[Runtime compatibility checks]
    legacy[Released servers on supported JVMs] --> checks
    candidate[Candidate server on Java 17] --> checks
Loading

The migration guide records separate installation, Loader usage, ZIP/plain backup migration, Hubble H2 metadata handling and the measured compatibility matrix. Previous distributions, metadata and graph data are retained. Standalone Loader and Tools archives include the shared legal files; combined archives omit macOS sidecars. The original candidate SDK manifest is retained by CI and copied into each candidate distribution, with stale staging metadata removed before the optional copy. Distinct, publicly available SDK coordinates and renewed compatibility checks are required before any external Maven publication or release candidate.

Tools CI defines separate candidate and released Server 1.7 fixtures. Hubble field selection now clears the previous native form-validation error when selecting fields or changing data sources; the regression checks that validation state directly. The retry-button test waits until the control is usable before clicking, while preserving its original retry assertions.

Validation includes a clean native Java 17 reactor build, subsequent Hubble backend and script packaging checks, Client/Loader/Hubble tests, Client API/functional and ordinary Loader/Tools flows against released Server 1.7 and the locked candidate, packaged Loader/Tools on standalone Server 1.5, original Client compatibility probes, and old Tools backup restoration. Original Client 1.5 REST cases pass against the candidate; its legacy Gremlin alias remains an observed limitation.

The source increments passed three independent reviews. Full frontend tests, lint, translations and the new optimized build pass. All four distributions were assembled through their configured Maven goals and independently checked: the new UI and exact raw SDK manifest are present, while every Java JAR, SDK artifact, launcher and legal payload preserves its verified bytes. Hubble process-identity tests passed in actual Ubuntu and macOS CI. Core CI covers Tools functional tests against candidate and released Server 1.7 fixtures and uploads independent SDK manifests. Required checks must pass on the current head before merging. The image/API-engine and Flink recovery checks passed on their respective earlier source trees; their final rebased stacks still require fresh CI.

Final Hubble candidate-SDK browser workflows, browser-created metadata persistence and complete HBase bulkload/backend readback remain pending. Unit tests, form-state checks and HFile generation do not establish those flows. PR merge and formal release are outside this delivery.

The consolidated upstream CI is retained: module workflows remain reusable, and shared composite actions configure Java, Maven repositories and service startup. Central precedes ASF Stage without a per-workflow boolean switch; CI requires Maven 3.9 or newer.

Latest CI integration validation: workflow lint, CI policy, shared fixture and initialization contracts, SDK verifier, installer and Hubble helper regressions pass locally. Updated-head remote integration checks remain pending. The historical Server 1.7 fixture still uses the inherited build-once source package; Docker replacement and removing source SDK bootstrap after staged SDK availability remain follow-up work.

CI fixes include the Java 17 Docker build foundations required by the core cutover (SDK bootstrap, Python verification and build-context inclusion), plus exact canonical-base validation for GitHub native PR stacks. Image startup gates and ordinary PR freshness checks remain enforced. The image-specific CI/cache/provenance extensions remain in the separate image PR. Local policy and image-context regressions pass; full new-head image builds and runtime tests remain pending CI.

- compile core tools with Java 17 and current mocking support
- install and verify the locked same-source SDK in isolated CI repositories
- separate released server JVMs and candidate fixture configuration
- document migration boundaries and cover runtime license changes
- include the latest reviewed Spark preparation ancestor
- keep the released fixture JVM scoped by the shared action
- preserve the reviewed Java 17 candidate workflow
@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b53007b7-a50f-4600-83e6-813b2b4547d7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-05T16:38:42.220923Z 802c1e1 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3170e0d3f1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pom.xml Resolved
Comment thread docs/java17-migration.md Resolved
- Give each HTTPS test its own client and clean it up only when opened.
- Clear the client even when closing fails so teardown cannot reuse it.
- Prepare the pinned official trust store once per class and verify downloads.
- Compile and probe negative builder lifecycle on JDK 11 and 17 without server writes.
- inherit the current public module prerequisite commits
- preserve Java 17 compilation and candidate charset behavior
- keep isolated HTTPS fixtures and safe H2 validation errors
- include Spark TLS configuration and credential-safe logging
- qualify the published Common request encoding limitation
- keep candidate deployment requirements tied to actual behavior
- retain UTF-8 options for the earlier preparation build
- link Cucumber bundled MIT and Boost grants explicitly
- retain embedded copyrights and existing full license texts
- document the companion Java 17 image build prerequisite
- include the current reviewed Spark preparation head
- preserve candidate production and dependency settings
- keep the union as a review prerequisite branch
- keep generated JKS files outside text formatting checks
- retain the exact pinned certificate fixture bytes
- preserve normal source style and build verification
- retain exact notices for current runtime dependencies
- include shared license files in Loader and Tools archives
- omit macOS sidecars from the combined distribution
- record original and candidate server validation boundaries
- retain the original Client 1.5 Gremlin alias limitation
- distinguish backend checks from pending Hubble browser gates
- retain the current candidate SDK and Java 17 build settings
- inherit validated Spark endpoint and H2 memory guards
- preserve the reviewed package legal and archive changes
- retain all module prerequisites as ancestors
- carry verified launcher process guards into the candidate
- inherit isolated cross-platform launcher regression checks

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93600349b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/tools-ci.yml Resolved

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93600349b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/java17-migration.md Outdated
Comment on lines +9 to +11
The Java 17 server candidate retains the Maven version `1.7.0`. Its Common, PD,
gRPC and Store artifacts must come from the same source commit; Maven Central
artifacts with that version are not interchangeable with the candidate.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Publish candidate dependencies under distinct coordinates

For downstream Maven consumers, the isolated candidate repository created by the build scripts is unavailable: the flattened Toolchain POMs still declare org.apache.hugegraph dependencies at 1.7.0, so Maven resolves the published Central artifacts that this section explicitly says are not interchangeable with the candidate. A Toolchain 1.8 artifact can therefore run against different Common/PD/gRPC code than it was compiled and tested with, causing linkage or behavioral failures; give the candidate artifacts deployable, distinct coordinates and reference those coordinates before publishing the Toolchain artifacts.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed that external Maven consumers need distinguishable published SDK identities. The migration guide now makes this an explicit release gate: before a release candidate or public Maven deployment, every Java 17 SDK coordinate must differ from the released 1.7.0 artifacts, be available to consumers, and be used for a fresh dependency/runtime matrix validation. This work keeps the locked source for isolated candidate validation; SDK versioning and publication remain separate release work.

- preserve raw SDK provenance in CI and refreshed archives
- test Tools against candidate and released 1.7 fixtures
- clear source-field errors with native form updates
- wait for retry-button readiness in frontend tests
- document SDK coordinates required before Maven publication
@imbajin
imbajin added this pull request to stack #48 October 4, 2026 13:18

@bitflicker64 bitflicker64 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Score: 6/10. Summary: The Java 17 switch (release 17 in the parent, module overrides removed), the candidate/release-1.7 CI matrix and the fixture repository isolation look correct, and CI is green. Two documents assume the candidate SDK, but the documented default build still resolves the Maven Central 1.7.0 SDK under the same coordinates, which changes Spark request encoding and the jars bundled in Hubble. Evidence: read the diff against java17-module-prerequisites (license text skimmed); compared AbstractRestClient.buildRequestBody at apache/hugegraph 1.7.0 and the locked candidate commit 4c162f5; ran a JDK 17.0.20 charset probe with LANG=C; ran node --test install-server.test.cjs (19 pass), test_configure_gremlin_fixture.py (3 pass) and bash -n on the changed scripts.

Comment thread hugegraph-spark-connector/README.md Resolved
Comment thread hugegraph-dist/release-docs/LICENSE Resolved
- clarify the default Maven SDK source
- retain driver and executor UTF-8 options
- qualify the isolated candidate SDK exception
- replace dated results with compatibility scope
- remove separate PR rollout instructions
- retain SDK identity and release validation requirements
- retain Hubble request and launcher ownership
- inherit loader diagnostics and regression coverage
- align current SDK guidance and notice mappings
- inherit finalized prerequisite branch content
- preserve component-specific Java 17 changes
- reconcile upstream squash history without rewriting heads
- inherit the upstream-ready metadata guide
- remove the historical validation screenshot
- preserve module-specific code and configuration

# Conflicts:
#	hugegraph-hubble/README.md
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Reject distribution audits when the JDK jar tool is missing.
Stop the audit when a bundled JAR cannot be enumerated.
Read complete JAR listings before detecting native entries.
Cover failure and success paths with CI regression tests.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@imbajin

imbajin commented Oct 5, 2026 •

Copy link
Copy Markdown
Author

本轮 Linux 分布式验收仍在进行中。真实 Chrome、完整认证矩阵和导入复测尚未完成,当前不能据此判断发行就绪。

锁定组合已完成隔离同源构建、实际 JDK 17 运行核验,以及候选 SDK 来源和 bundled JAR 校验。A 匿名单元实际为单 PD/Store/Server;B 匿名单元实际为三 PD/Store/Server,数据分区核实为三个 voting peers。两套均使用真实 HStore,Hubble 没有填写手工 Server URL,能够经 PD 发现服务;这些运行/API 证据不替代浏览器验收。

A 已完成独立节点故障和整套干净重启,保留的 schema、点属性及 API 准备的 Hubble 收藏元数据一致。B 已完成真实 PD leader、数据 Store leader、Server 单节点故障、Store 多数派丧失与恢复,以及整套干净重启,保留数据和 schema 一致。失去两个 Store 时实际数据请求超时或拒绝;恢复后逐条核对确认写入和超时请求。部分超时写入最终落盘,按不确定请求记录。缓存读取、Hubble 图列表和陈旧的 PD 健康元数据可能仍成功,不能用来宣称存储就绪。这里仅验证单机进程级行为。

已正常推送两项局部修复,均经过适用回归、完整包核验及三名独立只读复审。

  • 包审计拒绝 JAR 检查失败:原检查脚本在缺少 jar 或 JAR 无法枚举时仍可能报告通过;现在明确失败,并完整读取枚举结果。
  • PD 发现的 Server 不可连接时尝试下一候选:原版在发现列表包含停机节点时,Hubble 会间歇连接失败,即使其他 Server 可用。修复仅对可识别的连接拒绝或超时继续候选遍历,认证、TLS、配置和版本错误仍明确失败;失败客户端关闭,候选耗尽明确不可用,不重放业务请求。修复版实际发行包已在同一集群复跑 Server 停机场景;JFR socket 元数据证明 Hubble 使用了被停节点。原始基线失败保留,修复后结果单列。

完整原始 Client API、Func、Loader file 和 Tools Func 套件已在 A 认证 HStore 上执行,保留全部断言,结果均未通过。部分失败来自旧容量上限、RocksDB backend 和全局 auth 夹具前提;现代 GraphSpace 的跨空间关系拒绝不能被关闭以迎合旧测试。Func 的 metrics 断言还假设实例只有一个图,与本次保留的验收图不同;此项不能误判为 metrics 丢数据。OLAP 的 ALL 读取缺字段已在新 HStore 图缩成一点复现:schema 任务成功、三次写入返回该点 ID,读取模式确认 ALL 后,按 ID 和列表读取仍缺 OLAP 属性。Project 的非空 graphs 解码失败已独立复现(见新增 P1);异步 schema/ID reset 异常及时间字段问题仍在做最小复现,不混同为已确认的统一根因。认证 Server 的无凭据/错误凭据拒绝和管理员独立 CRUD 已核验,Chrome 登录与权限矩阵仍未执行。

Tools 的 auth restore 因现代 GraphSpace 关系约束失败,两种 backup/restore 在 schema 准备阶段已失败,不能说数据恢复阶段已完成;原测试还手动恢复模式,不能作为自动收尾证明。

TODO

  • P1 HStore clearGraph 保留 PD schema。全新 HStore 图创建一个 property、一个 vertex label 和一点;DELETE clear 返回 204,数据变空,但 schema 仍保留,同名同定义重建返回 400 Existed。未额外清 schema 或恢复模式掩盖结果。Client clear 契约 明确清 schema;Server clear 路径 只 truncate Store,而 schema 已迁移 PD,缓存失效不能删除 PD schema。Loader 文件全套因此出现大量 Existed 和后续级联失败,不将它们算为独立缺陷。修复需统一数据、四类 schema、缓存和 PD 的清理及失败传播;成功后同名 schema 可重建,各 Server/新 client/重启一致,其他图完整,Store/PD 清理失败不得假报成功。涉及分布式清理契约,按范围只留 TODO。
  • P1 HStore OLAP 写入与 ALL 读取不一致。独立新 HStore 图的一点复现确认,三种 OLAP 属性的 schema 任务成功,写入响应返回该点 ID,读取模式确认 ALL 后,按 ID 和列表读取仍缺全部 OLAP 字段。源码 writeOlapVertex 的适配 TODO 和 HStore 单一 OLAP 表显示,写路径使用 vertex ID,而读路径按 property ID + vertex ID 查询;不同属性可能覆盖同一 key 是源码支持的风险推断,尚未以底层数据直接证明。此项涉及 Server serializer、存储格式及旧数据兼容,按授权只留 TODO。需统一 key 和 owner 路由,并验证三类属性共存、修改一个不影响其他字段、String/Long ID、ALL/OLTP_ONLY、ID/扫描/分页/过滤、重启及 leader 切换;明确旧数据迁移或已覆盖数据的恢复边界。
  • P1 SDK TLS 主机身份校验。锁定 SDK 的 configSsl 安装 HostNameVerifier,配置 URL host 与请求 host 匹配时直接返回 true,未核验 peer 证书名称;OkHttp 调用传入的就是请求 host。证书链信任仍存在,问题是可信链的证书可能属于其他主机。原官方 fixture 对 loopback IP 没有 SAN,严格 JDK 校验已拒绝;同一端点和同一 pinned truststore 下,原 HugeClient HTTPS 构造/握手用例成功,与严格 JDK 拒绝形成实际对照;这些功能用例不能替代身份安全证据。此项涉及 SDK 公共安全行为,按范围只留 TODO、不改 SDK pin。验收须覆盖正确 IP/DNS SAN 成功、可信但错误主机名拒绝、不可信链拒绝、重定向和默认 trust 路径。
  • P1 导入生命周期与同图并发。锁定代码的 LoadTask.run/stop 缺少实例 shutdown;已有真实失败证据。本次尚未完成导入复测。Loader 恢复模式作用于整张图,直接补 finally shutdown 可能提前重置仍运行的同图任务,因此此项按授权仅留 TODO,先明确任务所有权和并发契约。验收条件包括成功、失败、暂停恢复、资源收尾、结束后必填属性拒绝,以及一个任务结束不提前恢复另一个任务的模式;不得手动恢复模式后改判 PASS。
  • 完成 A/B × 匿名/认证的真实 Chrome 功能矩阵、导入、迟到请求与重复提交回归。当前 Chrome 工具未连接,不能以 API 或 headless 替代。
  • 完成认证单元及剩余故障/权限矩阵、认证权限持久化和有界负载统计;继续核验最少在线 Store 门槛,不降低配置制造通过。
  • Client API/Func 原始全套均已执行且保留 FAIL,完成上述现代合同及实际缺陷的最小复现;Loader file 原始全套已执行并保留 FAIL,Tools Func 原始全套也已执行并保留 FAIL,整理最终矩阵、复跑说明及独立证据复审。

运行验收使用锁定包;修复包有独立来源、归档和运行记录,复测后恢复锁定构建。临时 TLS fixture 已正常停止,A 认证单元原 Hubble 已恢复,原 A 匿名单元保留数据停机,B 匿名单元已停机保留数据,当前 B 认证单元运行。checksum/signature sidecars 未检查,不声称完整发行签名验收。后续只更新本条审计评论,不重复发布。

认证空间与整套重启补充

  • 原始 A 认证拓扑独立 Server API 验证 auth=true 私有空间:观察者可读授权点,有效写入403且点未落盘;其他私有图/admin用户读取、跨空间组引用均拒绝。用户列表200空集合符合源码权限过滤,不是绕过。这些检查不能替代Chrome登录/权限验收。
  • 四个拥有的JVM均SIGTERM自然退出143并确认消失,再从原目录重启;schema、中文顶点、scoped group/belong/target/access集合精确一致,重启后权限再次通过。整份快照精确比较保留FAIL,唯一差异见以下P2。
  • P2 TODO:GraphSpace可选description恢复后从JSON null变为字符串"null"。 新建未填description的私有空间,重启前GET为null,整套重启后为字符串"null";schema/data/role集合未变。锁定Server hugegraph-core/src/main/java/org/apache/hugegraph/io/HugeGraphSONModule.java:340–341的GraphSpaceDeserializer直接jsonParser.getText()处理description,与meta/managers/SpaceMetaManager.java:59–79的JSON恢复路径相符。属于Server pin范围,仅TODO。建议显式处理VALUE_NULL;验收要求缺省、显式null、空字符串及普通描述序列化往返/冷启动保持语义,不更换本次pin。
  • 证据限制:快照脚本曾误覆盖早期权限创建ledger,记录已标EVIDENCE_CAPTURE_INTERRUPTED,独立重验证不补称创建全过程完整。审核发现密码字段data副本漏脱敏并显示在工具输出;已脱敏相关文件、修正脚本,复核相关JSON敏感键无未脱敏值,不发布原快照或凭据。
  • B认证十节点已从锁定原始归档准备并验证shipped authenticator配置,现已启动并完成下述基础API及PD故障验证;真实Chrome、导入生命周期和认证B完整矩阵仍未完成,不能宣称验收通过或发行就绪。

B 认证三副本阶段

  • B匿名10进程自然退出并确认消失,数据保留后替换为B认证,A认证仍运行,最多两个单元。B认证原始归档的3 PD、3 Store、3 Server与Hubble已真实启动;10个实际JDK17 JVM归属与heap核验,最大堆合计29GiB。
  • 3 PD实际成员ready,12个Store实际leader group每组3 voter/no learner,3 Store实际RocksDB JNI映射成立。真实CRUD含中文点/边、更新删除、必填属性拒绝及独立Server读回。
  • 3 Server无凭据/错误密码401;私有auth=true空间的会员/观察者权限及scoped组/关系/READ target/access实测,三个Server有效写403且未落盘、其他私有图/admin用户及跨空间组引用拒绝。仅限定Server API合同通过,不代Chrome。
  • B认证实际PD leader停机后另两PD实际leader/follower接管,原进程消失;停机期24/24请求及恢复后24/24成功,没有超时。24笔确认写入均经另一Server逐笔读回。原PD重新加入,三个PD ready。记录包含各请求延迟;认证 Store leader 故障已完成(见下节);认证独立 Server API 故障已完成(见下节),Hubble 当前 Server 故障仍待 Chrome;多数派丧失及完整认证持久化未完成。
  • 基础拓扑/权限证据经独立审核批准。真实Chrome仍不可用;认证B UI/导入生命周期矩阵未执行,整体仍未通过,不具备本次完整发行验收结论。

认证 Store 数据 leader 与 Project 补充

  • B认证实际Store0持有验收图有数据的partition group 3 leader。SIGTERM后原group由存活Store接管;关闭过程中与自然退出143、进程消失后分别执行24请求,均成功。原目录重启后24请求成功,36笔确认写由另一Server逐笔读取,12个实际leader group重新各3 voting peers/no learners。关闭过程与物理停机证据分开,未强杀,不能扩大为主机容灾。
  • P1 TODO:Project加入图成功后无法读取。 A认证原始Server的新唯一项目acceptance_project_one首次创建201、同ID空项目GET200;add_graph加入现有acceptance_probe返回200,随后同ID GET400,cause为ArrayList无法强转Set。原全局list在此项创建前已受旧suite坏记录影响400,因此不把全局list的前后变化当本复现证据。项目/自动组及失败状态保留,不清理后改判PASS。
  • 根因路径:Server hugegraph-core/src/main/java/org/apache/hugegraph/auth/HugeProject.java:146–147把非空graphs集合写入map;meta/managers/AuthMetaManager.java:996–997、1020–1021通过JsonUtil.fromJson(..., Map.class)读取JSON array得到ArrayList;HugeProject.java:214–215直接强转Set。影响非空项目持久化读取,get在查ID前反序列化扫描项,可能连带同空间其他项目get/list(取决于扫描顺序),未实测范围不能扩大为整个集群不可用。
  • 建议在持久化解码边界规范化集合、保持去重及元素类型校验,并兼容已有JSON array记录。本次保持Server/SDK pin,仅TODO,不修异常包装或删除坏记录。验收:空/非空create-get-list、add/remove/update、重复图去重、JSON往返/冷启动、既有array记录读取、错误元素类型、同空间多项目和跨空间隔离;复跑原Project用例及独立复现并保留旧FAIL。

独立 Server API 故障与容量边界

  • B认证Server0自然退出143、确认进程消失;两个幸存Server的认证CRUD/权限保持正确,12笔确认写入均跨Server读回。Server0从原目录恢复后读回原12笔写入,6笔新写又通过另一Server读回;观察者读授权图、admin接口拒绝、有效写403且未落盘仍正确。此次Hubble登录后的当前endpoint未知,不能称为Hubble failover或Chrome验收通过。
  • 原始A认证Server的新独立HStore图核验当前默认批量上限2500:2500点和2500边写入成功,2501点/边请求均400;末读精确2500点/2500边且ID集合等于所有确认返回ID。ServerOptions默认2500、运行rest配置无override,支持相关旧500/1000容量断言属于当前配置下的fixture假设差异。保留原suite FAIL,不改断言,不把本次API批量测试当CSV/Hubble导入或要求的万点/两万边验收。
  • 本节证据经独立审核批准;完整认证多数派/持久化、Chrome UI与导入生命周期及其他根因复现仍未完成。

- retry only typed connection failures among PD candidates
- preserve authentication and TLS failures during health checks
- close unsuccessful clients and reject exhausted candidates
- cover unavailable servers and handshake error boundaries
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

- inherit the actual ASF Hubble squash commit
- preserve published SDK and Hubble review fixes
- keep candidate runtime and source contracts intact
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

- identify pre-merge organization repository and commit pins
- require coordinated migration to ASF after the Server merge
- document the preferred transition to published SDK identities
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

- retain reusable module workflows and shared fixtures
- reconcile candidate SDK validation with the Java 17 baseline
- preserve reviewed module behavior and source contracts

# Conflicts:
#	.github/actions/setup-hugegraph-server/action.yml
#	.github/workflows/client-ci.yml
#	.github/workflows/codeql-analysis.yml
#	.github/workflows/hubble-ci.yml
#	.github/workflows/license-checker.yml
#	.github/workflows/loader-ci.yml
#	.github/workflows/server-fixture-ci.yml
#	.github/workflows/spark-connector-ci.yml
#	.github/workflows/tools-ci.yml
#	hugegraph-hubble/hubble-dist/assembly/travis/download-hugegraph.sh
#	hugegraph-hubble/hubble-dist/assembly/travis/hugegraph-server1/install-hugegraph.sh
#	hugegraph-hubble/hubble-dist/assembly/travis/hugegraph-server2/install-hugegraph.sh
- align the prerequisite review base with current ASF master
- retain candidate migration behavior unchanged
- keep dependent organization review diffs focused
- describe the recorded release and candidate identities
- distinguish Go service inputs from planning metadata
- retain recovery guidance for failed baseline resolution
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

- use Java 17 for Loader image builds and runtime
- install Python and Git required by SDK packaging
- bootstrap and verify the locked SDK inside image builds
- include the SDK verifier in Docker build contexts
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Validate GitHub stack topology and canonical base trees.
Record stack identity and recheck current branch inputs.
Reject malformed metadata and cover stale merge cases.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

After the module prerequisites, Client, ordinary Loader, Tools and Hubble now require Java 17 and use a locked, same-source candidate SDK in an isolated Maven repository. Released Server 1.7 retains its supported JVM and independent dependency fixture.
- preserve the exact ASF core squash tree
- link the finalized candidate cutover source
- avoid repeated conflicts in dependent PRs
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@imbajin imbajin closed this Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants