Re: [DISCUSS] TinkerPop Golang Driver (coming soon!)

2022-04-13 Thread Lyndon Bauto
Hi all,

As you are likely all aware, we are progressing quickly towards the end of
the Gremlin Go driver.

We decided to combine Milestone 6 and 7 since almost every single
'advanced' driver feature and configuration option was pulled into a
previous milestone, making that milestone a near no-op. The final schedule
for the Gremlin Go driver is below:

- Milestone 1 - Basic Connectivity with String Traversals
- Milestone 2 - ResultSet and Programmatic Traversals
- Milestone 3 - TinkerPop Build Infrastructure Integration
- Milestone 4 - GA Ready
- Milestone 5 - Sessions, Strategies, Translator, Remote Transactions
- Milestone 6 - Advanced Driver Features, Configuration Options,
Performance, and Documentation

With that in mind, I am happy to announce we have a pull request open for
Milestone 5 now!

Link: https://github.com/apache/tinkerpop/pull/1619

Any additional eyes on the pull request are appreciated.

Cheers!
-- 
*Lyndon Bauto*
Team Lead
Bit Quill Technologies Inc.
lynd...@bitquilltech.com
https://www.bitquilltech.com


[ANNOUNCE] Gremlin Go is now Available in Go Package Manager

2022-04-13 Thread Lyndon Bauto
NOTE: This is not for production use cases. This is a preview release.

I am happy to announce that we now have an Apache TinkerPop Gremlin Go
driver release available in the Go package manager.

Please see
https://pkg.go.dev/github.com/apache/tinkerpop/gremlin-go/v3/driver?tab=versions
for the versions available.

You can review the documentation for the v3 driver here:
https://pkg.go.dev/github.com/apache/tinkerpop/gremlin-go/v3/driver

If you have a go project, you can grab a specific release version with go
get github.com/apache/tinkerpop/gremlin-go/v3@v3.6.1-rc2 or go get
github.com/apache/tinkerpop/gremlin-go/v3@v3.5.4-rc2.
-- 
*Lyndon Bauto*
Team Lead
Bit Quill Technologies Inc.
lynd...@bitquilltech.com
https://www.bitquilltech.com


[jira] [Updated] (TINKERPOP-2735) IllegalStateException: Unrecognized content of the 'gremlin' argument... on connection close

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette updated TINKERPOP-2735:

Affects Version/s: 3.5.3

> IllegalStateException: Unrecognized content of the 'gremlin' argument... on 
> connection close
> 
>
> Key: TINKERPOP-2735
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2735
> Project: TinkerPop
>  Issue Type: Bug
>  Components: driver, server
>Affects Versions: 3.5.3
>Reporter: Rusi Popov
>Priority: Minor
>
> TinkerPop 3.5.2 Java driver
> Closing a multi-task session reports a warning and the exceptions:
> {code}
> WARNING: IllegalStateException: Unrecognized content of the 'gremlin' 
> argument in the request
> org.apache.tinkerpop.gremlin.server.handler.SessionException: 
> IllegalStateException: Unrecognized content of the 'gremlin' argument in the 
> request
>   at 
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.handleException(AbstractSession.java:360)
>   at 
> org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:178)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.IllegalStateException: Unrecognized content of the 
> 'gremlin' argument in the request
>   at 
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.getMetricsTimer(AbstractSession.java:844)
>   at 
> org.apache.tinkerpop.gremlin.server.handler.AbstractSession.process(AbstractSession.java:259)
>   at 
> org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:155)
>   ... 5 more
> Apr 13, 2022 8:14:15 AM org.apache.tinkerpop.gremlin.driver.Connection 
> shutdown
> WARNING: Encountered an error trying to close connection on 
> 3cc856a1-0f91-49f4-9863-9279272fd079 - force closing - server will close 
> session on shutdown or expiration.
> java.util.concurrent.ExecutionException: 
> org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Unrecognized 
> content of the 'gremlin' argument in the request
>   at 
> java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
>   at 
> java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
>   at 
> org.apache.tinkerpop.gremlin.driver.Connection.shutdown(Connection.java:319)
>   at 
> org.apache.tinkerpop.gremlin.driver.Connection.closeAsync(Connection.java:195)
>   at 
> org.apache.tinkerpop.gremlin.driver.ConnectionPool.killAvailableConnections(ConnectionPool.java:272)
>   at 
> org.apache.tinkerpop.gremlin.driver.ConnectionPool.closeAsync(ConnectionPool.java:256)
>   at 
> org.apache.tinkerpop.gremlin.driver.Client$SessionedClient.closeAsync(Client.java:858)
>   at org.apache.tinkerpop.gremlin.driver.Client.close(Client.java:409)
>   at 
> net.mdatools.ariadne.integration.tinkerpop.AriadneClient.close(AriadneClient.java:145)
>   at 
> net.mdatools.ariadne.application.demo.server.ClientServerTraversalTest.tearDown(ClientServerTraversalTest.java:147)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
>   at 
> org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
>   at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
>   at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
>  

[jira] [Assigned] (TINKERPOP-2456) Add missing tests for queries

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2456:
---

Assignee: (was: Stephen Mallette)

> Add missing tests for queries
> -
>
> Key: TINKERPOP-2456
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2456
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: test-suite
>Affects Versions: 3.4.8
>Reporter: Divij Vaidya
>Priority: Minor
>
> Some queries are not covered by our test suite. Here are a couple of 
> examples. Note that all examples operate on Modern graph.
> 1. g.V().properties("age").order().by(T.id)
> 2. g.V().aggregate("a").has("person","age", 
> P.gte(8)).cap("a").unfold().valueMap()
> 3. 
> g.V().hasLabel("person").as("foo").where(__.outE("knows").count().is(P.gte(0))).select("foo")
> 4. g.V().properties().dedup()
> 5. g.V().project("id", 
> "project").by(T.id).by(__.project("label").by(out().id().fold()).fold()
> 6. g.V().limit(3).addV("testLabel") .aggregate("a1").by(T.label) 
> .aggregate("a2").by(T.label) .cap("a1", "a2");
> 7. g.V().as("a").path().by(T.id).as("path").project("a").by(identity())
> 8. g.V().group().by(label).count()



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (TINKERPOP-2491) Improve consistency of the output of range() oriented steps

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2491:
---

Assignee: (was: Stephen Mallette)

> Improve consistency of the output of range() oriented steps
> ---
>
> Key: TINKERPOP-2491
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2491
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.4.9
>Reporter: Stephen Mallette
>Priority: Major
>  Labels: breaking
>
> As pointed out here:
> https://groups.google.com/g/gremlin-users/c/OvxKvvM8rXs/m/slnv6cWpBQAJ
> there is an automatic {{List}} unfold with {{limit(local, 1)}} as in:
> {code}
> g.inject([1, 2, 3], [4]).limit(local, 3).toList() // [[1, 2, 3], [4]]
> g.inject([1, 2, 3], [4]).limit(local, 2).toList() // [[1, 2], [4]]
> g.inject([1, 2, 3], [4]).limit(local, 1).toList() // [1, 4] ??? - Expected 
> [[1], [4]]
> g.inject([1, 2, 3], [4]).limit(local, 0).toList() // [[], []] oh come on
> {code}
> In addition, `range()` and `tail()` are similarly affected:
> {code}
> gremlin> g.inject([1, 2, 3], [4]).tail(local, 1).toList()
> ==>3
> ==>4
> gremlin> g.inject([1, 2, 3], [4]).range(local, 0, 1).toList()
> ==>1
> ==>4
> {code}
> Changing this is a fairly imposing breaking change in behavior. We could 
> mitigate that with a strategy to support the old functionality if folks want 
> to have that:
> {code}
> g.withStrategy(OldWayStrategy).inject([1, 2, 3], [4]).limit(local, 1)
> {code}
> would transform to:
> {code}
> g.inject([1, 2, 3], [4]).limit(local, 1).unfold()
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (TINKERPOP-2156) GraphSON BigInteger and BigDecimal should use strings

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2156:
---

Assignee: (was: Stephen Mallette)

> GraphSON BigInteger and BigDecimal should use strings
> -
>
> Key: TINKERPOP-2156
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2156
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: io
>Affects Versions: 3.3.5
>Reporter: Stephen Mallette
>Priority: Major
>  Labels: breaking
>
> Both {{BigDecimal}} and {{BigInteger}} serialize to JSON numeric as follows:
> {code}
> {
>   "@type" : "gx:BigDecimal",
>   "@value" : 123456789987654321123456789987654321
> }
> {code}
> but should probably serialize to a string value instead. Jackson 2.10 should 
> support that option and make it easier for other language variants to handle. 
> Interestingly Jackson 2.9.8 which we are currently on seems to support the 
> consumption of either number or string so it seems likely that this can be 
> done without a significant breaking change. From the point we implement this 
> we can simply say that going forward we will prefer support of a string 
> value. 
> As this change would still be breaking to those who consume raw graphson or 
> something, the "breaking" label is added to this ticket.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (TINKERPOP-2334) Add format() step

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2334:
---

Assignee: (was: Stephen Mallette)

> Add format() step
> -
>
> Key: TINKERPOP-2334
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2334
> Project: TinkerPop
>  Issue Type: Improvement
>  Components: process
>Affects Versions: 3.4.4
>Reporter: Stephen Mallette
>Priority: Major
>
> Provide for a {{format()}} step which will handle result formatting to string 
> values. This change will help resolve the need for string concatenation 
> functions while providing a lot of flexibility to how results can be formed:
> {code}
> gremlin> g.V().hasLabel('person').format("%{n} is %{a} years old.").by('n',
> 'name').by('a', 'age')
> ==>marko is 29 years old.
> ==>vadas is 27 years old.
> ==>josh is 32 years old.
> ==>peter is 35 years old.
> gremlin> g.V().hasLabel('person').format("%{name} is %{age} years old.")
> ==>marko is 29 years old.
> ==>vadas is 27 years old.
> ==>josh is 32 years old.
> ==>peter is 35 years old.
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (TINKERPOP-2490) RangeGlobalStep touches next traverser when high limit is already hit

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2490:
---

Assignee: (was: Stephen Mallette)

> RangeGlobalStep touches next traverser when high limit is already hit
> -
>
> Key: TINKERPOP-2490
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2490
> Project: TinkerPop
>  Issue Type: Bug
>  Components: process
>Affects Versions: 3.4.8
>Reporter: Guo Junshi
>Priority: Major
>
> In FilterStep, the processNextStart() method will first retrieve next 
> traverser and then apply filtering logic. But for RangleGlobalStep, if high 
> limit is already hit, there will be no need to get next traverser.
> {code:java}
> @Override
> protected Traverser.Admin processNextStart() {
> while (true) {
> final Traverser.Admin traverser = this.starts.next();
> if (this.filter(traverser))
> return traverser;
> }
> }
> {code}
> An example would be limit step: g.V().limit(1). This query will touch 2 
> vertices although only 1 vertex will be returned.
> This extra data loading will cause performance defects if DB data loading is 
> involved. It is not a functionality bug, but for better performance, we'd 
> better check high range limit first before touching next traversal.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (TINKERPOP-2132) Authentication when using multiple threads fails

2022-04-13 Thread Stephen Mallette (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reassigned TINKERPOP-2132:
---

Assignee: (was: Stephen Mallette)

> Authentication when using multiple threads fails
> 
>
> Key: TINKERPOP-2132
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2132
> Project: TinkerPop
>  Issue Type: Bug
>  Components: driver
>Affects Versions: 3.3.2
>Reporter: kaiyangzhang
>Priority: Major
>
> *Scenes:*
>    1. Gremlin Server  Kerberos Authentication
>    2. Multithreading using the same client
>  
> {code:java}
>        DriverRemoteConnection connection = 
> DriverRemoteConnection.using(cluster,"graphbase");
>         GraphTraversalSource g = graph.traversal().withRemote(connection);
>       Thread demo1 = new Thread(new ThreadDemo1(g));
>        Thread demo2 = new Thread(new ThreadDemo1(g));
>        Thread demo3 = new Thread(new ThreadDemo1(g));
>        Thread demo4 = new Thread(new ThreadDemo1(g));
>        Thread demo5 = new Thread(new ThreadDemo1(g));
>       Thread demo6 = new Thread(new ThreadDemo1(g));
>        Thread demo7 = new Thread(new ThreadDemo1(g)); 
>        Thread demo8 = new Thread(new ThreadDemo1(g));
>        Thread demo9 = new Thread(new ThreadDemo1(g));
>        Thread demo10 = new Thread(new ThreadDemo1(g));
> {code}
>  
> *ERROR INFO*
> {code:java}
> Exception in thread "Thread-4" java.util.concurrent.CompletionException: 
> org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Failed to 
> authenticate
>  at 
> java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)
>  at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet.one(ResultSet.java:107)
>  at 
> org.apache.tinkerpop.gremlin.driver.ResultSet$1.hasNext(ResultSet.java:159)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:166)
>  at org.apache.tinkerpop.gremlin.driver.ResultSet$1.next(ResultSet.java:153)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:142)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal$TraverserIterator.next(DriverRemoteTraversal.java:127)
>  at 
> org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteTraversal.nextTraverser(DriverRemoteTraversal.java:108)
>  at 
> org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep.processNextStart(RemoteStep.java:80)
>  at 
> org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
>  at 
> org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:192)
>  at com.huawei.graphbase.gremlin.ThreadDemo1.println(ThreadDemo1.java:48)
>  at com.huawei.graphbase.gremlin.ThreadDemo1.run(ThreadDemo1.java:32)
>  at java.lang.Thread.run(Thread.java:748)
>  Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException: 
> Failed to authenticate
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:246)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinResponseHandler.channelRead0(Handler.java:197)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:123)
>  at 
> org.apache.tinkerpop.gremlin.driver.Handler$GremlinSaslAuthenticationHandler.channelRead0(Handler.java:67)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
>  at 
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
>  at 
> 

Re: [DISCUSS] Draft ASF Board Report - April 2022

2022-04-13 Thread Marko Rodriguez
Thanks Florian.

It sucks, man. Really sucks. The Apache Board meddled in TinkerPop so as to 
appease some voracious mob of anonymous Twitter fools. I contend that all would 
have been averted had someone stood up and simply said:

"Comon guys. Yes, Marko is an odd fella with a twisted sense of humor, but you 
are not going to use that against him (and thus, our project) to satiate 
whatever you think you are going to gain by ruining his relationship with 
TinkerPop. I suggest you drop this and move on with your life.”

They are grown adults succumbing to childish “racist Nazi”-talk. Either they 
lack wisdom or they bask in the easy power they can wield by adopting the 
psychology of our sad, depressed, dopamine addicted adolescents. In your lives, 
I urge you to standup to this “cancel culture” scourge. Companies are being 
drained of talent, people fear their colleagues, disillusionment and isolation 
are the symptoms of those afraid to speak their mind. Your mind is all you have 
and every thought that passes through it is valid, true, for it _exists_ and 
that is all the reason you need to say: “I think, therefore I am right."

Take care y’all,
Marko.



> On Apr 13, 2022, at 1:57 AM, Florian Hockmann  
> wrote:
> 
> Here is the final report I submitted to the board. I changed the structure a
> bit as I've used the ASF Board Report Wizard for this which already suggests
> a structure for board reports. This tool by the way also mentioned that we
> should not simply include statistics like activity on mailing lists, but
> only interpretations of those stats ("the story behind the metrics") if we
> want to talk about them.
> 
> 
> 
> Stephen also informed me about gremlin-rs which has a very basic version of
> a GLV for Rust and I mentioned the Discord events we had as they were also
> in the last quarter.
> 
> 
> 
> --
> 
> 
> 
> ## Description:
> 
> Apache TinkerPop is a graph computing framework for both graph databases
> 
> (OLTP) and graph analytic systems (OLAP).
> 
> 
> 
> 
> 
> ## Issues:
> 
> There are no issues requiring board attention.
> 
> 
> 
> ## Membership Data:
> 
> Community changes, past quarter:
> 
> - No new PMC members. Last addition was Joshua Shinavier on 2021-06-01.
> 
> - Mike Personick was added as committer on 2022-03-17. He has already
> 
> contributed great improvements around core aspects of Gremlin.
> 
> 
> 
> Stephen Mallette has decided to leave the PMC to focus on other aspects of
> his
> 
> career. His contributions as a PMC member will be missed.
> 
> 
> 
> ## Project Activity:
> 
> TinkerPop just released 3.5.3 and 3.6.0. Version 3.5.3 is mostly a
> maintenance
> 
> release. 3.6.0 represents a major release with breaking changes and a
> variety
> 
> of new features [1], including support for regular expressions directly in
> 
> Gremlin and better support for commonly used upsert-like functionality. The
> 
> default logging implementation in the distributions of Gremlin Server and
> 
> Gremlin Console was also changed in 3.6.0 from log4j 1.2.x to logback due to
> 
> the vulnerability CVE-2019-17571 [2].
> 
> 
> 
> These releases are accompanied by the first pre-release versions of
> 
> gremlin-go, making Gremlin natively available in Go which has been the
> mostly
> 
> requested programming language for which we did not offer a Gremlin Language
> 
> Variant (GLV)[3] yet by users over the last years. Notable about this new
> GLV
> 
> is also that it has not been developed by a single contributor but by a
> group
> 
> of contributors who collaborated on this, an effort that was mostly led by
> 
> committer Lyndon Bauto.
> 
> 
> 
> 
> 
> ### Releases:
> 
> 3.5.3 was released on 2022-04-04.
> 
> 3.6.0 was released on 2022-04-04.
> 
> 3.4.13 was released on 2022-01-10.
> 
> 3.5.2 was released on 2022-04-04.
> 
> 
> 
> ## Community Health:
> 
> As already mentioned in the last board report, we are seeing growing
> activity
> 
> on our Discord server. We now had the first live events on Discord in the
> last
> 
> quarter where Arthur Bigeard, developer of the Gremlin IDE G.V() [4],
> performed
> 
> a live demonstration of G.V().
> 
> 
> 
> We've learned that gremlin-rs [5], which is a Gremlin Language Variant for
> the
> 
> Rust programming language, recently added support for some advanced
> 
> capabilities normally reserved for TinkerPop's official drivers. It is
> 
> interesting to note this growth in the wider TinkerPop community, as Rust,
> 
> after Go, is probably the next most requested programming language for
> 
> official support.
> 
> 
> 
> ## Links
> 
> [1] https://tinkerpop.apache.org/docs/3.6.0/upgrade/#_tinkerpop_3_6_0_2
> 
> [2] https://nvd.nist.gov/vuln/detail/CVE-2019-17571
> 
> [3]
> https://tinkerpop.apache.org/docs/3.5.2/reference/#gremlin-drivers-variants
> 
> [4] https://gdotv.com/
> 
> [5] https://github.com/wolf4ood/gremlin-rs
> 
> 
> 
> Von: Florian Hockmann  
> Gesendet: 

AW: [DISCUSS] Draft ASF Board Report - April 2022

2022-04-13 Thread Florian Hockmann
Here is the final report I submitted to the board. I changed the structure a
bit as I've used the ASF Board Report Wizard for this which already suggests
a structure for board reports. This tool by the way also mentioned that we
should not simply include statistics like activity on mailing lists, but
only interpretations of those stats ("the story behind the metrics") if we
want to talk about them.

 

Stephen also informed me about gremlin-rs which has a very basic version of
a GLV for Rust and I mentioned the Discord events we had as they were also
in the last quarter.

 

--

 

## Description:

Apache TinkerPop is a graph computing framework for both graph databases

(OLTP) and graph analytic systems (OLAP).

 

 

## Issues:

There are no issues requiring board attention.

 

## Membership Data:

Community changes, past quarter:

- No new PMC members. Last addition was Joshua Shinavier on 2021-06-01.

- Mike Personick was added as committer on 2022-03-17. He has already

contributed great improvements around core aspects of Gremlin.

 

Stephen Mallette has decided to leave the PMC to focus on other aspects of
his

career. His contributions as a PMC member will be missed.

 

## Project Activity:

TinkerPop just released 3.5.3 and 3.6.0. Version 3.5.3 is mostly a
maintenance

release. 3.6.0 represents a major release with breaking changes and a
variety

of new features [1], including support for regular expressions directly in

Gremlin and better support for commonly used upsert-like functionality. The

default logging implementation in the distributions of Gremlin Server and

Gremlin Console was also changed in 3.6.0 from log4j 1.2.x to logback due to

the vulnerability CVE-2019-17571 [2].

 

These releases are accompanied by the first pre-release versions of

gremlin-go, making Gremlin natively available in Go which has been the
mostly

requested programming language for which we did not offer a Gremlin Language

Variant (GLV)[3] yet by users over the last years. Notable about this new
GLV

is also that it has not been developed by a single contributor but by a
group

of contributors who collaborated on this, an effort that was mostly led by

committer Lyndon Bauto.

 

 

### Releases:

3.5.3 was released on 2022-04-04.

3.6.0 was released on 2022-04-04.

3.4.13 was released on 2022-01-10.

3.5.2 was released on 2022-04-04.

 

## Community Health:

As already mentioned in the last board report, we are seeing growing
activity

on our Discord server. We now had the first live events on Discord in the
last

quarter where Arthur Bigeard, developer of the Gremlin IDE G.V() [4],
performed

a live demonstration of G.V().

 

We've learned that gremlin-rs [5], which is a Gremlin Language Variant for
the

Rust programming language, recently added support for some advanced

capabilities normally reserved for TinkerPop's official drivers. It is

interesting to note this growth in the wider TinkerPop community, as Rust,

after Go, is probably the next most requested programming language for

official support.

 

## Links

[1] https://tinkerpop.apache.org/docs/3.6.0/upgrade/#_tinkerpop_3_6_0_2

[2] https://nvd.nist.gov/vuln/detail/CVE-2019-17571

[3]
https://tinkerpop.apache.org/docs/3.5.2/reference/#gremlin-drivers-variants

[4] https://gdotv.com/

[5] https://github.com/wolf4ood/gremlin-rs

 

Von: Florian Hockmann  
Gesendet: Mittwoch, 6. April 2022 11:53
An: 'dev@tinkerpop.apache.org' 
Betreff: [DISCUSS] Draft ASF Board Report - April 2022

 

Here is the attached draft of our board report for this quarter - please let
me know if there is anything to add or edit.

 

--

 

## Description:

Apache TinkerPop is a graph computing framework for both graph databases

(OLTP) and graph analytic systems (OLAP).

 

## Activity:

TinkerPop is currently in the process of releasing 3.5.3 and 3.6.0. Version
3.5.3 is mostly a maintenance release. 3.6.0 represents a major release with
breaking changes and a variety of new features, including support for
regular expressions directly in Gremlin and better support for commonly used
upsert-like functionality.

The default logging implementation in the distributions of Gremlin Server
and Gremlin Console will also be changed in 3.6.0 from log4j 1.2.x to
logback due to the vulnerability CVE-2019-17571 [1].

 

These releases will be accompanied by the first pre-release versions of
gremlin-go, making Gremlin natively available in Go which has been the
mostly requested programming language for which we did not offer a Gremlin
Language Variant (GLV)[2] yet by users over the last years.

Notable about this new GLV is also that it has not been developed by a
single contributor but by a group of contributors who collaborated on this,
an effort that was mostly led by committer Lyndon Bauto.

 

We have welcomed Mike Personick as a new 

[jira] [Updated] (TINKERPOP-2735) IllegalStateException: Unrecognized content of the 'gremlin' argument... on connection close

2022-04-13 Thread Rusi Popov (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rusi Popov updated TINKERPOP-2735:
--
Description: 
TinkerPop 3.6.2 Java driver

Closing a multi-task session reports a warning and the exceptions:
{code}
WARNING: IllegalStateException: Unrecognized content of the 'gremlin' argument 
in the request
org.apache.tinkerpop.gremlin.server.handler.SessionException: 
IllegalStateException: Unrecognized content of the 'gremlin' argument in the 
request
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.handleException(AbstractSession.java:360)
at 
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:178)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: Unrecognized content of the 
'gremlin' argument in the request
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.getMetricsTimer(AbstractSession.java:844)
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.process(AbstractSession.java:259)
at 
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:155)
... 5 more

Apr 13, 2022 8:14:15 AM org.apache.tinkerpop.gremlin.driver.Connection shutdown
WARNING: Encountered an error trying to close connection on 
3cc856a1-0f91-49f4-9863-9279272fd079 - force closing - server will close 
session on shutdown or expiration.
java.util.concurrent.ExecutionException: 
org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Unrecognized 
content of the 'gremlin' argument in the request
at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
at 
org.apache.tinkerpop.gremlin.driver.Connection.shutdown(Connection.java:319)
at 
org.apache.tinkerpop.gremlin.driver.Connection.closeAsync(Connection.java:195)
at 
org.apache.tinkerpop.gremlin.driver.ConnectionPool.killAvailableConnections(ConnectionPool.java:272)
at 
org.apache.tinkerpop.gremlin.driver.ConnectionPool.closeAsync(ConnectionPool.java:256)
at 
org.apache.tinkerpop.gremlin.driver.Client$SessionedClient.closeAsync(Client.java:858)
at org.apache.tinkerpop.gremlin.driver.Client.close(Client.java:409)
at 
net.mdatools.ariadne.integration.tinkerpop.AriadneClient.close(AriadneClient.java:145)
at 
net.mdatools.ariadne.application.demo.server.ClientServerTraversalTest.tearDown(ClientServerTraversalTest.java:147)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at 
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at 

[jira] [Updated] (TINKERPOP-2735) IllegalStateException: Unrecognized content of the 'gremlin' argument... on connection close

2022-04-13 Thread Rusi Popov (Jira)


 [ 
https://issues.apache.org/jira/browse/TINKERPOP-2735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rusi Popov updated TINKERPOP-2735:
--
Description: 
TinkerPop 3.5.2 Java driver

Closing a multi-task session reports a warning and the exceptions:
{code}
WARNING: IllegalStateException: Unrecognized content of the 'gremlin' argument 
in the request
org.apache.tinkerpop.gremlin.server.handler.SessionException: 
IllegalStateException: Unrecognized content of the 'gremlin' argument in the 
request
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.handleException(AbstractSession.java:360)
at 
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:178)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: Unrecognized content of the 
'gremlin' argument in the request
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.getMetricsTimer(AbstractSession.java:844)
at 
org.apache.tinkerpop.gremlin.server.handler.AbstractSession.process(AbstractSession.java:259)
at 
org.apache.tinkerpop.gremlin.server.handler.MultiTaskSession.run(MultiTaskSession.java:155)
... 5 more

Apr 13, 2022 8:14:15 AM org.apache.tinkerpop.gremlin.driver.Connection shutdown
WARNING: Encountered an error trying to close connection on 
3cc856a1-0f91-49f4-9863-9279272fd079 - force closing - server will close 
session on shutdown or expiration.
java.util.concurrent.ExecutionException: 
org.apache.tinkerpop.gremlin.driver.exception.ResponseException: Unrecognized 
content of the 'gremlin' argument in the request
at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
at 
org.apache.tinkerpop.gremlin.driver.Connection.shutdown(Connection.java:319)
at 
org.apache.tinkerpop.gremlin.driver.Connection.closeAsync(Connection.java:195)
at 
org.apache.tinkerpop.gremlin.driver.ConnectionPool.killAvailableConnections(ConnectionPool.java:272)
at 
org.apache.tinkerpop.gremlin.driver.ConnectionPool.closeAsync(ConnectionPool.java:256)
at 
org.apache.tinkerpop.gremlin.driver.Client$SessionedClient.closeAsync(Client.java:858)
at org.apache.tinkerpop.gremlin.driver.Client.close(Client.java:409)
at 
net.mdatools.ariadne.integration.tinkerpop.AriadneClient.close(AriadneClient.java:145)
at 
net.mdatools.ariadne.application.demo.server.ClientServerTraversalTest.tearDown(ClientServerTraversalTest.java:147)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at 
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at