xiazcy commented on code in PR #1700:
URL: https://github.com/apache/tinkerpop/pull/1700#discussion_r903919770


##########
gremlin-go/driver/connection_test.go:
##########
@@ -1121,4 +1121,26 @@ func TestConnection(t *testing.T) {
                // This routine.
                assert.Equal(t, startCount, runtime.NumGoroutine())
        })
+
+       t.Run("Test per-request arguments", func(t *testing.T) {
+               skipTestsIfNotEnabled(t, integrationTestSuiteName, 
testNoAuthEnable)
+
+               g := getTestGraph(t, testNoAuthUrl, testNoAuthAuthInfo, 
testNoAuthTlsConfig)
+               defer g.remoteConnection.Close()
+
+               _, err := g.With("evaluationTimeout", 
10).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", "gremlin-groovy"}).Next()
+               assert.NotNil(t, err)
+
+               _, err = g.With("evaluationTimeout", 
10000).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Next()
+               assert.Nil(t, err)
+
+               _, err = g.With("evaluationTimeout", 
10000).With("evaluationTimeout", 
10).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", "gremlin-groovy"}).Next()
+               assert.NotNil(t, err)
+
+               _, err = 
g.WithStrategies(OptionsStrategy(map[string]interface{}{"evaluationTimeout": 
10})).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Next()
+               assert.NotNil(t, err)
+
+               _, err = 
g.WithStrategies(OptionsStrategy(map[string]interface{}{"evaluationTimeout": 
10000})).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Next()
+               assert.Nil(t, err)
+       })

Review Comment:
   Thanks @jroimartin! This is interesting. The UnifiedChannelizer is need 
because we need the HTTP endpoint to perform the container wait-for check in 
docker compose, to make sure server with neo4j transactions is up before 
running the integration tests. So we may need to stick with the current 
configuration, although this is probably an issue since it doesn't error on the 
default web-socket. 
   
   Stephen @spmallette would you have any quick thoughts regarding this 
floating race condition in UnifiedChannelizer? We could dig into this more and 
open a JIRA ticket for it. 
   
   In the meanwhile, I think we should get this PR moving forward. And 
unfortunately that may mean we submit the requests synchronously and wait on 
the err channel of each one, instead of in parallel. 
   ```
   err1 := g.With("evaluationTimeout", 
10).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Iterate()
   assert.NotNil(t, <-err1)
   
   err2 := g.With("evaluationTimeout", 
10000).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Iterate()
   assert.Nil(t, <-err2)
   
   err3 := g.With("evaluationTimeout", 10000).With("evaluationTimeout", 
10).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Iterate()
   assert.NotNil(t, <-err3)
   
   err4 := 
g.WithStrategies(OptionsStrategy(map[string]interface{}{"evaluationTimeout": 
10})).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Iterate()
   assert.NotNil(t, <-err4)
   
   err5 := 
g.WithStrategies(OptionsStrategy(map[string]interface{}{"evaluationTimeout": 
10000})).Inject(1).SideEffect(&Lambda{"Thread.sleep(5000)", 
"gremlin-groovy"}).Iterate()
   assert.Nil(t, <-err5)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to