[jira] [Commented] (TINKERPOP-3079) The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` is not idempotent, as it passes in the first run and fails in repeated runs in the same
[ https://issues.apache.org/jira/browse/TINKERPOP-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847295#comment-17847295 ] ASF GitHub Bot commented on TINKERPOP-3079: --- spmallette closed pull request #2608: TINKERPOP-3079 Fixed non-idempotent unit test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` URL: https://github.com/apache/tinkerpop/pull/2608 > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is not idempotent, as it passes in the first run and fails in repeated runs > in the same environment. > - > > Key: TINKERPOP-3079 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3079 > Project: TinkerPop > Issue Type: Bug > Environment: Ubuntu 22.04, Java 17 >Reporter: Kaiyao Ke >Priority: Major > Original Estimate: 1h > Remaining Estimate: 1h > > ### Brief Description of the Bug > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is non-idempotent, as it passes in the first run but fails in the second run > in the same environment. The source of the problem is that the initial > strategies registration (`StrategyA`, `StrategyB` and `StrategyC`) for the > `TestGraph` and ` TestGraphComputer` classes are static (see > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L132 > and > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L185). > These static blocks will only be called once during class loading. > In the first execution of the test > `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache`, > `StrategyA` is removed from global > strategies(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L82), > and the test does not restore it after execution. > Therefore, in the second execution of the test, `StrategyA` is not present in > the global strategies, so assertions like > `assertTrue(strategies.getStrategy(StrategyA.class).isPresent())` would > fail(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L77). > A fix is necessary since unit tests shall be self-contained. Idempotent tests > help maintain this isolation by ensuring that the state of the system under > test is consistent at the beginning of each test, regardless of previous test > runs. For example, fixing non-idempotent tests can help proactively avoid > state pollution that results in test order dependency (which could hurt > regression testing with the use of test selection / prioritization / > parallelism. > ### Failure Message in the 2nd Test Run: > ``` > java.lang.AssertionError: > at org.junit.Assert.fail(Assert.java:87) > at org.junit.Assert.assertTrue(Assert.java:42) > at org.junit.Assert.assertTrue(Assert.java:53) > at > org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest.shouldAllowUserManipulationOfGlobalCache(TraversalStrategiesTest.java:77) > ``` > ### Reproduce > Use the `NIOInspector` plugin that supports rerunning individual tests in the > same environment: > ``` > cd gremlin-core > mvn edu.illinois:NIOInspector:rerun > -Dtest=org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache > ``` > ### Proposed Fix > Handle initial strategies registration in a `setup()` method rather than in > static blocks of test classes. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3079) The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` is not idempotent, as it passes in the first run and fails in repeated runs in the same
[ https://issues.apache.org/jira/browse/TINKERPOP-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847296#comment-17847296 ] ASF GitHub Bot commented on TINKERPOP-3079: --- spmallette commented on PR #2608: URL: https://github.com/apache/tinkerpop/pull/2608#issuecomment-2117619969 merged to 3.6-dev with 399741e7f4d628f6b72be3dca9cbb1c4fbd3f7fa - thanks! > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is not idempotent, as it passes in the first run and fails in repeated runs > in the same environment. > - > > Key: TINKERPOP-3079 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3079 > Project: TinkerPop > Issue Type: Bug > Environment: Ubuntu 22.04, Java 17 >Reporter: Kaiyao Ke >Priority: Major > Original Estimate: 1h > Remaining Estimate: 1h > > ### Brief Description of the Bug > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is non-idempotent, as it passes in the first run but fails in the second run > in the same environment. The source of the problem is that the initial > strategies registration (`StrategyA`, `StrategyB` and `StrategyC`) for the > `TestGraph` and ` TestGraphComputer` classes are static (see > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L132 > and > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L185). > These static blocks will only be called once during class loading. > In the first execution of the test > `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache`, > `StrategyA` is removed from global > strategies(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L82), > and the test does not restore it after execution. > Therefore, in the second execution of the test, `StrategyA` is not present in > the global strategies, so assertions like > `assertTrue(strategies.getStrategy(StrategyA.class).isPresent())` would > fail(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L77). > A fix is necessary since unit tests shall be self-contained. Idempotent tests > help maintain this isolation by ensuring that the state of the system under > test is consistent at the beginning of each test, regardless of previous test > runs. For example, fixing non-idempotent tests can help proactively avoid > state pollution that results in test order dependency (which could hurt > regression testing with the use of test selection / prioritization / > parallelism. > ### Failure Message in the 2nd Test Run: > ``` > java.lang.AssertionError: > at org.junit.Assert.fail(Assert.java:87) > at org.junit.Assert.assertTrue(Assert.java:42) > at org.junit.Assert.assertTrue(Assert.java:53) > at > org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest.shouldAllowUserManipulationOfGlobalCache(TraversalStrategiesTest.java:77) > ``` > ### Reproduce > Use the `NIOInspector` plugin that supports rerunning individual tests in the > same environment: > ``` > cd gremlin-core > mvn edu.illinois:NIOInspector:rerun > -Dtest=org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache > ``` > ### Proposed Fix > Handle initial strategies registration in a `setup()` method rather than in > static blocks of test classes. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3079) The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` is not idempotent, as it passes in the first run and fails in repeated runs in the same
[ https://issues.apache.org/jira/browse/TINKERPOP-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847207#comment-17847207 ] ASF GitHub Bot commented on TINKERPOP-3079: --- codecov-commenter commented on PR #2608: URL: https://github.com/apache/tinkerpop/pull/2608#issuecomment-2117045164 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2608?dropdown=coverage=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Project coverage is 80.44%. Comparing base [(`2d32517`)](https://app.codecov.io/gh/apache/tinkerpop/commit/2d32517b3bca1b00d716b3205c2abdbcd6ed3352?dropdown=coverage=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) to head [(`ffd57f5`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2608?dropdown=coverage=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Report is 130 commits behind head on master. Additional details and impacted files ```diff @@ Coverage Diff @@ ## master#2608 +/- ## + Coverage 76.16% 80.44% +4.28% Files 1085 27-1058 Lines 65189 5002 -60187 Branches 72890-7289 - Hits 49651 4024 -45627 + Misses12830 776 -12054 + Partials 2708 202-2506 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2608?dropdown=coverage=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is not idempotent, as it passes in the first run and fails in repeated runs > in the same environment. > - > > Key: TINKERPOP-3079 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3079 > Project: TinkerPop > Issue Type: Bug > Environment: Ubuntu 22.04, Java 17 >Reporter: Kaiyao Ke >Priority: Major > Original Estimate: 1h > Remaining Estimate: 1h > > ### Brief Description of the Bug > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is non-idempotent, as it passes in the first run but fails in the second run > in the same environment. The source of the problem is that the initial > strategies registration (`StrategyA`, `StrategyB` and `StrategyC`) for the > `TestGraph` and ` TestGraphComputer` classes are static (see > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L132 > and > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L185). > These static blocks will only be called once during class loading. > In the first execution of the test > `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache`, > `StrategyA` is removed from global > strategies(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L82), > and the test does not restore it after execution. > Therefore, in the second execution of the test, `StrategyA` is not present in > the global strategies, so assertions like > `assertTrue(strategies.getStrategy(StrategyA.class).isPresent())` would > fail(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L77). > A fix is necessary since unit tests shall be self-contained. Idempotent tests > help maintain this isolation by ensuring that the state of the system under > test is consistent at the beginning of each test, regardless of previous test > runs. For example, fixing non-idempotent tests can help proactively avo
[jira] [Commented] (TINKERPOP-3079) The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` is not idempotent, as it passes in the first run and fails in repeated runs in the same
[ https://issues.apache.org/jira/browse/TINKERPOP-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17847194#comment-17847194 ] ASF GitHub Bot commented on TINKERPOP-3079: --- kaiyaok2 opened a new pull request, #2608: URL: https://github.com/apache/tinkerpop/pull/2608 Fixes https://issues.apache.org/jira/browse/TINKERPOP-3079 ### Brief Description of the Bug The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` is non-idempotent, as it passes in the first run but fails in the second run in the same environment. The source of the problem is that the initial strategies registration (`StrategyA`, `StrategyB` and `StrategyC`) for the `TestGraph` and ` TestGraphComputer` classes are static (see https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L132 and https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L185). These static blocks will only be called once during class loading. In the first execution of the test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache`, `StrategyA` is removed from global strategies(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L82), and the test does not restore it after execution. Therefore, in the second execution of the test, `StrategyA` is not present in the global strategies, so assertions like `assertTrue(strategies.getStrategy(StrategyA.class).isPresent())` would fail(https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L77). A fix is necessary since unit tests shall be self-contained. Idempotent tests help maintain this isolation by ensuring that the state of the system under test is consistent at the beginning of each test, regardless of previous test runs. For example, fixing non-idempotent tests can help proactively avoid state pollution that results in test order dependency (which could hurt regression testing with the use of test selection / prioritization / parallelism. ### Failure Message in the 2nd Test Run: ``` java.lang.AssertionError: at org.junit.Assert.fail(Assert.java:87) at org.junit.Assert.assertTrue(Assert.java:42) at org.junit.Assert.assertTrue(Assert.java:53) at org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest.shouldAllowUserManipulationOfGlobalCache(TraversalStrategiesTest.java:77) ``` ### Reproduce Use the `NIOInspector` plugin that supports rerunning individual tests in the same environment: ``` cd gremlin-core mvn edu.illinois:NIOInspector:rerun -Dtest=org.apache.tinkerpop.gremlin.process.TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache ``` ### Proposed Fix Handle initial strategies registration in a `setup()` method rather than in static blocks of test classes. ### Verify the Change After the patch, all tests pass idempotently. > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is not idempotent, as it passes in the first run and fails in repeated runs > in the same environment. > - > > Key: TINKERPOP-3079 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3079 > Project: TinkerPop > Issue Type: Bug > Environment: Ubuntu 22.04, Java 17 >Reporter: Kaiyao Ke >Priority: Major > Original Estimate: 1h > Remaining Estimate: 1h > > ### Brief Description of the Bug > The test `TraversalStrategiesTest#shouldAllowUserManipulationOfGlobalCache` > is non-idempotent, as it passes in the first run but fails in the second run > in the same environment. The source of the problem is that the initial > strategies registration (`StrategyA`, `StrategyB` and `StrategyC`) for the > `TestGraph` and ` TestGraphComputer` classes are static (see > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L132 > and > https://github.com/apache/tinkerpop/blob/66e5a47ffd3976d29bc7797c399b8e11c5ba810e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/TraversalStrategiesTest.java#L185). > These s
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17844607#comment-17844607 ] ASF GitHub Bot commented on TINKERPOP-3035: --- FlorianHockmann merged PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565 > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2617) Refactor Java Driver to have one method for connection selection
[ https://issues.apache.org/jira/browse/TINKERPOP-2617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17842775#comment-17842775 ] ASF GitHub Bot commented on TINKERPOP-2617: --- lyndonbauto commented on PR #1709: URL: https://github.com/apache/tinkerpop/pull/1709#issuecomment-2089121052 @DKZed Where are you at with these changes? > Refactor Java Driver to have one method for connection selection > > > Key: TINKERPOP-2617 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2617 > Project: TinkerPop > Issue Type: Improvement > Components: driver >Affects Versions: 3.4.12 >Reporter: Stephen Mallette >Priority: Minor > > To make a decision on whether a connection should be borrowed or not, a Java > client today does two logic which are different from each other. They should > both be same. One bit of logic to do so is at: > {code} > if (borrowed >= maxSimultaneousUsagePerConnection && > leastUsedConn.availableInProcess() == 0) { > {code} > and another is: > {code} > final int inFlight = leastUsed.borrowed.get(); > final int availableInProcess = > leastUsed.availableInProcess(); > if (inFlight >= availableInProcess) { > logger.debug("Least used {} on {} has requests > borrowed [{}] >= availableInProcess [{}] - may timeout waiting for > connection", > leastUsed, host, inFlight, > availableInProcess); > break; > } > if (leastUsed.borrowed.compareAndSet(inFlight, inFlight + > 1)) { > if (logger.isDebugEnabled()) > logger.debug("Return least used {} on {} after > waiting", leastUsed.getConnectionInfo(), host); > return leastUsed; > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17841275#comment-17841275 ] ASF GitHub Bot commented on TINKERPOP-3035: --- vkagamlyk commented on PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565#issuecomment-2079624005 VOTE +1 > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17841266#comment-17841266 ] ASF GitHub Bot commented on TINKERPOP-3035: --- FlorianHockmann commented on PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565#issuecomment-2079581200 The problem is however that the Gherkin tests already include this step but they already passed before my change here as @spmallette noted in the issue description. This got me curious however as I was wondering how this could actually work without an overload taking a dictionary in C# since I couldn't get it to work in C# without my change here. (I did write a test case when I implemented this. I only deleted it before committing to not impact other tests.) Stephens assumption was: > It works because it probably piggybacks on property(object?, object?, objects[]?) which has all nullable arguments. Turns out that this is not the case. The `DotNetTranslator` produces a C# traversal with individual `Property` steps for each map entry: https://github.com/apache/tinkerpop/blob/e3ced38b2108f3edb29f11fbfa4f6950427bcbd9/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs#L539 So, as a next attempt I wanted to change the translator to instead produce a C# traversal using the new `Dictionary` overload. But then I learned that that's now even possible since Gremlin-Java already produces Bytecode without this overload: https://github.com/apache/tinkerpop/blob/e3ced38b2108f3edb29f11fbfa4f6950427bcbd9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java#L3221-L3234 and the translator only gets the Bytecode produced from the traversal. So I don't see any elegant way to test this using Gherkin tests without changing the Gremlin-Java overload (which is a bigger change than what makes sense here in my opinion). We could add a hard-coded translation for one feature test to ensure that the traversal in C# will use the new overload, but I don't really like maintaining such hard-coded translations. However, this got me to the idea to instead use the translation from C# to Groovy for a test. I just pushed an updated commit with such a test. The test does not compile without the added overload and the translation also includes the successful construction of Bytecode from the traversal as the translator also uses the Bytecode. > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17840573#comment-17840573 ] ASF GitHub Bot commented on TINKERPOP-3035: --- xiazcy commented on PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565#issuecomment-2075810348 I believe for Gherkin tests we have the empty graph that can be modified, since it gets reset for each test. This does mean adding a Feature test that will run for all GLVs. > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17840334#comment-17840334 ] ASF GitHub Bot commented on TINKERPOP-3035: --- FlorianHockmann commented on PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565#issuecomment-2074375930 > nit: no test coverage Yes, I wanted to add a test for this, but the problem is that it's manipulating data in the graph. I don't know how to test this with our current test setup without impacting other tests. If we could start a container with Gremlin Server for just this test, then we could easily test it. But our current setup uses the same container for all tests with the same graph. If we write to this graph in one test, then it will impact other tests. Another option would be to write a unit test which only checks the generated Bytecode, but I think such tests have little value, especially when we want to get rid of Bytecode altogether in a future release. > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17840211#comment-17840211 ] ASF GitHub Bot commented on TINKERPOP-3035: --- vkagamlyk commented on PR #2565: URL: https://github.com/apache/tinkerpop/pull/2565#issuecomment-2073301294 nit: no test coverage > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3035) Add explicit property(IDictionary) for .NET
[ https://issues.apache.org/jira/browse/TINKERPOP-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17838187#comment-17838187 ] ASF GitHub Bot commented on TINKERPOP-3035: --- FlorianHockmann opened a new pull request, #2565: URL: https://github.com/apache/tinkerpop/pull/2565 https://issues.apache.org/jira/browse/TINKERPOP-3035 VOTE +1 > Add explicit property(IDictionary) for .NET > --- > > Key: TINKERPOP-3035 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3035 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Minor > > There is no {{property(IDictionary)}} method for .NET to > accompany the {{property(Map)}} step. It works because it probably piggybacks > on {{property(object?, object?, objects[]?)}} which has all nullable > arguments. The explicit overload with the {{IDictionary}} should be added. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3060) Dependency inconsistency between modules.
[ https://issues.apache.org/jira/browse/TINKERPOP-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835417#comment-17835417 ] ASF GitHub Bot commented on TINKERPOP-3060: --- HappyHacker123 commented on PR #2546: URL: https://github.com/apache/tinkerpop/pull/2546#issuecomment-2045162964 Thanks for your response :) @xiazcy . > Note that we are in the middle of a release so we'll hold off on any merging and I'll revisit this PR once the release is done. Sure, I'm fully supportive of holding off the pr until after the release is completed :). > I do want to take a closer look into other pom files that might be able to take advantage of this. Actually i ran a check on the whole Tinkerpop project and found many other situation like this. If you need it, i'm happy to provide the whole list :). > Dependency inconsistency between modules. > - > > Key: TINKERPOP-3060 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3060 > Project: TinkerPop > Issue Type: Improvement >Reporter: Wei Zhao >Priority: Major > Original Estimate: 1m > Remaining Estimate: 1m > > h3. Problem Desciption > Currently some modules of Tinkerpop are using the same dependency. However, > some of these dependencies' versions are not centrally managed and therefore > cause discrepancy. > I found the following dependencies with different versions in different > modules. > {code:java} > Dependency org.xerial.snappy:snappy-java:jar has inconsistent versions. > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.4} > /spark-gremlin > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.2} > /hadoop-gremlin > - > Dependency com.fasterxml.jackson.core:jackson-databind:jar has inconsistent > versions. > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.15.2} > /gremlin-shaded > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.13.5} > /spark-gremlin > /hadoop-gremlin > - > {code} > h3. Possible Outcome: > This increases the maintenance workload and may lead to dependency conflict > for downstream projects. So it's better to align the versions of the > dependencies if the discrepancy is not intentional. > h3. Possible Solution > Align the versions of the dependencies to ensure consistency and avoid > possible conflicts. And if it's possible, manage the versions of the > dependencies centrally. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835102#comment-17835102 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2044019322 @xiazcy nah I just got back today, thanks for making this available in the next release > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript, server >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Assignee: Yang Xia >Priority: Major > Fix For: 3.7.2 > > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835100#comment-17835100 ] ASF GitHub Bot commented on TINKERPOP-3061: --- xiazcy commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2044008086 Closing this PR as all changes are merged via 22db8cf for the release. Please feel free to re-open if you find additional improvements and/or updates needed. Thanks! > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835099#comment-17835099 ] ASF GitHub Bot commented on TINKERPOP-3061: --- xiazcy closed pull request #2525: [TINKERPOP-3061] fix: failing authentication when multiple initially requests are executed concurrently URL: https://github.com/apache/tinkerpop/pull/2525 > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835072#comment-17835072 ] ASF GitHub Bot commented on TINKERPOP-3061: --- xiazcy commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2043756862 > Sorry, I'm away this week and don't have access to my work laptop. Will take a look at all the pending comments & resolve them next week No worries, thank you for all the contributions! Just a quick note. Not sure if you have gotten a chance to start looking at the comments, as we'd like to release this with 3.7.2 this week, we will likely be cherry-picking your changes into another PR for the release branch today. If we do proceed with that we'll be closing this PR, and you shouldn't need to do any further work. Now there might still be functionality improvements we miss, so please feel free to add additional changes once the branches re-open. > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3060) Dependency inconsistency between modules.
[ https://issues.apache.org/jira/browse/TINKERPOP-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17835014#comment-17835014 ] ASF GitHub Bot commented on TINKERPOP-3060: --- xiazcy commented on PR #2546: URL: https://github.com/apache/tinkerpop/pull/2546#issuecomment-2043393487 Thanks for the PR @HappyHacker123! I like the improvement for the dependency version management. I do want to take a closer look into other pom files that might be able to take advantage of this. Note that we are in the middle of a release so we'll hold off on any merging and I'll revisit once this PR the release is done. > Dependency inconsistency between modules. > - > > Key: TINKERPOP-3060 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3060 > Project: TinkerPop > Issue Type: Improvement >Reporter: Wei Zhao >Priority: Major > Original Estimate: 1m > Remaining Estimate: 1m > > h3. Problem Desciption > Currently some modules of Tinkerpop are using the same dependency. However, > some of these dependencies' versions are not centrally managed and therefore > cause discrepancy. > I found the following dependencies with different versions in different > modules. > {code:java} > Dependency org.xerial.snappy:snappy-java:jar has inconsistent versions. > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.4} > /spark-gremlin > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.2} > /hadoop-gremlin > - > Dependency com.fasterxml.jackson.core:jackson-databind:jar has inconsistent > versions. > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.15.2} > /gremlin-shaded > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.13.5} > /spark-gremlin > /hadoop-gremlin > - > {code} > h3. Possible Outcome: > This increases the maintenance workload and may lead to dependency conflict > for downstream projects. So it's better to align the versions of the > dependencies if the discrepancy is not intentional. > h3. Possible Solution > Align the versions of the dependencies to ensure consistency and avoid > possible conflicts. And if it's possible, manage the versions of the > dependencies centrally. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3060) Dependency inconsistency between modules.
[ https://issues.apache.org/jira/browse/TINKERPOP-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834901#comment-17834901 ] ASF GitHub Bot commented on TINKERPOP-3060: --- codecov-commenter commented on PR #2546: URL: https://github.com/apache/tinkerpop/pull/2546#issuecomment-2042581374 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2546?dropdown=coverage=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Project coverage is 76.49%. Comparing base [(`9b46b67`)](https://app.codecov.io/gh/apache/tinkerpop/commit/9b46b6777d2fa250e41daacf2fa4554605aff53a?dropdown=coverage=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) to head [(`8b1e8bd`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2546?dropdown=coverage=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Report is 54 commits behind head on 3.7-dev. Additional details and impacted files ```diff @@ Coverage Diff @@ ## 3.7-dev#2546 +/- ## = + Coverage 76.14% 76.49% +0.34% - Complexity 1315213174 +22 = Files 1084 1059 -25 Lines 6516061282-3878 Branches7285 7297 +12 = - Hits 4961646876-2740 + Misses 1283911892 -947 + Partials2705 2514 -191 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2546?dropdown=coverage=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Dependency inconsistency between modules. > - > > Key: TINKERPOP-3060 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3060 > Project: TinkerPop > Issue Type: Improvement >Reporter: Wei Zhao >Priority: Major > Original Estimate: 1m > Remaining Estimate: 1m > > h3. Problem Desciption > Currently some modules of Tinkerpop are using the same dependency. However, > some of these dependencies' versions are not centrally managed and therefore > cause discrepancy. > I found the following dependencies with different versions in different > modules. > {code:java} > Dependency org.xerial.snappy:snappy-java:jar has inconsistent versions. > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.4} > /spark-gremlin > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.2} > /hadoop-gremlin > - > Dependency com.fasterxml.jackson.core:jackson-databind:jar has inconsistent > versions. > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.15.2} > /gremlin-shaded > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.13.5} > /spark-gremlin > /hadoop-gremlin > - > {code} > h3. Possible Outcome: > This increases the maintenance workload and may lead to dependency conflict > for downstream projects. So it's better to align the versions of the > dependencies if the discrepancy is not intentional. > h3. Possible Solution > Align the versions of the dependencies to ensure consistency and avoid > possible conflicts. And if it's possible, manage the versions of the > dependencies centrally. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3060) Dependency inconsistency between modules.
[ https://issues.apache.org/jira/browse/TINKERPOP-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834894#comment-17834894 ] ASF GitHub Bot commented on TINKERPOP-3060: --- HappyHacker123 commented on PR #2546: URL: https://github.com/apache/tinkerpop/pull/2546#issuecomment-2042543921 @xiazcy @Cole-Greer Could you please help me review this pr? Many thanks :) > Dependency inconsistency between modules. > - > > Key: TINKERPOP-3060 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3060 > Project: TinkerPop > Issue Type: Improvement >Reporter: Wei Zhao >Priority: Major > Original Estimate: 1m > Remaining Estimate: 1m > > h3. Problem Desciption > Currently some modules of Tinkerpop are using the same dependency. However, > some of these dependencies' versions are not centrally managed and therefore > cause discrepancy. > I found the following dependencies with different versions in different > modules. > {code:java} > Dependency org.xerial.snappy:snappy-java:jar has inconsistent versions. > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.4} > /spark-gremlin > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.2} > /hadoop-gremlin > - > Dependency com.fasterxml.jackson.core:jackson-databind:jar has inconsistent > versions. > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.15.2} > /gremlin-shaded > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.13.5} > /spark-gremlin > /hadoop-gremlin > - > {code} > h3. Possible Outcome: > This increases the maintenance workload and may lead to dependency conflict > for downstream projects. So it's better to align the versions of the > dependencies if the discrepancy is not intentional. > h3. Possible Solution > Align the versions of the dependencies to ensure consistency and avoid > possible conflicts. And if it's possible, manage the versions of the > dependencies centrally. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3060) Dependency inconsistency between modules.
[ https://issues.apache.org/jira/browse/TINKERPOP-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834890#comment-17834890 ] ASF GitHub Bot commented on TINKERPOP-3060: --- HappyHacker123 opened a new pull request, #2546: URL: https://github.com/apache/tinkerpop/pull/2546 Currently some modules of Tinkerpop are using the same dependency. However, some of these dependencies' versions are not centrally managed and therefore cause discrepancy. This pr defines version in parent pom.xml centrally to avoid version conflict. > Dependency inconsistency between modules. > - > > Key: TINKERPOP-3060 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3060 > Project: TinkerPop > Issue Type: Improvement >Reporter: Wei Zhao >Priority: Major > Original Estimate: 1m > Remaining Estimate: 1m > > h3. Problem Desciption > Currently some modules of Tinkerpop are using the same dependency. However, > some of these dependencies' versions are not centrally managed and therefore > cause discrepancy. > I found the following dependencies with different versions in different > modules. > {code:java} > Dependency org.xerial.snappy:snappy-java:jar has inconsistent versions. > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.4} > /spark-gremlin > Dependency {groupId=org.xerial.snappy, artifactId=snappy-java, > version=1.1.8.2} > /hadoop-gremlin > - > Dependency com.fasterxml.jackson.core:jackson-databind:jar has inconsistent > versions. > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.15.2} > /gremlin-shaded > Dependency {groupId=com.fasterxml.jackson.core, > artifactId=jackson-databind, version=2.13.5} > /spark-gremlin > /hadoop-gremlin > - > {code} > h3. Possible Outcome: > This increases the maintenance workload and may lead to dependency conflict > for downstream projects. So it's better to align the versions of the > dependencies if the discrepancy is not intentional. > h3. Possible Solution > Align the versions of the dependencies to ensure consistency and avoid > possible conflicts. And if it's possible, manage the versions of the > dependencies centrally. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834425#comment-17834425 ] ASF GitHub Bot commented on TINKERPOP-3068: --- xiazcy commented on PR #2544: URL: https://github.com/apache/tinkerpop/pull/2544#issuecomment-2040520494 Cherry-picked to d9da293 as CTR. > Make serviceName and mergedParams public for provider usage in CallStep > --- > > Key: TINKERPOP-3068 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3068 > Project: TinkerPop > Issue Type: Improvement > Components: process >Reporter: Saikiran Boga >Priority: Major > > When using CallStep, providers require access to the serviceName and the > merged params from CallStep for implementation. > > service name is currently private > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L63] > and merged params getter is protected > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L195] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834424#comment-17834424 ] ASF GitHub Bot commented on TINKERPOP-3068: --- xiazcy closed pull request #2544: [TINKERPOP-3068] Make serviceName and mergedParams public for provide… URL: https://github.com/apache/tinkerpop/pull/2544 > Make serviceName and mergedParams public for provider usage in CallStep > --- > > Key: TINKERPOP-3068 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3068 > Project: TinkerPop > Issue Type: Improvement > Components: process >Reporter: Saikiran Boga >Priority: Major > > When using CallStep, providers require access to the serviceName and the > merged params from CallStep for implementation. > > service name is currently private > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L63] > and merged params getter is protected > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L195] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834419#comment-17834419 ] ASF GitHub Bot commented on TINKERPOP-3068: --- Cole-Greer commented on PR #2544: URL: https://github.com/apache/tinkerpop/pull/2544#issuecomment-2040480466 VOTE +1 > Make serviceName and mergedParams public for provider usage in CallStep > --- > > Key: TINKERPOP-3068 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3068 > Project: TinkerPop > Issue Type: Improvement > Components: process >Reporter: Saikiran Boga >Priority: Major > > When using CallStep, providers require access to the serviceName and the > merged params from CallStep for implementation. > > service name is currently private > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L63] > and merged params getter is protected > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L195] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834417#comment-17834417 ] ASF GitHub Bot commented on TINKERPOP-3068: --- xiazcy commented on PR #2544: URL: https://github.com/apache/tinkerpop/pull/2544#issuecomment-2040476522 VOTE +1. I'll cherry pick the proper commit into the branch. > Make serviceName and mergedParams public for provider usage in CallStep > --- > > Key: TINKERPOP-3068 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3068 > Project: TinkerPop > Issue Type: Improvement > Components: process >Reporter: Saikiran Boga >Priority: Major > > When using CallStep, providers require access to the serviceName and the > merged params from CallStep for implementation. > > service name is currently private > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L63] > and merged params getter is protected > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L195] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834281#comment-17834281 ] ASF GitHub Bot commented on TINKERPOP-3068: --- codecov-commenter commented on PR #2544: URL: https://github.com/apache/tinkerpop/pull/2544#issuecomment-2039672224 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?dropdown=coverage=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report Attention: Patch coverage is `66.36637%` with `224 lines` in your changes are missing coverage. Please review. > Project coverage is 76.50%. Comparing base [(`d9e34fb`)](https://app.codecov.io/gh/apache/tinkerpop/commit/d9e34fb4678c29ffa167066de45a9fa7329a319a?dropdown=coverage=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) to head [(`1d671f3`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?dropdown=coverage=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Report is 31 commits behind head on 3.6-dev. | [Files](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?dropdown=coverage=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | Patch % | Lines | |---|---|---| | [...in/language/grammar/DefaultGremlinBaseVisitor.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Flanguage%2Fgrammar%2FDefaultGremlinBaseVisitor.java_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS90aW5rZXJwb3AvZ3JlbWxpbi9sYW5ndWFnZS9ncmFtbWFyL0RlZmF1bHRHcmVtbGluQmFzZVZpc2l0b3IuamF2YQ==) | 0.00% | [137 Missing :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | | [...rpop/gremlin/language/grammar/ArgumentVisitor.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Flanguage%2Fgrammar%2FArgumentVisitor.java_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS90aW5rZXJwb3AvZ3JlbWxpbi9sYW5ndWFnZS9ncmFtbWFyL0FyZ3VtZW50VmlzaXRvci5qYXZh) | 76.47% | [21 Missing and 7 partials :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | | [...remlin/language/grammar/GenericLiteralVisitor.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Flanguage%2Fgrammar%2FGenericLiteralVisitor.java_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS90aW5rZXJwb3AvZ3JlbWxpbi9sYW5ndWFnZS9ncmFtbWFyL0dlbmVyaWNMaXRlcmFsVmlzaXRvci5qYXZh) | 68.42% | [14 Missing and 4 partials :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | | [...e/tinkerpop/gremlin/console/GremlinGroovysh.groovy](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-console%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Fconsole%2FGremlinGroovysh.groovy_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1jb25zb2xlL3NyYy9tYWluL2dyb292eS9vcmcvYXBhY2hlL3RpbmtlcnBvcC9ncmVtbGluL2NvbnNvbGUvR3JlbWxpbkdyb292eXNoLmdyb292eQ==) | 52.94% | [6 Missing and 10 partials :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | | [...emlin/language/grammar/TraversalMethodVisitor.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Flanguage%2Fgrammar%2FTraversalMethodVisitor.java_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1jb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS90aW5rZXJwb3AvZ3JlbWxpbi9sYW5ndWFnZS9ncmFtbWFyL1RyYXZlcnNhbE1ldGhvZFZpc2l0b3IuamF2YQ==) | 95.39% | [10 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | | [...pache/tinkerpop/gremlin/jsr223/JavaTranslator.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2544?src=pr=tree=gremlin-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Ftinkerpop%2Fgremlin%2Fjsr223%2FJavaTranslator.java_medium=referral_source=github_content=comment_campaign=pr+comments_term=apach
[jira] [Commented] (TINKERPOP-3068) Make serviceName and mergedParams public for provider usage in CallStep
[ https://issues.apache.org/jira/browse/TINKERPOP-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834269#comment-17834269 ] ASF GitHub Bot commented on TINKERPOP-3068: --- saikiranboga opened a new pull request, #2544: URL: https://github.com/apache/tinkerpop/pull/2544 …r usage in CallStep > Make serviceName and mergedParams public for provider usage in CallStep > --- > > Key: TINKERPOP-3068 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3068 > Project: TinkerPop > Issue Type: Improvement > Components: process >Reporter: Saikiran Boga >Priority: Major > > When using CallStep, providers require access to the serviceName and the > merged params from CallStep for implementation. > > service name is currently private > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L63] > and merged params getter is protected > [https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStep.java#L195] -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17833791#comment-17833791 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2035957546 Sorry, I'm away this week and don't have access to my work laptop. Will take a look at all the pending comments & resolve them next week > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831705#comment-17831705 ] ASF GitHub Bot commented on TINKERPOP-3061: --- FlorianHockmann commented on code in PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#discussion_r1542632956 ## gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java: ## @@ -75,106 +79,159 @@ public SaslAuthenticationHandler(final Authenticator authenticator, final Author @Override public void channelRead(final ChannelHandlerContext ctx, final Object msg) throws Exception { -if (msg instanceof RequestMessage){ -final RequestMessage requestMessage = (RequestMessage) msg; - -final Attribute negotiator = ((AttributeMap) ctx).attr(StateKey.NEGOTIATOR); -final Attribute request = ((AttributeMap) ctx).attr(StateKey.REQUEST_MESSAGE); -if (negotiator.get() == null) { -try { -// First time through so save the request and send an AUTHENTICATE challenge with no data - negotiator.set(authenticator.newSaslNegotiator(getRemoteInetAddress(ctx))); -request.set(requestMessage); -final ResponseMessage authenticate = ResponseMessage.build(requestMessage) -.code(ResponseStatusCode.AUTHENTICATE).create(); -ctx.writeAndFlush(authenticate); -} catch (Exception ex) { -// newSaslNegotiator can cause troubles - if we don't catch and respond nicely the driver seems -// to hang until timeout which isn't so nice. treating this like a server error as it means that -// the Authenticator isn't really ready to deal with requests for some reason. -logger.error(String.format("%s is not ready to handle requests - check its configuration or related services", -authenticator.getClass().getSimpleName()), ex); - -final ResponseMessage error = ResponseMessage.build(requestMessage) -.statusMessage("Authenticator is not ready to handle requests") -.code(ResponseStatusCode.SERVER_ERROR).create(); -ctx.writeAndFlush(error); -} -} else { -if (requestMessage.getOp().equals(Tokens.OPS_AUTHENTICATION) && requestMessage.getArgs().containsKey(Tokens.ARGS_SASL)) { - -final Object saslObject = requestMessage.getArgs().get(Tokens.ARGS_SASL); -final byte[] saslResponse; - -if(saslObject instanceof String) { -saslResponse = BASE64_DECODER.decode((String) saslObject); -} else { -final ResponseMessage error = ResponseMessage.build(request.get()) -.statusMessage("Incorrect type for : " + Tokens.ARGS_SASL + " - base64 encoded String is expected") - .code(ResponseStatusCode.REQUEST_ERROR_MALFORMED_REQUEST).create(); -ctx.writeAndFlush(error); -return; -} - -try { -final byte[] saslMessage = negotiator.get().evaluateResponse(saslResponse); -if (negotiator.get().isComplete()) { -final AuthenticatedUser user = negotiator.get().getAuthenticatedUser(); - ctx.channel().attr(StateKey.AUTHENTICATED_USER).set(user); -// User name logged with the remote socket address and authenticator classname for audit logging -if (settings.enableAuditLog) { -String address = ctx.channel().remoteAddress().toString(); -if (address.startsWith("/") && address.length() > 1) address = address.substring(1); -final String[] authClassParts = authenticator.getClass().toString().split("[.]"); -auditLogger.info("User {} with address {} authenticated by {}", -user.getName(), address, authClassParts[authClassParts.length - 1]); -} -// If we have got here we are authenticated so remove the handler and pass -// the original message down the pipeline for processing -ctx.pipeline().remove(this); -final RequestMe
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831591#comment-17831591 ] ASF GitHub Bot commented on TINKERPOP-3061: --- Cole-Greer commented on code in PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#discussion_r1542198439 ## gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java: ## @@ -163,6 +171,46 @@ public void shouldFailAuthenticateWithPlainTextBadUsername() throws Exception { } } +@Test +public void shouldFailAuthenticateWithUnAuthenticatedRequestAfterMaxDeferrableDuration() throws Exception { Review Comment: Hi Tien, I want to be absolutely certain that we aren’t going to lose any of these deferred requests in the case of errors. If the server fails to send a response the drivers will just be left hanging indefinitely. If I’m understanding this test right, the first 3 requests are all expected to succeed, and then after a delay the final request is submitted and fails. Would it also be possible to setup a test such that there are multiple pending requests in the server’s deferred requests queue at the time that auth fails, and then we can verify that the correct error message gets sent to all currently pending requests? > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831389#comment-17831389 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien commented on code in PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#discussion_r1541269520 ## gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java: ## @@ -75,106 +79,159 @@ public SaslAuthenticationHandler(final Authenticator authenticator, final Author @Override public void channelRead(final ChannelHandlerContext ctx, final Object msg) throws Exception { -if (msg instanceof RequestMessage){ -final RequestMessage requestMessage = (RequestMessage) msg; - -final Attribute negotiator = ((AttributeMap) ctx).attr(StateKey.NEGOTIATOR); -final Attribute request = ((AttributeMap) ctx).attr(StateKey.REQUEST_MESSAGE); -if (negotiator.get() == null) { -try { -// First time through so save the request and send an AUTHENTICATE challenge with no data - negotiator.set(authenticator.newSaslNegotiator(getRemoteInetAddress(ctx))); -request.set(requestMessage); -final ResponseMessage authenticate = ResponseMessage.build(requestMessage) -.code(ResponseStatusCode.AUTHENTICATE).create(); -ctx.writeAndFlush(authenticate); -} catch (Exception ex) { -// newSaslNegotiator can cause troubles - if we don't catch and respond nicely the driver seems -// to hang until timeout which isn't so nice. treating this like a server error as it means that -// the Authenticator isn't really ready to deal with requests for some reason. -logger.error(String.format("%s is not ready to handle requests - check its configuration or related services", -authenticator.getClass().getSimpleName()), ex); - -final ResponseMessage error = ResponseMessage.build(requestMessage) -.statusMessage("Authenticator is not ready to handle requests") -.code(ResponseStatusCode.SERVER_ERROR).create(); -ctx.writeAndFlush(error); -} -} else { -if (requestMessage.getOp().equals(Tokens.OPS_AUTHENTICATION) && requestMessage.getArgs().containsKey(Tokens.ARGS_SASL)) { - -final Object saslObject = requestMessage.getArgs().get(Tokens.ARGS_SASL); -final byte[] saslResponse; - -if(saslObject instanceof String) { -saslResponse = BASE64_DECODER.decode((String) saslObject); -} else { -final ResponseMessage error = ResponseMessage.build(request.get()) -.statusMessage("Incorrect type for : " + Tokens.ARGS_SASL + " - base64 encoded String is expected") - .code(ResponseStatusCode.REQUEST_ERROR_MALFORMED_REQUEST).create(); -ctx.writeAndFlush(error); -return; -} - -try { -final byte[] saslMessage = negotiator.get().evaluateResponse(saslResponse); -if (negotiator.get().isComplete()) { -final AuthenticatedUser user = negotiator.get().getAuthenticatedUser(); - ctx.channel().attr(StateKey.AUTHENTICATED_USER).set(user); -// User name logged with the remote socket address and authenticator classname for audit logging -if (settings.enableAuditLog) { -String address = ctx.channel().remoteAddress().toString(); -if (address.startsWith("/") && address.length() > 1) address = address.substring(1); -final String[] authClassParts = authenticator.getClass().toString().split("[.]"); -auditLogger.info("User {} with address {} authenticated by {}", -user.getName(), address, authClassParts[authClassParts.length - 1]); -} -// If we have got here we are authenticated so remove the handler and pass -// the original message down the pipeline for processing -ctx.pipeline().remove(this); -final RequestMe
[jira] [Commented] (TINKERPOP-3063) Concurrent queries will break authentication on .NET driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831312#comment-17831312 ] ASF GitHub Bot commented on TINKERPOP-3063: --- FlorianHockmann closed pull request #2522: TINKERPOP-3063 Fix bug in Gremlin.Net authentication for parallel requests URL: https://github.com/apache/tinkerpop/pull/2522 > Concurrent queries will break authentication on .NET driver > --- > > Key: TINKERPOP-3063 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3063 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Major > > Executing multiple queries in parallel can lead to authentication failures if > {{MaxInProcessPerConnection}} is set to a value higher than {{1}} as the > second request can then be send to the server while the server is still > waiting for the authentication challenge response from the driver for the > first query. > A simple workaround is to set {{MaxInProcessPerConnection=1}} but this means > of course that connection pooling will be less efficient. > This issue also exists for other drivers: > * Java: TINKERPOP-2132 > * JS: TINKERPOP-3061 > (I don't know about the Python and Go drivers.) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3063) Concurrent queries will break authentication on .NET driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831313#comment-17831313 ] ASF GitHub Bot commented on TINKERPOP-3063: --- FlorianHockmann commented on PR #2522: URL: https://github.com/apache/tinkerpop/pull/2522#issuecomment-2022583104 Closing this as it was superseded by #2525 which fixes the problem on the server side so the workaround I implemented here for the .NET driver isn't needed any more. > Concurrent queries will break authentication on .NET driver > --- > > Key: TINKERPOP-3063 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3063 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Major > > Executing multiple queries in parallel can lead to authentication failures if > {{MaxInProcessPerConnection}} is set to a value higher than {{1}} as the > second request can then be send to the server while the server is still > waiting for the authentication challenge response from the driver for the > first query. > A simple workaround is to set {{MaxInProcessPerConnection=1}} but this means > of course that connection pooling will be less efficient. > This issue also exists for other drivers: > * Java: TINKERPOP-2132 > * JS: TINKERPOP-3061 > (I don't know about the Python and Go drivers.) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831310#comment-17831310 ] ASF GitHub Bot commented on TINKERPOP-3061: --- FlorianHockmann commented on code in PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#discussion_r1540816027 ## gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/AbstractClient.java: ## @@ -27,8 +27,7 @@ import org.apache.tinkerpop.gremlin.util.message.ResponseMessage; import org.apache.tinkerpop.gremlin.util.message.ResponseStatusCode; -import java.util.ArrayList; -import java.util.List; +import java.util.*; Review Comment: Please revert this change. [Our dev docs explicitly mention that TinkerPop doesn't use wildcard imports](https://tinkerpop.apache.org/docs/current/dev/developer/#_code_style). ## gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerAuthIntegrateTest.java: ## @@ -218,9 +266,19 @@ public void shouldAuthenticateAndWorkWithVariablesOverGraphSONV1Serialization() private static void assertConnection(final Cluster cluster, final Client client) throws InterruptedException, ExecutionException { Review Comment: This method is used in 4 different tests, such as `shouldAuthenticateWithPlainText`. These 4 tests will now fail if submitting multiple requests initially in parallel isn't working. I think it would be good if we could keep these tests as simple as possible so they don't include parallelization of initial requests. A test like `shouldAuthenticateWithPlainText` should really only fail if _authenticate with plain text_ isn't working, not if submitting multiple requests in parallel isn't working. Long story short, I think it would be good if you could revert the changes to this method and instead write a new test specifically for the parallelization issue. ## gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/SaslAuthenticationHandler.java: ## @@ -75,106 +79,159 @@ public SaslAuthenticationHandler(final Authenticator authenticator, final Author @Override public void channelRead(final ChannelHandlerContext ctx, final Object msg) throws Exception { -if (msg instanceof RequestMessage){ -final RequestMessage requestMessage = (RequestMessage) msg; - -final Attribute negotiator = ((AttributeMap) ctx).attr(StateKey.NEGOTIATOR); -final Attribute request = ((AttributeMap) ctx).attr(StateKey.REQUEST_MESSAGE); -if (negotiator.get() == null) { -try { -// First time through so save the request and send an AUTHENTICATE challenge with no data - negotiator.set(authenticator.newSaslNegotiator(getRemoteInetAddress(ctx))); -request.set(requestMessage); -final ResponseMessage authenticate = ResponseMessage.build(requestMessage) -.code(ResponseStatusCode.AUTHENTICATE).create(); -ctx.writeAndFlush(authenticate); -} catch (Exception ex) { -// newSaslNegotiator can cause troubles - if we don't catch and respond nicely the driver seems -// to hang until timeout which isn't so nice. treating this like a server error as it means that -// the Authenticator isn't really ready to deal with requests for some reason. -logger.error(String.format("%s is not ready to handle requests - check its configuration or related services", -authenticator.getClass().getSimpleName()), ex); - -final ResponseMessage error = ResponseMessage.build(requestMessage) -.statusMessage("Authenticator is not ready to handle requests") -.code(ResponseStatusCode.SERVER_ERROR).create(); -ctx.writeAndFlush(error); -} -} else { -if (requestMessage.getOp().equals(Tokens.OPS_AUTHENTICATION) && requestMessage.getArgs().containsKey(Tokens.ARGS_SASL)) { - -final Object saslObject = requestMessage.getArgs().get(Tokens.ARGS_SASL); -final byte[] saslResponse; - -if(saslObject instanceof String) { -saslResponse = BASE64_DECODER.decode((String) saslObject); -} else { -final ResponseMessage error = ResponseMessage.build(request.get()) -.statusMessage("Incorrect type for : " + Tokens.ARGS_SASL + " - base64 encoded String is expected") - .code(ResponseSt
[jira] [Commented] (TINKERPOP-3063) Concurrent queries will break authentication on .NET driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17831274#comment-17831274 ] ASF GitHub Bot commented on TINKERPOP-3063: --- FlorianHockmann commented on PR #2522: URL: https://github.com/apache/tinkerpop/pull/2522#issuecomment-2022386126 > Do you have any thoughts on the server side solution by @tien in https://github.com/apache/tinkerpop/pull/2525? If the server fix fully addresses the issue, then it should make the changes here as well as equivalent GLV changes unnecessary. I'm just back from vacation which is why I couldn't review the PR yet. But I agree in general that a server fix is definitely better in general than implementing workarounds in all GLV drivers. I'll try to review #2525 today. If it fixes the issue, then we of course don't need this PR any more. > Concurrent queries will break authentication on .NET driver > --- > > Key: TINKERPOP-3063 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3063 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Major > > Executing multiple queries in parallel can lead to authentication failures if > {{MaxInProcessPerConnection}} is set to a value higher than {{1}} as the > second request can then be send to the server while the server is still > waiting for the authentication challenge response from the driver for the > first query. > A simple workaround is to set {{MaxInProcessPerConnection=1}} but this means > of course that connection pooling will be less efficient. > This issue also exists for other drivers: > * Java: TINKERPOP-2132 > * JS: TINKERPOP-3061 > (I don't know about the Python and Go drivers.) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830959#comment-17830959 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2020601411 I've added one test for the unhappy path. > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3063) Concurrent queries will break authentication on .NET driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830742#comment-17830742 ] ASF GitHub Bot commented on TINKERPOP-3063: --- Cole-Greer commented on PR #2522: URL: https://github.com/apache/tinkerpop/pull/2522#issuecomment-2019172365 @FlorianHockmann Do you have any thoughts on the server side solution by @tien in https://github.com/apache/tinkerpop/pull/2525? If the server fix fully addresses the issue, then it should make the changes here as well as equivalent GLV changes unnecessary. > Concurrent queries will break authentication on .NET driver > --- > > Key: TINKERPOP-3063 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3063 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Major > > Executing multiple queries in parallel can lead to authentication failures if > {{MaxInProcessPerConnection}} is set to a value higher than {{1}} as the > second request can then be send to the server while the server is still > waiting for the authentication challenge response from the driver for the > first query. > A simple workaround is to set {{MaxInProcessPerConnection=1}} but this means > of course that connection pooling will be less efficient. > This issue also exists for other drivers: > * Java: TINKERPOP-2132 > * JS: TINKERPOP-3061 > (I don't know about the Python and Go drivers.) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830740#comment-17830740 ] ASF GitHub Bot commented on TINKERPOP-3061: --- Cole-Greer commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2019163528 I agree with @kenhuuu that an additional test is warranted here to ensure that the server will always send a response to every request. We are now entering code freeze week in preparation for the 3.6.7 and 3.7.2 releases. I believe it is fair to grant an exception for a few days to give some time for such a test to be implemented and to ensure this PR can be included in the release. > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830715#comment-17830715 ] ASF GitHub Bot commented on TINKERPOP-3061: --- kenhuuu commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2018983365 Could you also add a test where the authentication fails and you check that all requests get the proper exception in that case? > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17830679#comment-17830679 ] ASF GitHub Bot commented on TINKERPOP-3061: --- Cole-Greer commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2018796622 Thanks @tien, looks great. VOTE +1 > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17829326#comment-17829326 ] ASF GitHub Bot commented on TINKERPOP-3061: --- vkagamlyk commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2010797352 > Have added 1 changelog entry & a test to the JS driver Thank you @tien! VOTE +1 > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17829310#comment-17829310 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2010727589 Have added 1 changelog entry & a test to the JS driver > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828153#comment-17828153 ] ASF GitHub Bot commented on TINKERPOP-3061: --- vkagamlyk commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2005644096 I think this is a good solution for concurrent auth issue. Good to have test for js driver to be 100% sure. Also missing `changelog` entry > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17827688#comment-17827688 ] ASF GitHub Bot commented on TINKERPOP-3061: --- codecov-commenter commented on PR #2525: URL: https://github.com/apache/tinkerpop/pull/2525#issuecomment-2001946536 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?dropdown=coverage=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report Attention: Patch coverage is `36.90476%` with `53 lines` in your changes are missing coverage. Please review. > Project coverage is 76.46%. Comparing base [(`9b46b67`)](https://app.codecov.io/gh/apache/tinkerpop/commit/9b46b6777d2fa250e41daacf2fa4554605aff53a?dropdown=coverage=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) to head [(`b65004e`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?dropdown=coverage=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Report is 42 commits behind head on 3.7-dev. | [Files](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?dropdown=coverage=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | Patch % | Lines | |---|---|---| | [...mlin/server/handler/SaslAuthenticationHandler.java](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache#diff-Z3JlbWxpbi1zZXJ2ZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3RpbmtlcnBvcC9ncmVtbGluL3NlcnZlci9oYW5kbGVyL1Nhc2xBdXRoZW50aWNhdGlvbkhhbmRsZXIuamF2YQ==) | 36.14% | [45 Missing and 8 partials :warning: ](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?src=pr=tree_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) | Additional details and impacted files ```diff @@ Coverage Diff @@ ## 3.7-dev#2525 +/- ## = + Coverage 76.14% 76.46% +0.32% - Complexity 1315213167 +15 = Files 1084 1059 -25 Lines 6516061292-3868 Branches7285 7298 +13 = - Hits 4961646868-2748 + Misses 1283911906 -933 + Partials2705 2518 -187 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2525?dropdown=coverage=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3061) Concurrent queries will break authentication on javascript driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17827655#comment-17827655 ] ASF GitHub Bot commented on TINKERPOP-3061: --- tien opened a new pull request, #2525: URL: https://github.com/apache/tinkerpop/pull/2525 This solution try to resolve the concurrent initial unauthenticated requests problem described in [TINKERPOP-3063](https://issues.apache.org/jira/browse/TINKERPOP-3063), [TINKERPOP-2132](https://issues.apache.org/jira/browse/TINKERPOP-2132) & [TINKERPOP-3061](https://issues.apache.org/jira/browse/TINKERPOP-3061) by batching them for later processing when authentication handshake is in progress. > Concurrent queries will break authentication on javascript driver > - > > Key: TINKERPOP-3061 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3061 > Project: TinkerPop > Issue Type: Bug > Components: javascript >Affects Versions: 3.6.6, 3.7.1 >Reporter: Yang Xia >Priority: Major > > Reported by tien on Discord: > {code:java} > import gremlin from "gremlin"; > const g = gremlin.process.AnonymousTraversalSource.traversal().withRemote( > new gremlin.driver.DriverRemoteConnection("ws://localhost:8182/gremlin", { > authenticator: new gremlin.driver.auth.PlainTextSaslAuthenticator( > "admin", > "administrator" > ), > }) > ); > // This will throws: Failed to authenticate (401) > await Promise.all([g.V().toList(), g.V().toList()]); > // This works as expected > await g.V().toList(); > await g.V().toList(); {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3063) Concurrent queries will break authentication on .NET driver
[ https://issues.apache.org/jira/browse/TINKERPOP-3063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17826993#comment-17826993 ] ASF GitHub Bot commented on TINKERPOP-3063: --- FlorianHockmann opened a new pull request, #2522: URL: https://github.com/apache/tinkerpop/pull/2522 https://issues.apache.org/jira/browse/TINKERPOP-3063 Executing multiple queries in parallel could lead to authentication failures if `MaxInProcessPerConnection` is set to a value higher than `1` as the second request could then be sent to the server while the server was still waiting for the authentication challenge response from the driver for the first query. This made it necessary to set `MaxInProcessPerConnection=1` as a workaround for such scenarios which of course means that connection pooling is less efficient. Simply sending a validation request on each connection right after establishing the connection and therefore before it can be used to submit queries from the user should fix this issue. The downside of this is of course that connection establishment takes slightly longer. I think this is an acceptable trade-off even for scenarios where authentication is not used since this also validates the connection irrespective of authentication and also because this delay only occurs once right at the start of an application. VOTE +1 > Concurrent queries will break authentication on .NET driver > --- > > Key: TINKERPOP-3063 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3063 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Major > > Executing multiple queries in parallel can lead to authentication failures if > {{MaxInProcessPerConnection}} is set to a value higher than {{1}} as the > second request can then be send to the server while the server is still > waiting for the authentication challenge response from the driver for the > first query. > A simple workaround is to set {{MaxInProcessPerConnection=1}} but this means > of course that connection pooling will be less efficient. > This issue also exists for other drivers: > * Java: TINKERPOP-2132 > * JS: TINKERPOP-3061 > (I don't know about the Python and Go drivers.) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3054) RequestId serialization broken in Python GLV
[ https://issues.apache.org/jira/browse/TINKERPOP-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822230#comment-17822230 ] ASF GitHub Bot commented on TINKERPOP-3054: --- Cole-Greer merged PR #2494: URL: https://github.com/apache/tinkerpop/pull/2494 > RequestId serialization broken in Python GLV > > > Key: TINKERPOP-3054 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3054 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6, 3.7.1 >Reporter: Valentyn Kahamlyk >Priority: Blocker > > `g.with_('requestId', uuid.uuid1()).V().count().toList()` > failed with error `AttributeError: 'UUID' object has no attribute 'replace'` > in line > `uuid.UUID(request_id) # Checks for proper UUID or else server will return an > error.` -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3054) RequestId serialization broken in Python GLV
[ https://issues.apache.org/jira/browse/TINKERPOP-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1789#comment-1789 ] ASF GitHub Bot commented on TINKERPOP-3054: --- Cole-Greer commented on PR #2494: URL: https://github.com/apache/tinkerpop/pull/2494#issuecomment-1971562226 VOTE +1 > RequestId serialization broken in Python GLV > > > Key: TINKERPOP-3054 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3054 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6, 3.7.1 >Reporter: Valentyn Kahamlyk >Priority: Blocker > > `g.with_('requestId', uuid.uuid1()).V().count().toList()` > failed with error `AttributeError: 'UUID' object has no attribute 'replace'` > in line > `uuid.UUID(request_id) # Checks for proper UUID or else server will return an > error.` -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3054) RequestId serialization broken in Python GLV
[ https://issues.apache.org/jira/browse/TINKERPOP-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17820247#comment-17820247 ] ASF GitHub Bot commented on TINKERPOP-3054: --- kenhuuu commented on PR #2494: URL: https://github.com/apache/tinkerpop/pull/2494#issuecomment-1962184812 VOTE +1 > RequestId serialization broken in Python GLV > > > Key: TINKERPOP-3054 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3054 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6, 3.7.1 >Reporter: Valentyn Kahamlyk >Priority: Blocker > > `g.with_('requestId', uuid.uuid1()).V().count().toList()` > failed with error `AttributeError: 'UUID' object has no attribute 'replace'` > in line > `uuid.UUID(request_id) # Checks for proper UUID or else server will return an > error.` -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17819187#comment-17819187 ] ASF GitHub Bot commented on TINKERPOP-3030: --- FlorianHockmann merged PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468 > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Blocker > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17818048#comment-17818048 ] ASF GitHub Bot commented on TINKERPOP-2862: --- spmallette merged PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483 > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817967#comment-17817967 ] ASF GitHub Bot commented on TINKERPOP-3031: --- spmallette merged PR #2488: URL: https://github.com/apache/tinkerpop/pull/2488 > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3054) RequestId serialization broken in Python GLV
[ https://issues.apache.org/jira/browse/TINKERPOP-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817563#comment-17817563 ] ASF GitHub Bot commented on TINKERPOP-3054: --- codecov-commenter commented on PR #2494: URL: https://github.com/apache/tinkerpop/pull/2494#issuecomment-1945138647 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2494?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Comparison is base [(`c7f3d24`)](https://app.codecov.io/gh/apache/tinkerpop/commit/c7f3d2454a654cea57c2a99077d859b115fec4c3?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.15% compared to head [(`e6be164`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2494?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.39%. > Report is 8 commits behind head on 3.6-dev. Additional details and impacted files ```diff @@ Coverage Diff @@ ## 3.6-dev#2494 +/- ## = + Coverage 75.15% 75.39% +0.23% + Complexity 1235112346 -5 = Files 1058 1033 -25 Lines 6361059838-3772 Branches6962 6962 = - Hits 4780645113-2693 + Misses 1322412329 -895 + Partials2580 2396 -184 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2494?src=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > RequestId serialization broken in Python GLV > > > Key: TINKERPOP-3054 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3054 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6, 3.7.1 >Reporter: Valentyn Kahamlyk >Priority: Blocker > > `g.with_('requestId', uuid.uuid1()).V().count().toList()` > failed with error `AttributeError: 'UUID' object has no attribute 'replace'` > in line > `uuid.UUID(request_id) # Checks for proper UUID or else server will return an > error.` -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3054) RequestId serialization broken in Python GLV
[ https://issues.apache.org/jira/browse/TINKERPOP-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817556#comment-17817556 ] ASF GitHub Bot commented on TINKERPOP-3054: --- ryn5 opened a new pull request, #2494: URL: https://github.com/apache/tinkerpop/pull/2494 https://issues.apache.org/jira/browse/TINKERPOP-3054 Error was being caused by uuid constructor/validator receiving `request_id` from message as UUID instead of string. Added str() guard to uuid validation and removed the type conversion on deserialization to keep `request_id` consistently of type UUID. > RequestId serialization broken in Python GLV > > > Key: TINKERPOP-3054 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3054 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6, 3.7.1 >Reporter: Valentyn Kahamlyk >Priority: Blocker > > `g.with_('requestId', uuid.uuid1()).V().count().toList()` > failed with error `AttributeError: 'UUID' object has no attribute 'replace'` > in line > `uuid.UUID(request_id) # Checks for proper UUID or else server will return an > error.` -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817491#comment-17817491 ] ASF GitHub Bot commented on TINKERPOP-3031: --- Cole-Greer commented on PR #2488: URL: https://github.com/apache/tinkerpop/pull/2488#issuecomment-1944399941 VOTE +1 > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817490#comment-17817490 ] ASF GitHub Bot commented on TINKERPOP-3031: --- vkagamlyk commented on PR #2488: URL: https://github.com/apache/tinkerpop/pull/2488#issuecomment-1944396448 VOTE +1 > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817487#comment-17817487 ] ASF GitHub Bot commented on TINKERPOP-3031: --- xiazcy commented on PR #2488: URL: https://github.com/apache/tinkerpop/pull/2488#issuecomment-1944391281 VOTE +1 > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817387#comment-17817387 ] ASF GitHub Bot commented on TINKERPOP-3030: --- FlorianHockmann commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1943802015 > In general I like the idea of testing both .NET 6 and .NET 8 in GHA similar to how Java is currently setup (I don't see a need for contributors to run both locally) I agree in general. I would also like to just execute the tests in GHA for .NET 6 and 8 without requiring contributors to have both installed, but I can't find a solution for this which doesn't require ugly workarounds. We can't just configure this for GHA unfortunately. Instead, we need to add both versions as `TargetFrameworks` to the `csproj` config files of the test projects like this to let the tests run on both versions: ```xml net6.0;net8.0 ``` But if we do that, then you also need to have both installed in order to execute the tests. If you only have .NET 8 installed, then you'll get an error: ``` Testhost process for source(s) '[...]/tinkerpop/gremlin-dotnet/test/Gremlin.Net.UnitTest/bin/Debug/net6.0/Gremlin.Net.UnitTest.dll' exited with error: You must install or update .NET to run this application. App: [...]/tinkerpop/gremlin-dotnet/test/Gremlin.Net.UnitTest/bin/Debug/net6.0/testhost.dll Architecture: x64 Framework: 'Microsoft.NETCore.App', version '6.0.0' (x64) ``` So, if we want to execute the tests for both versions in GHA, then we also need to test them like this locally which means that all contributors need to have both versions installed. But since you already cast your vote and the PR has been open for 2 weeks already (longer than our 7 day cool down time), I'll wait a few more days in case any one else has any insights on this and merge the PR if not. > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Blocker > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817147#comment-17817147 ] ASF GitHub Bot commented on TINKERPOP-3056: --- spmallette merged PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487 > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817114#comment-17817114 ] ASF GitHub Bot commented on TINKERPOP-3031: --- codecov-commenter commented on PR #2488: URL: https://github.com/apache/tinkerpop/pull/2488#issuecomment-1942184344 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2488?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Comparison is base [(`4e8a8f9`)](https://app.codecov.io/gh/apache/tinkerpop/commit/4e8a8f95fa5237bca98de9b7b65a3a056ee44067?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.14% compared to head [(`d4892ad`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2488?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.14%. Additional details and impacted files ```diff @@Coverage Diff @@ ## 3.6-dev#2488 +/- ## == Coverage 75.14% 75.14% - Complexity 1234412345+1 == Files 1058 1058 Lines 6361063628 +18 Branches6962 6967+5 == + Hits 4779847815 +17 - Misses 1322613231+5 + Partials2586 2582-4 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2488?src=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3031) Bad translation for g.tx()
[ https://issues.apache.org/jira/browse/TINKERPOP-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817108#comment-17817108 ] ASF GitHub Bot commented on TINKERPOP-3031: --- spmallette opened a new pull request, #2488: URL: https://github.com/apache/tinkerpop/pull/2488 https://issues.apache.org/jira/browse/TINKERPOP-3031 VOTE +1 > Bad translation for g.tx() > -- > > Key: TINKERPOP-3031 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3031 > Project: TinkerPop > Issue Type: Bug > Components: translator >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Not sure if other translators are affected but {{GroovyTranslator}} doesn't > translate {{tx()}} properly: > {code} > gremlin> > GroovyTranslator.of('g').translate(org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK.bytecode).script > ==>g.tx("rollback") > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817102#comment-17817102 ] ASF GitHub Bot commented on TINKERPOP-2862: --- Cole-Greer commented on PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#issuecomment-1942128603 LGTM VOTE +1 > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817101#comment-17817101 ] ASF GitHub Bot commented on TINKERPOP-3056: --- Cole-Greer commented on PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#issuecomment-1942116756 LGTM VOTE +1 > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817094#comment-17817094 ] ASF GitHub Bot commented on TINKERPOP-3056: --- xiazcy commented on PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#issuecomment-1942092498 VOTE +1 > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817091#comment-17817091 ] ASF GitHub Bot commented on TINKERPOP-3056: --- vkagamlyk commented on PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#issuecomment-1942076338 VOTE +1 not exactly related to the current ticket, but is there same issue for `MergeV`? > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817085#comment-17817085 ] ASF GitHub Bot commented on TINKERPOP-3056: --- spmallette commented on code in PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#discussion_r1488293645 ## gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/MergeEdge.feature: ## @@ -841,3 +841,45 @@ Feature: Step - mergeE() """ When iterated to list Then the traversal will raise an error with message containing text of "Property key can not be a hidden key: ~label" + + Scenario: g_V_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX +Given the empty graph +And the graph initializer of + """ + g.addV("person").property("name", "marko").as("a"). +addV("person").property("name", "vadas").as("b"). +addE("knows").property("weight", 1).from("a").to("b") + """ +And using the parameter xx1 defined as "m[{\"t[label]\": \"knows\", \"D[OUT]\":\"v[marko]\", \"D[IN]\":\"v[vadas]\"}]" +And the traversal of + """ + g.V().mergeE(xx1). + option(Merge.onMatch, __.sideEffect(__.property("weight", 0)).constant([:])) + """ +When iterated to list +Then the result should have a count of 2 +And the graph should return 2 for count of "g.V()" +And the graph should return 0 for count of "g.E().hasLabel(\"knows\").has(\"weight\",1)" +And the graph should return 1 for count of "g.E().hasLabel(\"knows\").has(\"weight\",0)" +And the graph should return 0 for count of "g.V().hasLabel(\"knows\").has(\"weight\")" Review Comment: bad cut/paste - fixed both - thanks. > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817070#comment-17817070 ] ASF GitHub Bot commented on TINKERPOP-2862: --- vkagamlyk commented on PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#issuecomment-1941971681 VOTE +1 > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817067#comment-17817067 ] ASF GitHub Bot commented on TINKERPOP-3056: --- vkagamlyk commented on code in PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#discussion_r1488216500 ## gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/MergeEdge.feature: ## @@ -841,3 +841,45 @@ Feature: Step - mergeE() """ When iterated to list Then the traversal will raise an error with message containing text of "Property key can not be a hidden key: ~label" + + Scenario: g_V_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX +Given the empty graph +And the graph initializer of + """ + g.addV("person").property("name", "marko").as("a"). +addV("person").property("name", "vadas").as("b"). +addE("knows").property("weight", 1).from("a").to("b") + """ +And using the parameter xx1 defined as "m[{\"t[label]\": \"knows\", \"D[OUT]\":\"v[marko]\", \"D[IN]\":\"v[vadas]\"}]" +And the traversal of + """ + g.V().mergeE(xx1). + option(Merge.onMatch, __.sideEffect(__.property("weight", 0)).constant([:])) + """ +When iterated to list +Then the result should have a count of 2 +And the graph should return 2 for count of "g.V()" +And the graph should return 0 for count of "g.E().hasLabel(\"knows\").has(\"weight\",1)" +And the graph should return 1 for count of "g.E().hasLabel(\"knows\").has(\"weight\",0)" +And the graph should return 0 for count of "g.V().hasLabel(\"knows\").has(\"weight\")" + + Scenario: g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX +Given the empty graph +And the graph initializer of + """ + g.addV("person").property("name", "marko").as("a"). +addV("person").property("name", "vadas").as("b"). +addE("knows").property("weight", 1).from("a").to("b") + """ +And using the parameter xx1 defined as "m[{\"t[label]\": \"knows\", \"D[OUT]\":\"v[marko]\", \"D[IN]\":\"v[vadas]\"}]" +And the traversal of + """ + g.mergeE(xx1). + option(Merge.onMatch, __.sideEffect(__.property("weight", 0)).constant([:])) + """ +When iterated to list +Then the result should have a count of 1 +And the graph should return 2 for count of "g.V()" +And the graph should return 0 for count of "g.E().hasLabel(\"knows\").has(\"weight\",1)" +And the graph should return 1 for count of "g.E().hasLabel(\"knows\").has(\"weight\",0)" +And the graph should return 0 for count of "g.V().hasLabel(\"knows\").has(\"weight\")" Review Comment: ```suggestion And the graph should return 0 for count of "g.V().has(\"weight\")" ``` > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817066#comment-17817066 ] ASF GitHub Bot commented on TINKERPOP-3056: --- vkagamlyk commented on code in PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#discussion_r1488215072 ## gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/map/MergeEdge.feature: ## @@ -841,3 +841,45 @@ Feature: Step - mergeE() """ When iterated to list Then the traversal will raise an error with message containing text of "Property key can not be a hidden key: ~label" + + Scenario: g_V_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX +Given the empty graph +And the graph initializer of + """ + g.addV("person").property("name", "marko").as("a"). +addV("person").property("name", "vadas").as("b"). +addE("knows").property("weight", 1).from("a").to("b") + """ +And using the parameter xx1 defined as "m[{\"t[label]\": \"knows\", \"D[OUT]\":\"v[marko]\", \"D[IN]\":\"v[vadas]\"}]" +And the traversal of + """ + g.V().mergeE(xx1). + option(Merge.onMatch, __.sideEffect(__.property("weight", 0)).constant([:])) + """ +When iterated to list +Then the result should have a count of 2 +And the graph should return 2 for count of "g.V()" +And the graph should return 0 for count of "g.E().hasLabel(\"knows\").has(\"weight\",1)" +And the graph should return 1 for count of "g.E().hasLabel(\"knows\").has(\"weight\",0)" +And the graph should return 0 for count of "g.V().hasLabel(\"knows\").has(\"weight\")" Review Comment: ```suggestion And the graph should return 0 for count of "g.V().has(\"weight\")" ``` > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817028#comment-17817028 ] ASF GitHub Bot commented on TINKERPOP-3056: --- codecov-commenter commented on PR #2487: URL: https://github.com/apache/tinkerpop/pull/2487#issuecomment-1941684720 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2487?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Comparison is base [(`c7f3d24`)](https://app.codecov.io/gh/apache/tinkerpop/commit/c7f3d2454a654cea57c2a99077d859b115fec4c3?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.15% compared to head [(`7c99643`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2487?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.16%. Additional details and impacted files ```diff @@Coverage Diff @@ ## 3.6-dev#2487 +/- ## == Coverage 75.15% 75.16% - Complexity 1235112352+1 == Files 1058 1058 Lines 6361063610 Branches6962 6962 == + Hits 4780647812+6 + Misses 1322413217-7 - Partials2580 2581+1 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2487?src=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3056) mergeE is updating vertices in certain conditions
[ https://issues.apache.org/jira/browse/TINKERPOP-3056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17817018#comment-17817018 ] ASF GitHub Bot commented on TINKERPOP-3056: --- spmallette opened a new pull request, #2487: URL: https://github.com/apache/tinkerpop/pull/2487 https://issues.apache.org/jira/browse/TINKERPOP-3056 Since the current traverser was only being updated onMatch when it was used as a start step doing mutations in a sideEffect() would update whatever the current traverser was. This code may have been leftover from a time when the merge steps operated more readily on the current traverser as an argument to the step. VOTE +1 > mergeE is updating vertices in certain conditions > - > > Key: TINKERPOP-3056 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3056 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Blocker > > {code} > gremlin> g.addV('mytestlabel').property(id, 'testA').property('timestamp', > 1).as('a'). > ..1> addV('mytestlabel').property(id, 'testA2').property('timestamp', > 1).as('a2'). > ..2> addE('mytestlabel').from('a').to('a2').property('timestamp', > 2).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().mergeE([(T.label):'mytestlabel', (Direction.from): 'testA', > (Direction.to):'testA2']). > ..1> option(onMatch, sideEffect(property(single, 'timestamp', > 4).property(single, 'edgelabel', 'exists')). > ..2> constant([:])).valueMap(true) > ==>[id:2,label:mytestlabel,timestamp:2] > ==>[id:2,label:mytestlabel,timestamp:2] > gremlin> g.V().valueMap(true) > ==>[id:testA2,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > ==>[id:testA,label:mytestlabel,edgelabel:[exists],timestamp:[4]] > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816990#comment-17816990 ] ASF GitHub Bot commented on TINKERPOP-2862: --- spmallette commented on code in PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#discussion_r1487827851 ## docs/src/upgrade/release-4.x.x.asciidoc: ## @@ -75,10 +75,43 @@ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3017[TINKERPOP-3017] Starting from this version, `gremlin-javascript` will deserialize `Set` data into a ECMAScript 2015 Set. Previously, these were deserialized into arrays. + Gremlin Grammar Changes + +A number of changes have been introduce to the Gremlin grammar to help make it be more consistent and easier to use. + +*`new` keyword is now optional* + +The `new` keyword is now optional in all cases where it was previously used. Both of the following examples are now +valid syntax with the second being the preferred form going forward: + +[source,groovy] + +g.V().withStrategies(new SubgraphStrategy(vertices: __.hasLabel('person'))) + +g.V().withStrategies(SubgraphStrategy(vertices: __.hasLabel('person'))) + + +In a future version, it is likely that the `new` keyword will be removed entirely from the grammar. + +*Supports withoutStrategies()* + +The `withoutStrategies()` configuration step is now supported syntax for the grammar. While this option is not commonly +used it is still a part of the Gremlin language and there are times where it is helpful to have this fine grained +control over how a traversal works. + +[source,groovy] + +g.V().withoutStrategies(CountStrategy) Review Comment: It doesn't need a String. The grammar should accept any `Identifier` there. If it matches a registered strategy from a provider, it will work as valid syntax. https://github.com/apache/tinkerpop/pull/2483/files#diff-39ed59720093773649512a14aeba8c3da9e6d21ce016c7f0cdf7a1242e3a76a1R72 I suppose it will be up to each programming language to decide what to do with that. For Java, you could have reference to the actual class file from the provider and could use that. Since it matches on the simple name of the class a dummy class could also be used. Alternatively, Java (and other languages) could be changed to allow a `String` I suppose, but I wasn't ready to make that choice. I mostly wanted to focus in on the grammar and getting that working right for standard TinkerPop strategies. Created: https://issues.apache.org/jira/browse/TINKERPOP-3055 to track. > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816678#comment-17816678 ] ASF GitHub Bot commented on TINKERPOP-3030: --- Cole-Greer commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1939207359 In general I like the idea of testing both .NET 6 and .NET 8 in GHA similar to how Java is currently setup (I don't see a need for contributors to run both locally). In my mind testing both runtimes gives the strongest guarantee against issues which only appear for specific versions. .NET compatibility is not something I know very well however so I will defer to @FlorianHockmann and @vkagamlyk to determine what level of testing is required. VOTE +0 > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816635#comment-17816635 ] ASF GitHub Bot commented on TINKERPOP-3030: --- FlorianHockmann commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1938856875 > did you leave src\Gremlin.Net\Gremlin.Net.csproj unchanged on purpose? Yes, we still only target .NET Standard 2.0 and .NET 6. .NET 6 is there also only because we're using Websocket compression which wasn't present in .NET Standard, but was only added in .NET 6. Users on .NET 7 or 8 can of course still use Gremlin.Net. They should get the version built for .NET 6 in that case. We could of course add another target for .NET 7 and/or .NET 8, but I think that doesn't add any benefit if we're not using any APIs specific for these versions. > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816254#comment-17816254 ] ASF GitHub Bot commented on TINKERPOP-2862: --- vkagamlyk commented on code in PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#discussion_r1484898149 ## docs/src/upgrade/release-4.x.x.asciidoc: ## @@ -75,10 +75,43 @@ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3017[TINKERPOP-3017] Starting from this version, `gremlin-javascript` will deserialize `Set` data into a ECMAScript 2015 Set. Previously, these were deserialized into arrays. + Gremlin Grammar Changes + +A number of changes have been introduce to the Gremlin grammar to help make it be more consistent and easier to use. + +*`new` keyword is now optional* + +The `new` keyword is now optional in all cases where it was previously used. Both of the following examples are now +valid syntax with the second being the preferred form going forward: + +[source,groovy] + +g.V().withStrategies(new SubgraphStrategy(vertices: __.hasLabel('person'))) + +g.V().withStrategies(SubgraphStrategy(vertices: __.hasLabel('person'))) + + +In a future version, it is likely that the `new` keyword will be removed entirely from the grammar. + +*Supports withoutStrategies()* + +The `withoutStrategies()` configuration step is now supported syntax for the grammar. While this option is not commonly +used it is still a part of the Gremlin language and there are times where it is helpful to have this fine grained +control over how a traversal works. + +[source,groovy] + +g.V().withoutStrategies(CountStrategy) Review Comment: also for providers ## docs/src/upgrade/release-4.x.x.asciidoc: ## @@ -75,10 +75,43 @@ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3017[TINKERPOP-3017] Starting from this version, `gremlin-javascript` will deserialize `Set` data into a ECMAScript 2015 Set. Previously, these were deserialized into arrays. + Gremlin Grammar Changes + +A number of changes have been introduce to the Gremlin grammar to help make it be more consistent and easier to use. + +*`new` keyword is now optional* + +The `new` keyword is now optional in all cases where it was previously used. Both of the following examples are now +valid syntax with the second being the preferred form going forward: + +[source,groovy] + +g.V().withStrategies(new SubgraphStrategy(vertices: __.hasLabel('person'))) + +g.V().withStrategies(SubgraphStrategy(vertices: __.hasLabel('person'))) + + +In a future version, it is likely that the `new` keyword will be removed entirely from the grammar. + +*Supports withoutStrategies()* + +The `withoutStrategies()` configuration step is now supported syntax for the grammar. While this option is not commonly +used it is still a part of the Gremlin language and there are times where it is helpful to have this fine grained +control over how a traversal works. + +[source,groovy] + +g.V().withoutStrategies(CountStrategy) Review Comment: also for providers > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816255#comment-17816255 ] ASF GitHub Bot commented on TINKERPOP-2862: --- vkagamlyk commented on code in PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#discussion_r1484897917 ## docs/src/upgrade/release-4.x.x.asciidoc: ## @@ -75,10 +75,43 @@ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3017[TINKERPOP-3017] Starting from this version, `gremlin-javascript` will deserialize `Set` data into a ECMAScript 2015 Set. Previously, these were deserialized into arrays. + Gremlin Grammar Changes + +A number of changes have been introduce to the Gremlin grammar to help make it be more consistent and easier to use. + +*`new` keyword is now optional* + +The `new` keyword is now optional in all cases where it was previously used. Both of the following examples are now +valid syntax with the second being the preferred form going forward: + +[source,groovy] + +g.V().withStrategies(new SubgraphStrategy(vertices: __.hasLabel('person'))) + +g.V().withStrategies(SubgraphStrategy(vertices: __.hasLabel('person'))) + + +In a future version, it is likely that the `new` keyword will be removed entirely from the grammar. + +*Supports withoutStrategies()* + +The `withoutStrategies()` configuration step is now supported syntax for the grammar. While this option is not commonly +used it is still a part of the Gremlin language and there are times where it is helpful to have this fine grained +control over how a traversal works. + +[source,groovy] + +g.V().withoutStrategies(CountStrategy) Review Comment: does it make sense to add an overload that accepts string as argument? Might be useful for GLV's, like `withoutStrategies(SubgraphStrategy.class)` vs `withoutStrategies("SubgraphStrategy")`. Also for providers > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816253#comment-17816253 ] ASF GitHub Bot commented on TINKERPOP-2862: --- vkagamlyk commented on code in PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#discussion_r1484897917 ## docs/src/upgrade/release-4.x.x.asciidoc: ## @@ -75,10 +75,43 @@ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3017[TINKERPOP-3017] Starting from this version, `gremlin-javascript` will deserialize `Set` data into a ECMAScript 2015 Set. Previously, these were deserialized into arrays. + Gremlin Grammar Changes + +A number of changes have been introduce to the Gremlin grammar to help make it be more consistent and easier to use. + +*`new` keyword is now optional* + +The `new` keyword is now optional in all cases where it was previously used. Both of the following examples are now +valid syntax with the second being the preferred form going forward: + +[source,groovy] + +g.V().withStrategies(new SubgraphStrategy(vertices: __.hasLabel('person'))) + +g.V().withStrategies(SubgraphStrategy(vertices: __.hasLabel('person'))) + + +In a future version, it is likely that the `new` keyword will be removed entirely from the grammar. + +*Supports withoutStrategies()* + +The `withoutStrategies()` configuration step is now supported syntax for the grammar. While this option is not commonly +used it is still a part of the Gremlin language and there are times where it is helpful to have this fine grained +control over how a traversal works. + +[source,groovy] + +g.V().withoutStrategies(CountStrategy) Review Comment: does it make sense to add an overload that accepts string as argument? Might be useful for GLV's, like `withoutStrategies(SubgraphStrategy.class)` vs `withoutStrategies("SubgraphStrategy")` > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17816247#comment-17816247 ] ASF GitHub Bot commented on TINKERPOP-3030: --- vkagamlyk commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1936730837 @FlorianHockmann did you leave `src\Gremlin.Net\Gremlin.Net.csproj` unchanged on purpose? > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17815428#comment-17815428 ] ASF GitHub Bot commented on TINKERPOP-2862: --- codecov-commenter commented on PR #2483: URL: https://github.com/apache/tinkerpop/pull/2483#issuecomment-1932820461 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2483?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Comparison is base [(`fae51e8`)](https://app.codecov.io/gh/apache/tinkerpop/commit/fae51e87e7362648e53e58c66206a3a0442caa99?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 76.16% compared to head [(`5a30307`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2483?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 71.08%. Additional details and impacted files ```diff @@ Coverage Diff @@ ## master#2483 +/- ## - Coverage 76.16% 71.08% -5.09% Files 1085 25-1060 Lines 65191 3949 -61242 Branches 72890-7289 - Hits 49654 2807 -46847 + Misses12836 951 -11885 + Partials 2701 191-2510 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2483?src=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2862) A grammar in TinkerPop should accept withoutStrategies
[ https://issues.apache.org/jira/browse/TINKERPOP-2862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17815427#comment-17815427 ] ASF GitHub Bot commented on TINKERPOP-2862: --- spmallette opened a new pull request, #2483: URL: https://github.com/apache/tinkerpop/pull/2483 https://issues.apache.org/jira/browse/TINKERPOP-2862 Made "new" keyword optional in grammar TINKERPOP-3046. Language variants still have trouble using withoutStrategies() because of TINKERPOP-3047 and TINKERPOP-3048 that will need to get completed before they will work properly. > A grammar in TinkerPop should accept withoutStrategies > -- > > Key: TINKERPOP-2862 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2862 > Project: TinkerPop > Issue Type: Improvement > Components: language >Affects Versions: 3.6.1, 3.5.4 >Reporter: Norio Akagi >Priority: Major > > In our Grammar, we have {{withStrategies}} but not {{{}withoutStrategies{}}}. > [https://github.com/apache/tinkerpop/blob/08afd4e475b56189500c31361b624ecc687e8b7b/gremlin-language/src/main/antlr4/Gremlin.g4#L65] > > We should support so that a caller can disable a specific TinkerPop optimizer > at will. Note that graph providers can have their own Strategy, which may be > out of scope of {{withoutStrategies.}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17814805#comment-17814805 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette merged PR #2475: URL: https://github.com/apache/tinkerpop/pull/2475 > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Prashant >Assignee: Stephen Mallette >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17814557#comment-17814557 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette commented on PR #2481: URL: https://github.com/apache/tinkerpop/pull/2481#issuecomment-1928575168 closing for #2475 which was updated to match what is here. > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Prashant >Assignee: Stephen Mallette >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17814556#comment-17814556 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette closed pull request #2481: TINKERPOP-3045: EarlyLimitStrategy is too aggresive to promote Limit … URL: https://github.com/apache/tinkerpop/pull/2481 > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Prashant >Assignee: Stephen Mallette >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17814539#comment-17814539 ] ASF GitHub Bot commented on TINKERPOP-3045: --- upadhyay-prashant opened a new pull request, #2481: URL: https://github.com/apache/tinkerpop/pull/2481 …and thus causing incorrect results https://issues.apache.org/jira/browse/TINKERPOP-3045 EarlyLimitStrategy was too aggressive to promote limit before map steps. Not all the Map step can be displaced. Specifically if a Map step has capability to filter the results, then it should be displaced. This code change brings in a utility to statically determine the output arity of a step and accordingly allow EarlyLimitStrategy to make a decision whether a map step can be moved. Test is added in Range.feature which ensures that this bug is fixed. This test gives wrong result without this code change. > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Prashant >Assignee: Stephen Mallette >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17814534#comment-17814534 ] ASF GitHub Bot commented on TINKERPOP-3045: --- upadhyay-prashant commented on code in PR #2475: URL: https://github.com/apache/tinkerpop/pull/2475#discussion_r1479052070 ## gremlin-core/pom.xml: ## @@ -101,6 +101,16 @@ limitations under the License. hamcrest test + Review Comment: done ## gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature: ## @@ -280,4 +280,16 @@ Feature: Step - range() When iterated to list Then the result should be unordered | result | - | d[29].i | \ No newline at end of file + | d[29].i | + + Scenario: g_V_mapXinX_limitX2X_valuesXnameX +Given the modern graph +And the traversal of + """ + g.V().map(__.in()).limit(2).values('name') Review Comment: done > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 >Reporter: Prashant >Assignee: Stephen Mallette >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813739#comment-17813739 ] ASF GitHub Bot commented on TINKERPOP-3030: --- FlorianHockmann commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1924148227 Just to clarify: This PR doesn't change which frameworks we support with Gremlin.Net. It's only about which frameworks we use to build and test it. Gremlin.Net mainly [targets .NET Standard 2.0](https://github.com/apache/tinkerpop/blob/master/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj#L21) which is implemented by various .NET frameworks like .NET 5, .NET 6, .NET 7, and .NET 8. It has .NET 6 as an additional explicit target because we optionally use some APIs which were only introduced in .NET 6 to support Websocket compression. This can therefore only be used by users on .NET 6 and higher. Before this PR, we built and tested Gremlin.Net with .NET 6. With this PR, we're using .NET 8 instead. But users can still stay on .NET 6 (or 7 or whatever) and use newer versions of Gremlin.Net with it. Not sure if this was clear to you and you just wanted to propose that we **test** against .NET 6 **and** .NET 8. In that case, I agree with you in general that it would be good to test on both frameworks (or better to say runtimes in this case). The problem with that however is that all contributors then also need both runtimes installed. If you just have .NET 8 installed, then the tests will fail as you also need .NET 6 in that case. That's also why we always use the same version across all release branches. In the end, the question comes down to how many contributors are actually affected by this and how often do we expect to find version specific bugs because of it. I guess many contributors simply don't execute .NET tests on their machines and leave that up to GH Actions or they use the Docker based setup to execute the tests. So, this probably doesn't affect many contributors. On the other hand, [TINKERPOP-3029](https://issues.apache.org/jira/browse/TINKERPOP-3029) is also the only bug that comes to my mind which we could have catched by executing tests on different runtimes. Although I think it wouldn't have helped much as we still would have to be on .NET 8 in the first place to find it. So, the better question is how often a bug occurs that is specific to an **older** framework than the latest LTS version which we want to use by default. I don't have a strong opinion on this. If we are confident that this doesn't really affect contributors negatively, then I'm in favor of executing the tests on multiple runtimes. Otherwise, I'd stay with our current approach. > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813644#comment-17813644 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette commented on PR #2475: URL: https://github.com/apache/tinkerpop/pull/2475#issuecomment-1923659468 for other committers, i will help backfill some extra tests on this one, deal with CHANGELOG, etc. on merge > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 > Environment: ALL >Reporter: Prashant >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813632#comment-17813632 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette commented on code in PR #2475: URL: https://github.com/apache/tinkerpop/pull/2475#discussion_r1475959035 ## gremlin-core/pom.xml: ## @@ -101,6 +101,16 @@ limitations under the License. hamcrest test + Review Comment: it looks like there is relatively minor usage of guava and lombok. could you please adjust the `StepOutputArityPredictor` to not use these libraries so that we don't need to take the dependency? > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 > Environment: ALL >Reporter: Prashant >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813633#comment-17813633 ] ASF GitHub Bot commented on TINKERPOP-3045: --- spmallette commented on code in PR #2475: URL: https://github.com/apache/tinkerpop/pull/2475#discussion_r1475959778 ## gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature: ## @@ -280,4 +280,16 @@ Feature: Step - range() When iterated to list Then the result should be unordered | result | - | d[29].i | \ No newline at end of file + | d[29].i | + + Scenario: g_V_mapXinX_limitX2X_valuesXnameX +Given the modern graph +And the traversal of + """ + g.V().map(__.in()).limit(2).values('name') Review Comment: nit: we prefer double quotes for strings in our feature tests as a convention. > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 > Environment: ALL >Reporter: Prashant >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3045) EarlyLimitStrategy is too aggresive to promote Limit and thus causing incorrect results
[ https://issues.apache.org/jira/browse/TINKERPOP-3045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813463#comment-17813463 ] ASF GitHub Bot commented on TINKERPOP-3045: --- upadhyay-prashant opened a new pull request, #2475: URL: https://github.com/apache/tinkerpop/pull/2475 …and thus causing incorrect results https://issues.apache.org/jira/browse/TINKERPOP-3045 EarlyLimitStrategy was too aggressive to promote limit before map steps. Not all the Map step can be displaced. Specifically if a Map step has capability to filter the results, then it should be displaced. This code change brings in a utility to statically determine the output arity of a step and accordingly allow EarlyLimitStrategy to make a decision whether a map step can be moved. Test is added in Range.feature which ensures that this bug is fixed. This test gives wrong result without this code change. > EarlyLimitStrategy is too aggresive to promote Limit and thus causing > incorrect results > --- > > Key: TINKERPOP-3045 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3045 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.6.6 > Environment: ALL >Reporter: Prashant >Priority: Major > Labels: easyfix > Fix For: 3.6.7 > > > {code:java} > gremlin> g.V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko{code} > {code:java} > gremlin> > g.withoutStrategies(EarlyLimitStrategy).V().map(__.in().hasId('1')).limit(2).values('name') > ==>marko > ==>marko {code} > Early Limit strategy pulls Limit in front of map steps. However not all map > steps allow the cardinality of the results flowing to be same. > > As is shown in example above. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17813353#comment-17813353 ] ASF GitHub Bot commented on TINKERPOP-3030: --- Cole-Greer commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1921859623 I have some concerns over dropping the .NET 6 tests from 3.6-dev. .NET 6 remains supported by Microsoft for another 9 months. We should continue to support it in 3.6.x until it reaches end of life. I think it makes sense to add .NET 8 tests but it should be parallel to, not replacing the .NET 6 tests. > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17812687#comment-17812687 ] ASF GitHub Bot commented on TINKERPOP-3030: --- codecov-commenter commented on PR #2468: URL: https://github.com/apache/tinkerpop/pull/2468#issuecomment-1919010560 ## [Codecov](https://app.codecov.io/gh/apache/tinkerpop/pull/2468?src=pr=h1_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Comparison is base [(`3ae5298`)](https://app.codecov.io/gh/apache/tinkerpop/commit/3ae529870bb6ad448e081fecd4ee095f667a5892?el=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.42% compared to head [(`2c0ce57`)](https://app.codecov.io/gh/apache/tinkerpop/pull/2468?src=pr=desc_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache) 75.15%. > Report is 10 commits behind head on 3.6-dev. Additional details and impacted files ```diff @@ Coverage Diff @@ ## 3.6-dev#2468 +/- ## = - Coverage 75.42% 75.15% -0.27% + Complexity 1232112314 -7 = Files 1032 1057 +25 Lines 5969863470+3772 Branches6936 6936 = + Hits 4502947704+2675 - Misses 1228713193 +906 - Partials2382 2573 +191 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/tinkerpop/pull/2468?src=pr=continue_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral_source=github_content=comment_campaign=pr+comments_term=apache). > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3030) Update to .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17812685#comment-17812685 ] ASF GitHub Bot commented on TINKERPOP-3030: --- FlorianHockmann opened a new pull request, #2468: URL: https://github.com/apache/tinkerpop/pull/2468 https://issues.apache.org/jira/browse/TINKERPOP-3030 I've also noticed that the examples used camel casing for some method names which I switched to pascal casing to stay idiomatic in C#. I had to update the Docker image to Ubuntu 20.04 because .NET 8 is not available for Ubuntu 18.04. Since 18.04 is out of support since June already, this update makes sense in general [1]. I verified that the Docker build is still working with: ```sh ./docker/build.sh --dotnet ``` VOTE +1 [1]: https://wiki.ubuntu.com/Releases > Update to .NET 8 > > > Key: TINKERPOP-3030 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3030 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Minor > > .NET 8 is now the latest LTS release so we should update to it. > We need to do that on all release branches so contributors only need to have > one version of .NET installed on their systems. > This also means that we test by default with .NET 8 which would have shown > problems like the one described in TINKERPOP-3029. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3027) Pick.any should be any_()
[ https://issues.apache.org/jira/browse/TINKERPOP-3027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17808313#comment-17808313 ] ASF GitHub Bot commented on TINKERPOP-3027: --- vkagamlyk merged PR #2433: URL: https://github.com/apache/tinkerpop/pull/2433 > Pick.any should be any_() > - > > Key: TINKERPOP-3027 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3027 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Documentation shows {{any_()}} in the "Differences" section of the python > docs but it doesn't appear to be implemented. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3027) Pick.any should be any_()
[ https://issues.apache.org/jira/browse/TINKERPOP-3027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17807906#comment-17807906 ] ASF GitHub Bot commented on TINKERPOP-3027: --- vkagamlyk commented on PR #2433: URL: https://github.com/apache/tinkerpop/pull/2433#issuecomment-1896960030 VOTE+1 > Pick.any should be any_() > - > > Key: TINKERPOP-3027 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3027 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Documentation shows {{any_()}} in the "Differences" section of the python > docs but it doesn't appear to be implemented. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3027) Pick.any should be any_()
[ https://issues.apache.org/jira/browse/TINKERPOP-3027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17807897#comment-17807897 ] ASF GitHub Bot commented on TINKERPOP-3027: --- Cole-Greer commented on PR #2433: URL: https://github.com/apache/tinkerpop/pull/2433#issuecomment-1896773202 Thanks Ryan, VOTE +1 > Pick.any should be any_() > - > > Key: TINKERPOP-3027 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3027 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Documentation shows {{any_()}} in the "Differences" section of the python > docs but it doesn't appear to be implemented. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3027) Pick.any should be any_()
[ https://issues.apache.org/jira/browse/TINKERPOP-3027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17807462#comment-17807462 ] ASF GitHub Bot commented on TINKERPOP-3027: --- kenhuuu commented on PR #2433: URL: https://github.com/apache/tinkerpop/pull/2433#issuecomment-1894583332 VOTE +1. Even though this is technically a breaking change, I'd argue it's just a bug fix since the documentation makes it sound like it should have been any_. > Pick.any should be any_() > - > > Key: TINKERPOP-3027 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3027 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.6.6 >Reporter: Stephen Mallette >Priority: Critical > > Documentation shows {{any_()}} in the "Differences" section of the python > docs but it doesn't appear to be implemented. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3029) Gremlin.Net: Traversal enumeration fails on .NET 8
[ https://issues.apache.org/jira/browse/TINKERPOP-3029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17806762#comment-17806762 ] ASF GitHub Bot commented on TINKERPOP-3029: --- FlorianHockmann merged PR #2424: URL: https://github.com/apache/tinkerpop/pull/2424 > Gremlin.Net: Traversal enumeration fails on .NET 8 > -- > > Key: TINKERPOP-3029 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3029 > Project: TinkerPop > Issue Type: Bug > Components: dotnet >Affects Versions: 3.5.8, 3.6.6, 3.7.1 >Reporter: Florian Hockmann >Assignee: Florian Hockmann >Priority: Critical > > This has been reported by Eric Sites on the dev mailing list: > [https://lists.apache.org/thread/snztwgk3s18h83mx8ql455hmx6ncl2r4] > > 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.Current}} behavior. > Here is an issue about this filed in dotnet runtime: > [https://github.com/dotnet/runtime/issues/85243] > New bad code: > {code:java} > var enumerator = saves.GetEnumerator(); > while (enumerator.Current == null) // <- Throws exception now > { >if (!enumerator.MoveNext()) > return list; > } > {code} > Should be changed to something like this: > {code:java} > while (enumerator.MoveNext()) > { > var item = enumerator.Current; > } > {code} > 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] > {code:java} > private object? GetCurrent() > { > // Use dynamic to object to prevent runtime dynamic conversion evaluation > return TraverserEnumerator.Current?.Object; > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-3025) l_trim() and r_trim() missing in python
[ https://issues.apache.org/jira/browse/TINKERPOP-3025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17805838#comment-17805838 ] ASF GitHub Bot commented on TINKERPOP-3025: --- Cole-Greer merged PR #2432: URL: https://github.com/apache/tinkerpop/pull/2432 > l_trim() and r_trim() missing in python > --- > > Key: TINKERPOP-3025 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3025 > Project: TinkerPop > Issue Type: Bug > Components: python >Affects Versions: 3.7.1 >Reporter: Stephen Mallette >Priority: Critical > > The steps are present but only in the camel case form and not the proper > pythonic snake case form. Check for other missing snake case options. > Deprecate the old forms. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (TINKERPOP-2872) Inconsistency in comparing Elements in JavaScript tests
[ https://issues.apache.org/jira/browse/TINKERPOP-2872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17805839#comment-17805839 ] ASF GitHub Bot commented on TINKERPOP-2872: --- Cole-Greer merged PR #2422: URL: https://github.com/apache/tinkerpop/pull/2422 > Inconsistency in comparing Elements in JavaScript tests > --- > > Key: TINKERPOP-2872 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2872 > Project: TinkerPop > Issue Type: Improvement > Components: javascript >Affects Versions: 3.7.0 >Reporter: Valentyn Kahamlyk >Priority: Major > > In most GLV's we consider Elements the same when they have the same ID. > In JavaScript tests used [member wise > comparison|https://github.com/apache/tinkerpop/blob/master/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js#L176] > Make it work like the others GLV's, just compare ID. -- This message was sent by Atlassian Jira (v8.20.10#820010)