yugaaank commented on issue #3099: URL: https://github.com/apache/hugegraph/issues/3099#issuecomment-5048520098
I've submitted [PR #3104](https://github.com/apache/hugegraph/pull/3104) with a self-contained `run-riscv64-smoke.sh` script that covers all test items listed in this issue. **What it tests:** - Architecture assertion (`uname -m == riscv64`) - RocksDB JNI open/put/get/close — compiles a small Java program on the host (x86), runs it inside the riscv64 container against `rocksdbjni` to verify the JNI + libatomic linkage works - HugeGraph init + health — reuses the repo's own `docker-entrypoint.sh` (which runs `init-store.sh` before `start-hugegraph.sh`), polls `GET /graphs` until 200 - REST schema CRUD — creates propertykey, vertexlabel, edgelabel, two vertices, and an edge, then asserts `GET /vertices` and `GET /edges` return data via jq - Gremlin query — `g.V().hasLabel("person").count() == 2` on port 8182 with the graph aliases binding - Restart + persistence — restarts the container, re-checks health, verifies vertices survived the restart **Key technical findings during development:** - The server returns gzip-compressed responses by default (`Accept: application/json` is ignored), so all curl calls use `--compressed` - `jq` must run inside the Docker container via `docker exec -i`, not on the host — the runtime image installs it but the host may not have it - The Gremlin endpoint is on port 8182 (not 8080), and requires `aliases: {"g":"__g_DEFAULT-hugegraph"}` binding to resolve the graph traversal source - `-XX:G1RSetUpdatingPauseTimePercent` is not supported on the Ubuntu OpenJDK 11 RISC-V build — the script strips it from `hugegraph-server.sh` - `LD_PRELOAD=/usr/lib/libatomic.so.1` is required for `rocksdbjni`'s `__atomic_compare_exchange_1` symbol on RISC-V - The analyzer dictionary loads twice under QEMU (~3.5 min each), so the startup timeout is raised to 1800s and the health check timeout to 3600s - `--memory=4g` prevents host OOM under QEMU emulation **Design:** Single self-contained script with full cleanup via EXIT trap (removes container, volume, image, and temp dirs). Supports `KEEP=1` for live debugging and accepts a pre-built tarball to skip the Maven build. Output matches the expected format from this issue. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
