Hi Eric, Thank you for calling out the issue. I don't believe this has been reported as we build and test Gremlin .NET on 6. Would you mind opening a Jira for this at https://issues.apache.org/jira/projects/TINKERPOP/issues? If you don't have a Jira account on Apache for reporting issues we'd encourage you to request one to facilitate additional discussions. We're also happy to open the Jira for you otherwise.
It would also help if you can add information regarding the database you are connecting to, query you are sending, and your system environment. Thanks! Cheers, Yang On Wed, Dec 27, 2023 at 8:45 AM Eric Sites <[email protected]> wrote: > All, > > I am having a lot of issues using the Gremlin.Net driver version 3.7.1 > with .Net 8. > > It is almost entirely unusable. > > Any request that uses an Iterator throws an exception (MoveNext, Next, > Iterate). > System.InvalidOperationException: Enumeration has not started. Call > MoveNext. > > Tracked it down to a change in .Net 8 IEnumerable<T>.Current behavior. > Here is an issue about this filed in dotnet runtime: > https://github.com/dotnet/runtime/issues/85243 > > New bad code: > var enumerator = saves.GetEnumerator(); > while (enumerator.Current == null) // <- Throws exception now > { > if (!enumerator.MoveNext()) > return list; > } > > Should be changed to something like this: > while (enumerator.MoveNext()) > { > var item = enumerator.Current; > } > > Here is an example of the issue in the Gremlin.Net code: > > https://github.com/apache/tinkerpop/blob/e8b9532fc0ec811460e97ebf5e00b8b9ec9192ac/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/DefaultTraversal.cs#L132 > > private object? GetCurrent() > { > // Use dynamic to object to prevent runtime dynamic conversion > evaluation > return TraverserEnumerator.Current?.Object; > } > > Is this a know issue, is anyone working on it. > > Cheers, > Eric Sites > >
