Repository navigation
fix(hubble): handle schema defaults and timeouts - #859
Conversation
Default omitted or null label styles and label-index flags. Map wrapped Gremlin transport timeouts to a safe HTTP 504 response. Add controller and service regressions and document HTTP requests.
Exercise the exception and response advisors through MockMvc. Verify transport status 504 and the localized response envelope. Ensure upstream exception details remain absent from the response.
Export the actual producer JDK patch and build through the fixture output. Install that same version before Hubble validates the shared SDK. Reject missing runtime identity while retaining provenance and payload checks.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #859 +/- ##
============================================
+ Coverage 55.40% 56.07% +0.67%
- Complexity 5989 6110 +121
============================================
Files 619 619
Lines 32582 32628 +46
Branches 4217 4235 +18
============================================
+ Hits 18052 18297 +245
+ Misses 12952 12734 -218
- Partials 1578 1597 +19 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: Raw transport timeouts bypass the new timeout mapping. Evidence: HugeClientFakeServerTest asserts a raw SocketTimeoutException; GremlinManager calls the same REST client through GremlinAPI.post.
| throw this.serverQueryException(e); | ||
| } catch (ClientException e) { | ||
| for (Throwable cause = e; cause != null; cause = cause.getCause()) { | ||
| if (cause instanceof java.net.SocketTimeoutException || |
There was a problem hiding this comment.
SocketTimeoutException: HugeClientFakeServerTest.testSlowGraphRequestTimesOut asserts that behavior, and Gremlin requests use the same client through GremlinAPI.post. Such an exception bypasses this ClientException branch and reaches the generic exception handler, so a real transport timeout still returns the generic failure instead of HTTP 504. Please classify timeout causes in the generic exception path as well and add a slow HTTP Gremlin request test.
Before → After
Before: Missing label styles or label-index flags can cause null errors, and wrapped Gremlin transport timeouts can escape the intended error mapping.
After: Apply defaults while preserving explicit styles and
false; map wrapped transport timeouts to a timeout error with a concise localized message and asynchronous-job guidance. Add focused controller/service regressions and an HTTP API guide.Validation boundary
The source author reports 59 focused tests passing and negative controls reproducing the original errors. Tests skipped the remote-resources plugin because of metadata-transfer failures; this is not a live Hubble/HStore or large-dataset benchmark. Synchronous evaluation limits and long-running label scans remain separate; no 41M-vertex performance improvement is claimed. Static inspection confirms that ResponseAdvisor maps error-envelope statuses to HTTP statuses; the latest revision adds MockMvc coverage for this contract. Independent runtime verification remains incomplete. Paired bilingual website documentation is being prepared.
Related issue: hugegraph#103
Source PR: 🔗 hugegraph/hugegraph-toolchain #104
Visual overview
Schema creation preserves explicit settings while supplying null defaults. Wrapped transport timeouts become a localized response with HTTP 504 through ResponseAdvisor. Static source overview; not independent validation of large datasets, authentication, or HStore integration.