This is an automated email from the ASF dual-hosted git repository.

Cole-Greer pushed a commit to branch fixFlakyTests
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit da3612c7eeafdec94927c372f1b28041ad83b876
Author: Cole Greer <[email protected]>
AuthorDate: Wed May 20 15:11:14 2026 -0700

    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.
---
 .../Driver/PropertyDeserializationTests.cs                          | 5 +++++
 .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs   | 6 +++---
 .../Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs | 1 +
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs
 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs
index 01cd0b266c..f7c41bdded 100644
--- 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs
+++ 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs
@@ -35,6 +35,11 @@ using Xunit;
 
 namespace Gremlin.Net.IntegrationTest.Driver
 {
+    /// <summary>
+    /// Serialized with Gherkin tests to avoid reading vertices through an 
active GraphComputerView
+    /// when @GraphComputerOnly scenarios run concurrently, which would expose 
transient compute properties.
+    /// </summary>
+    [Collection("GremlinServerTests")]
     public class PropertyDeserializationTests
     {
         private readonly RemoteConnectionFactory _connectionFactory = new();
diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index dd8f32fbca..fae10dafd8 100644
--- 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -37,10 +37,10 @@ using Xunit.Abstractions;
 
 namespace Gremlin.Net.IntegrationTest.Gherkin
 {
-    [CollectionDefinition(nameof(GherkinTestDefinition), 
DisableParallelization = true)]
-    public class GherkinTestDefinition { }
+    [CollectionDefinition(nameof(GremlinServerTests), DisableParallelization = 
true)]
+    public class GremlinServerTests { }
 
-    [Collection(nameof(GherkinTestDefinition))]
+    [Collection(nameof(GremlinServerTests))]
     public class GherkinTestRunner
     {
         private static readonly IDictionary<string, IgnoreReason> 
IgnoredScenarios =
diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs
 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs
index 718e0fbe84..489994b4c0 100644
--- 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs
+++ 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs
@@ -34,6 +34,7 @@ using Gremlin.Net.Process.Traversal.Strategy.Decoration;
 
 namespace Gremlin.Net.IntegrationTest.Process.Traversal.DriverRemoteConnection
 {
+    [Collection("GremlinServerTests")]
     public class GraphTraversalTests
     {
         private readonly RemoteConnectionFactory _connectionFactory = new 
RemoteConnectionFactory();

Reply via email to