Fix Flaky .Net and server tests (#3431) * Fix flaky transaction integration tests shouldTrackTransactionCountAccurately was racing because commitTx() and rollbackTx() returned without consuming the HTTP response. With chunked transfer encoding, the client can receive response headers before the server completes transactionManager.destroy(). Wrapping in try-with-resources ensures the full response is read, guaranteeing server-side processing is complete before asserting the count. shouldTimeoutIdleTransactionWithNoOperations used a 1ms timeout, which could expire during the beginTx() HTTP round-trip itself, causing getFirstHeader(TRANSACTION_ID) to return null and NPE. Increased to 500ms — still well below the 1000ms sleep that validates timeout behavior. * Serialize .NET integration tests that share the Gremlin Server graph PropertyDeserializationTests and GraphTraversalTests were running concurrently with @GraphComputerOnly Gherkin scenarios. During OLAP computation, TinkerGraphComputer sets a graphComputerView on the shared TinkerGraph instance. Any concurrent read through TinkerVertex sees compute properties (like haltedTraversers) merged with real properties, causing spurious assertion failures and NPEs. Place all tests that hit the shared server into a single non-parallel xUnit collection (GremlinServerTests) so they never overlap with an active GraphComputer view. Assisted-by: Kiro:claude-opus-4-6
Apache TinkerPop™ is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). It provides the Gremlin graph traversal language, drivers, and tools for working with property graphs across a wide variety of underlying data systems.
TinkerPop defines a common interface and language (Gremlin) so that applications can work against many different graph systems without being locked into a single vendor. It includes a reference in‑memory graph database (TinkerGraph), Gremlin Server, language variants, and a rich collection of recipes and documentation.
Key resources:
TinkerPop uses Maven and requires Java 11/17 for proper building and proper operations. To build, execute unit tests and package Gremlin Console/Server run:
mvn clean install
Please see the Building on Windows section for Windows-specific build instructions.
The zip distributions can be found in the following directories:
gremlin-server/targetgremlin-console/targetPlease see the CONTRIBUTING.md file for more detailed information and options for building, test running and developing TinkerPop.
Download Gremlin Console (compatible with Java 11/17) and unzip to a directory, then:
$ bin/gremlin.sh \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin> Gremlin.version() ==>3.8.0 gremlin> graph = TinkerFactory.createModern() ==>tinkergraph[vertices:6 edges:6] gremlin> g = traversal().with(graph) ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard] gremlin> g.V().has('name','vadas').valueMap() ==>[name:[vadas], age:[27]]
From the Gremlin Console, you can connect to a TinkerGraph instance and run your first traversals. Refer to the Getting Started for detailed walkthroughs and examples.
Common ways to use TinkerPop include:
See the Reference Documentation for supported features, configuration options, and other details.
The full TinkerPop documentation is published on the project website and is also maintained in this repository under docs/src/ as AsciiDoc “books.”
When changing or adding documentation, follow the existing AsciiDoc structure in docs/src/** and update the relevant index.asciidoc files so new content is included in the build.
Contributions to Apache TinkerPop are welcome. The Developer Documentation and contributing guide describe how to set up a development environment, run tests, and submit changes.
CONTRIBUTING.md in the repository root.Before opening a pull request, please:
CHANGELOG.asciidoc and upgrade docs when behavior or public APIs change.If you use AI coding agents or IDE assistants when working on TinkerPop, please consult AGENTS.md. That file summarizes:
AGENTS.md is a concise guide for tools and tool‑using contributors, while CONTRIBUTING.md and the Developer Documentation remain the canonical sources for project policies and processes.
Apache TinkerPop is an open source project of The Apache Software Foundation and is licensed under the Apache License, Version 2.0. See the LICENSE file in this repository for details.