databendlabs / databend-jdbc

jdbc implementation for databend cloud
Apache License 2.0
10 stars 10 forks source link

bug: geometry test flaky on cluster mode #254

Open ZhiHanZ opened 1 month ago

ZhiHanZ commented 1 month ago

testSelectGeometry(com.databend.jdbc.TestBasicDriver) Time elapsed: 0.141 sec <<< FAILURE! java.lang.AssertionError: expected [null] but found [{"type": "Point", "coordinates": [-73.935242,40.73061]}] at org.testng.Assert.fail(Assert.java:94) at org.testng.Assert.failNotEquals(Assert.java:513) at org.testng.Assert.assertEqualsImpl(Assert.java:130) at org.testng.Assert.assertEquals(Assert.java:116) at org.testng.Assert.assertEquals(Assert.java:179) at com.databend.jdbc.TestBasicDriver.testSelectGeometry(TestBasicDriver.java:347) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) at org.testng.internal.Invoker.invokeMethod(Invoker.java:645) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) at org.testng.TestRunner.privateRun(TestRunner.java:756) at org.testng.TestRunner.run(TestRunner.java:610) at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) at org.testng.SuiteRunner.run(SuiteRunner.java:289) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293) at org.testng.TestNG.runSuitesLocally(TestNG.java:1218) at org.testng.TestNG.runSuites(TestNG.java:1133) at org.testng.TestNG.run(TestNG.java:1104) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:132) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:224) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:113) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:146) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:286) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:240) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121) Results : Failed tests: TestBasicDriver.testSelectGeometry:347 expected [null] but found [{"type": "Point", "coordinates": [-73.935242,40.73061]}]

ZhiHanZ commented 1 month ago

cc @cdmikechen , currently seems the geometry type test flaky on query cluster mode with above are error messages, do you have any ideas?

FYI, we have currently skipped the test due to its instability, if you have some ideas to fix above issue, feel free to DM me or send us new pull requests!

cdmikechen commented 1 month ago

@ZhiHanZ It seems likely that after writing to the databend, the order of the query result rows will be random. Maybe we should add an order by id to make the read order execute correctly in the order of id=1, id=2.

I've been a little busy this week, maybe I'll add a pr later this week to try to solve this problem.