[jira] [Created] (DRILL-5902) Regression: Queries encounter random failure due to RPC connection timed out
Robert Hou created DRILL-5902: - Summary: Regression: Queries encounter random failure due to RPC connection timed out Key: DRILL-5902 URL: https://issues.apache.org/jira/browse/DRILL-5902 Project: Apache Drill Issue Type: Bug Components: Execution - RPC Affects Versions: 1.11.0 Reporter: Robert Hou Priority: Critical Multiple random failures (25) occurred with the latest Functional-Baseline-88.193 run. Here is a sample query: {noformat} -- Kitchen sink -- Use all supported functions select rank() over W, dense_rank()over W, percent_rank() over W, cume_dist() over W, avg(c_integer + c_integer) over W, sum(c_integer/100) over W, count(*)over W, min(c_integer) over W, max(c_integer) over W, row_number()over W from j7 where c_boolean is not null window W as (partition by c_bigint, c_date, c_time, c_boolean order by c_integer) {noformat} >From the logs: {noformat} 2017-10-23 04:14:36,536 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:1 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,537 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:5 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,537 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:9 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,537 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:13 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,537 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:17 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,538 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:21 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. 2017-10-23 04:14:36,538 [BitServer-7] WARN o.a.d.e.w.b.ControlMessageHandler - Dropping request for early fragment termination for path 261230e8-d03e-9ca9-91bf-c1039deecde2:1:25 -> 261230e8-d03e-9ca9-91bf-c1039deecde2:0:0 as path to executor unavailable. {noformat} {noformat} 2017-10-23 04:14:53,941 [UserServer-1] INFO o.a.drill.exec.rpc.user.UserServer - RPC connection /10.10.88.196:31010 <--> /10.10.88.193:38281 (user server) timed out. Timeout was set to 30 seconds. Closing connection. 2017-10-23 04:14:53,952 [UserServer-1] INFO o.a.d.e.w.fragment.FragmentExecutor - 261230f8-2698-15b2-952f-d4ade8d6b180:0:0: State change requested RUNNING --> FAILED 2017-10-23 04:14:53,952 [261230f8-2698-15b2-952f-d4ade8d6b180:frag:0:0] INFO o.a.d.e.w.fragment.FragmentExecutor - 261230f8-2698-15b2-952f-d4ade8d6b180:0:0: State change requested FAILED --> FINISHED 2017-10-23 04:14:53,956 [UserServer-1] WARN o.apache.drill.exec.rpc.RequestIdMap - Failure while attempting to fail rpc response. java.lang.IllegalArgumentException: Self-suppression not permitted at java.lang.Throwable.addSuppressed(Throwable.java:1043) ~[na:1.7.0_45] at org.apache.drill.common.DeferredException.addException(DeferredException.java:88) ~[drill-common-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.common.DeferredException.addThrowable(DeferredException.java:97) ~[drill-common-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.fail(FragmentExecutor.java:413) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.access$700(FragmentExecutor.java:55) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor$ExecutorStateImpl.fail(FragmentExecutor.java:427) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.ops.FragmentContext.fail(FragmentContext.java:213) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at
[GitHub] drill issue #949: DRILL-5795: Parquet Filter push down at rowgroup level
Github user cchang738 commented on the issue: https://github.com/apache/drill/pull/949 There is a plan verification failure due to plan change. The plan baseline needs to be changed after this PR is merged. Plan Verification Failures: /root/drillAutomation/mapr/framework/resources/Functional/int96/q28.q Query: explain plan for select voter_id, name from `hive1_parquet_part` where date_part('year', create_timestamp1)=2018 Expected and actual text plans are different. Expected: .*numFiles=2, usedMetadataFile=true.* Actual: 00-00Screen 00-01 Project(voter_id=[$0], name=[$1]) 00-02Project(voter_id=[$1], name=[$2]) 00-03 Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=/drill/testdata/subqueries/hive1_parquet_part/0_0_10.parquet], ReadEntryWithPath [path=/drill/testdata/subqueries/hive1_parquet_part/0_0_9.parquet]], selectionRoot=/drill/testdata/subqueries/hive1_parquet_part, numFiles=2, numRowGroups=2, usedMetadataFile=true, cacheFileRoot=/drill/testdata/subqueries/hive1_parquet_part, columns=[`create_timestamp1`, `voter_id`, `name`]]]) ---
[GitHub] drill issue #1007: MD-2888: Selecting a non-existing field from a MapR-DB JS...
Github user adityakishore commented on the issue: https://github.com/apache/drill/pull/1007 +1 ---
[jira] [Created] (DRILL-5901) Drill test framework can have successful run even if a random failure occurs
Robert Hou created DRILL-5901: - Summary: Drill test framework can have successful run even if a random failure occurs Key: DRILL-5901 URL: https://issues.apache.org/jira/browse/DRILL-5901 Project: Apache Drill Issue Type: Bug Components: Tools, Build & Test Affects Versions: 1.11.0 Reporter: Robert Hou Random Failures: /root/drillAutomation/framework-master/framework/resources/Advanced/tpch/tpch_sf1/original/parquet/query17.sql Query: SELECT SUM(L.L_EXTENDEDPRICE) / 7.0 AS AVG_YEARLY FROM lineitem L, part P WHERE P.P_PARTKEY = L.L_PARTKEY AND P.P_BRAND = 'BRAND#13' AND P.P_CONTAINER = 'JUMBO CAN' AND L.L_QUANTITY < ( SELECT 0.2 * AVG(L2.L_QUANTITY) FROM lineitem L2 WHERE L2.L_PARTKEY = P.P_PARTKEY ) Failed with exception java.sql.SQLException: SYSTEM ERROR: IllegalStateException: Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) Fragment 8:2 [Error Id: f21a2560-7259-4e13-88c2-9bac29e2930a on atsqa6c88.qa.lab:31010] (java.lang.IllegalStateException) Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) org.apache.drill.exec.memory.BaseAllocator.close():519 org.apache.drill.exec.ops.AbstractOperatorExecContext.close():86 org.apache.drill.exec.ops.OperatorContextImpl.close():108 org.apache.drill.exec.ops.FragmentContext.suppressingClose():435 org.apache.drill.exec.ops.FragmentContext.close():424 org.apache.drill.exec.work.fragment.FragmentExecutor.closeOutResources():324 org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup():155 org.apache.drill.exec.work.fragment.FragmentExecutor.run():267 org.apache.drill.common.SelfCleaningRunnable.run():38 java.util.concurrent.ThreadPoolExecutor.runWorker():1145 java.util.concurrent.ThreadPoolExecutor$Worker.run():615 java.lang.Thread.run():744 at org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:489) at org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:561) at org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1895) at org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:61) at oadd.org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:473) at org.apache.drill.jdbc.impl.DrillMetaImpl.prepareAndExecute(DrillMetaImpl.java:1100) at oadd.org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:477) at org.apache.drill.jdbc.impl.DrillConnectionImpl.prepareAndExecuteInternal(DrillConnectionImpl.java:181) at oadd.org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:110) at oadd.org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:130) at org.apache.drill.jdbc.impl.DrillStatementImpl.executeQuery(DrillStatementImpl.java:112) at org.apache.drill.test.framework.DrillTestJdbc.executeQuery(DrillTestJdbc.java:206) at org.apache.drill.test.framework.DrillTestJdbc.run(DrillTestJdbc.java:115) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: oadd.org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: IllegalStateException: Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) Fragment 8:2 [Error Id: f21a2560-7259-4e13-88c2-9bac29e2930a on atsqa6c88.qa.lab:31010] (java.lang.IllegalStateException) Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) org.apache.drill.exec.memory.BaseAllocator.close():519 org.apache.drill.exec.ops.AbstractOperatorExecContext.close():86 org.apache.drill.exec.ops.OperatorContextImpl.close():108 org.apache.drill.exec.ops.FragmentContext.suppressingClose():435 org.apache.drill.exec.ops.FragmentContext.close():424 org.apache.drill.exec.work.fragment.FragmentExecutor.closeOutResources():324 org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup():155 org.apache.drill.exec.work.fragment.FragmentExecutor.run():267 org.apache.drill.common.SelfCleaningRunnable.run():38
[jira] [Created] (DRILL-5900) Regression: TPCH query encounters random IllegalStateException: Memory was leaked by query
Robert Hou created DRILL-5900: - Summary: Regression: TPCH query encounters random IllegalStateException: Memory was leaked by query Key: DRILL-5900 URL: https://issues.apache.org/jira/browse/DRILL-5900 Project: Apache Drill Issue Type: Bug Components: Execution - Relational Operators Affects Versions: 1.11.0 Reporter: Robert Hou Assignee: Pritesh Maker Priority: Blocker This is a random failure. This test has passed before. TPCH query 6: {noformat} SELECT SUM(L.L_EXTENDEDPRICE) / 7.0 AS AVG_YEARLY FROM lineitem L, part P WHERE P.P_PARTKEY = L.L_PARTKEY AND P.P_BRAND = 'BRAND#13' AND P.P_CONTAINER = 'JUMBO CAN' AND L.L_QUANTITY < ( SELECT 0.2 * AVG(L2.L_QUANTITY) FROM lineitem L2 WHERE L2.L_PARTKEY = P.P_PARTKEY ) {noformat} Error is: {noformat} 2017-10-23 10:34:55,989 [2611d7c0-b0c9-a93e-c64d-a4ef8f4baf8f:frag:8:2] ERROR o.a.d.e.w.fragment.FragmentExecutor - SYSTEM ERROR: IllegalStateException: Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) Fragment 8:2 [Error Id: f21a2560-7259-4e13-88c2-9bac29e2930a on atsqa6c88.qa.lab:31010] org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: IllegalStateException: Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) Fragment 8:2 [Error Id: f21a2560-7259-4e13-88c2-9bac29e2930a on atsqa6c88.qa.lab:31010] at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:586) ~[drill-common-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.sendFinalState(FragmentExecutor.java:298) [drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup(FragmentExecutor.java:160) [drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:267) [drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) [drill-common-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51] at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51] Caused by: java.lang.IllegalStateException: Memory was leaked by query. Memory leaked: (2097152) Allocator(op:8:2:6:ParquetRowGroupScan) 100/0/7675904/100 (res/actual/peak/limit) at org.apache.drill.exec.memory.BaseAllocator.close(BaseAllocator.java:519) ~[drill-memory-base-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.ops.AbstractOperatorExecContext.close(AbstractOperatorExecContext.java:86) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.ops.OperatorContextImpl.close(OperatorContextImpl.java:108) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.ops.FragmentContext.suppressingClose(FragmentContext.java:435) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.ops.FragmentContext.close(FragmentContext.java:424) ~[drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.closeOutResources(FragmentExecutor.java:324) [drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] at org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup(FragmentExecutor.java:155) [drill-java-exec-1.12.0-SNAPSHOT.jar:1.12.0-SNAPSHOT] ... 5 common frames omitted 2017-10-23 10:34:55,989 [2611d7c0-b0c9-a93e-c64d-a4ef8f4baf8f:frag:6:0] INFO o.a.d.e.w.f.FragmentStatusReporter - 2611d7c0-b0c9-a93e-c64d-a4ef8f4baf8f:6:0: State to report: FINISHED {noformat} sys.version is: 1.12.0-SNAPSHOT b0c4e0486d6d4620b04a1bb8198e959d433b4840DRILL-5876: Use openssl profile to include netty-tcnative dependency with the platform specific classifier 20.10.2017 @ 16:52:35 PDT The previous version that ran clean is this commit: {noformat} 1.12.0-SNAPSHOT f1d1945b3772bb782039fd6811e34a7de66441c8DRILL-5582: C++ Client: [Threat Modeling] Drillbit may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Drillbit 19.10.2017 @ 17:13:05 PDT {noformat} But since the failure is random, the problem could have been introduced earlier. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] drill pull request #1007: MD-2888: Selecting a non-existing field from a Map...
GitHub user HanumathRao opened a pull request: https://github.com/apache/drill/pull/1007 MD-2888: Selecting a non-existing field from a MapR-DB JSON table fai⦠â¦ls with NPE @amansinha100 @adityakishore These changes are about having a special handling in case if the query contains no fields that are present in the maprdb json table. I have looked at other readers which are having this special handling. Here are the readers which do the special handling now. JSONRecordReader and ParquetRecordReader. With out these changes the upstream operator are getting not populated vectors and hence they throw nullpointer exception. You can merge this pull request into a Git repository by running: $ git pull https://github.com/HanumathRao/drill DRILL-5864 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/drill/pull/1007.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1007 commit f39aecaef95f1fe2737cc22f22d0468f1b0c1242 Author: Hanumath Rao MaduriDate: 2017-10-12T00:07:22Z MD-2888: Selecting a non-existing field from a MapR-DB JSON table fails with NPE ---
[GitHub] drill pull request #870: DRILL-5664: Enable security for Drill HiveStoragePl...
Github user sohami closed the pull request at: https://github.com/apache/drill/pull/870 ---
[GitHub] drill issue #870: DRILL-5664: Enable security for Drill HiveStoragePlugin ba...
Github user sohami commented on the issue: https://github.com/apache/drill/pull/870 closing this PR pending the revised version. ---
[jira] [Created] (DRILL-5899) No need to do isAscii check for simple pattern matcher
Padma Penumarthy created DRILL-5899: --- Summary: No need to do isAscii check for simple pattern matcher Key: DRILL-5899 URL: https://issues.apache.org/jira/browse/DRILL-5899 Project: Apache Drill Issue Type: Improvement Components: Execution - Flow Reporter: Padma Penumarthy Assignee: Padma Penumarthy Priority: Critical For simple pattern matcher, we do not have to do isAscii check. UTF-8 encoding ensures that no UTF-8 character is a prefix of any other valid character. So, for the 4 simple patterns we have i.e. startsWith, endsWith, contains and constant, we can get rid of this check. This will help improve performance. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (DRILL-5898) Query returns columns in the wrong order
Robert Hou created DRILL-5898: - Summary: Query returns columns in the wrong order Key: DRILL-5898 URL: https://issues.apache.org/jira/browse/DRILL-5898 Project: Apache Drill Issue Type: Bug Components: Execution - Relational Operators Affects Versions: 1.11.0 Reporter: Robert Hou Assignee: Vitalii Diravka Priority: Blocker Fix For: 1.12.0 This is a regression. It worked with this commit: {noformat} f1d1945b3772bb782039fd6811e34a7de66441c8DRILL-5582: C++ Client: [Threat Modeling] Drillbit may be spoofed by an attacker and this may lead to data being written to the attacker's target instead of Drillbit {noformat} It fails with this commit, although there are six commits total between the last good one and this one: {noformat} b0c4e0486d6d4620b04a1bb8198e959d433b4840DRILL-5876: Use openssl profile to include netty-tcnative dependency with the platform specific classifier {noformat} Query is: {noformat} select * from dfs.`/drill/testdata/tpch100_dir_partitioned_5files/lineitem` where dir0=2006 and dir1=12 and dir2=15 and l_discount=0.07 order by l_orderkey, l_extendedprice limit 10 {noformat} Columns are returned in a different order. Here are the expected results: {noformat} foxes. furiously final ideas cajol 1994-05-27 0.071731.42 4 F 653442 4965666.0 1.0 1994-06-23 A 1994-06-22 NONESHIP215671 0.07200612 15 (1 time(s)) lly final account 1994-11-09 0.0745881.783 F 653412 1.320809E7 46.01994-11-24 R 1994-11-08 TAKE BACK RETURNREG AIR 458104 0.08200612 15 (1 time(s)) the asymptotes 1997-12-29 0.0760882.8 6 O 653413 1.4271413E7 44.01998-02-04 N 1998-01-20 DELIVER IN PERSON MAIL21456 0.05200612 15 (1 time(s)) carefully a 1996-09-23 0.075381.88 2 O 653378 1.6702792E7 3.0 1996-11-14 N 1996-10-15 NONEREG AIR 952809 0.05200612 15 (1 time(s)) ly final requests. boldly ironic theo 1995-09-04 0.072019.94 2 O 653380 2416094.0 2.0 1995-11-14 N 1995-10-18 COLLECT COD FOB 166101 0.02200612 15 (1 time(s)) alongside of the even, e1996-02-14 0.0786140.322 O 653409 5622872.0 48.01996-05-02 N 1996-04-22 NONESHIP372888 0.04200612 15 (1 time(s)) es. regular instruct1996-10-18 0.0725194.0 1 O 653382 6048060.0 25.01996-08-29 N 1996-08-20 DELIVER IN PERSON AIR 798079 0.0 200612 15 (1 time(s)) en package 1993-09-19 0.0718718.322 F 653440 1.372054E7 12.01993-09-12 A 1993-09-09 DELIVER IN PERSON TRUCK 970554 0.0 200612 15 (1 time(s)) ly regular deposits snooze. unusual, even 1998-01-18 0.07 12427.921 O 653413 2822631.0 8.0 1998-02-09 N 1998-02-05 TAKE BACK RETURNREG AIR 322636 0.012006 12 15 (1 time(s)) ironic ideas. bra 1996-10-13 0.0764711.533 O 653383 6806672.0 41.01996-12-06 N 1996-11-10 TAKE BACK RETURNAIR 556691 0.01200612 15 (1 time(s)) {noformat} Here are the actual results: {noformat} 200612 15 653383 6806672 556691 3 41.064711.53 0.070.01N O 1996-11-10 1996-10-13 1996-12-06 TAKE BACK RETURNAIR ironic ideas. bra 200612 15 653378 16702792952809 2 3.0 5381.88 0.070.05N O 1996-10-15 1996-09-23 1996-11-14 NONEREG AIR carefully a 200612 15 653380 2416094 166101 2 2.0 2019.94 0.07 0.02N O 1995-10-18 1995-09-04 1995-11-14 COLLECT COD FOB ly final requests. boldly ironic theo 200612 15 653413 2822631 322636 1 8.0 12427.92 0.070.01N O 1998-02-05 1998-01-18 1998-02-09 TAKE BACK RETURNREG AIR ly regular deposits snooze. unusual, even 200612 15 653382 6048060 798079 1 25.025194.0 0.07 0.0 N O 1996-08-20 1996-10-18 1996-08-29 DELIVER IN PERSON AIR es. regular instruct 200612 15 653442 4965666 215671 4 1.0 1731.42 0.07 0.07A F 1994-06-22 1994-05-27 1994-06-23 NONE SHIPfoxes. furiously final ideas cajol 200612
[GitHub] drill pull request #1001: JIRA DRILL-5879: Like operator performance improve...
Github user ppadma commented on a diff in the pull request: https://github.com/apache/drill/pull/1001#discussion_r146390381 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CharSequenceWrapper.java --- @@ -53,13 +55,13 @@ // The end offset into the drill buffer private int end; // Indicates that the current byte buffer contains only ascii chars - private boolean usAscii; + private boolean useAscii; public CharSequenceWrapper() { } public CharSequenceWrapper(int start, int end, DrillBuf buffer) { -setBuffer(start, end, buffer); +setBuffer(start, end, buffer, -1); --- End diff -- what does -1 mean ? Shouldn't it be one of CHAR_MODE_IS_ASCII, CHAR_MODE_UNKNOWN or CHAR_MODE_NOT_ASCII ? ---
[GitHub] drill pull request #1001: JIRA DRILL-5879: Like operator performance improve...
Github user ppadma commented on a diff in the pull request: https://github.com/apache/drill/pull/1001#discussion_r146392275 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SqlPatternContainsMatcher.java --- @@ -17,37 +17,166 @@ */ package org.apache.drill.exec.expr.fn.impl; -public class SqlPatternContainsMatcher implements SqlPatternMatcher { +public final class SqlPatternContainsMatcher implements SqlPatternMatcher { final String patternString; CharSequence charSequenceWrapper; final int patternLength; + final MatcherFcn matcherFcn; public SqlPatternContainsMatcher(String patternString, CharSequence charSequenceWrapper) { -this.patternString = patternString; +this.patternString = patternString; this.charSequenceWrapper = charSequenceWrapper; -patternLength = patternString.length(); +patternLength= patternString.length(); + +// The idea is to write loops with simple condition checks to allow the Java Hotspot achieve +// better optimizations (especially vectorization) +if (patternLength == 1) { + matcherFcn = new Matcher1(); --- End diff -- I am not sure if it is a good idea to write special case code for each pattern length. It is not easy to maintain. Can you please give more details how this is improving performance ? Are we getting better performance for patternLength 1 or 2 or 3 or N or all ? If so, how much and why ? ---
[GitHub] drill pull request #1001: JIRA DRILL-5879: Like operator performance improve...
Github user ppadma commented on a diff in the pull request: https://github.com/apache/drill/pull/1001#discussion_r146388018 --- Diff: exec/java-exec/src/main/codegen/templates/CastFunctionsSrcVarLenTargetVarLen.java --- @@ -73,6 +73,9 @@ public void eval() { out.start = in.start; if (charCount <= length.value || length.value == 0 ) { out.end = in.end; + if (charCount == (out.end - out.start)) { +out.asciiMode = org.apache.drill.exec.expr.holders.VarCharHolder.CHAR_MODE_IS_ASCII; // we can conclude this string is ASCII --- End diff -- can you please add comments here ? I am not able to understand this change. ---
[GitHub] drill issue #1001: JIRA DRILL-5879: Like operator performance improvements
Github user sachouche commented on the issue: https://github.com/apache/drill/pull/1001 Paul, again thanks for the detailed review: - I was able to address most of the feedback except for one - I agree that expressions that can operate directly on the encoded UTF-8 string should ideally perform checks on bytes and not characters - Having said that, such a change is more involved and should be done properly o The SqlPatternContainsMatcher currently gets a CharSequence as input o We should enhance the expression framework so that matchers can a) express their capabilities and b) receive the expected data type (Character or Byte sequences) o Note also there is an impact on the test-suite since StringBuffer are being used to directly test the matcher functionality ---
[GitHub] drill issue #996: DRILL-5878: TableNotFound exception is being reported for ...
Github user HanumathRao commented on the issue: https://github.com/apache/drill/pull/996 @arina-ielchiieva Thank your for the comments. There is some work that went into calcite to handle meaningful error messages. This is the checkin that has those changes. https://github.com/apache/calcite/commit/5f9c019080c7231acaf3df80732d915351051d93#diff-0c11f3f4d738e3fa55968eb19f1c8050 It reports following errors when a table cannot be resolved. {code} select empid from "hr".emps; Object 'EMPS' not found within 'hr'; did you mean 'emps'? !error {code} However, I think the error logic should be customized to particular software(in this case DRILL) so as to report semantically meaningful error messages. Drill knows more about the context and hence can provide more customized error messages to the end user. ---
[GitHub] drill issue #904: DRILL-5717: change some date time test cases with specific...
Github user vvysotskyi commented on the issue: https://github.com/apache/drill/pull/904 @weijietong thanks for the explanation of your problem. I was able to reproduce it, but also I found working solution. This mock works correctly. The problem appears when unit test is run with other tests: [DateTimeZone](https://github.com/JodaOrg/joda-time/blob/ba95735daf79d00ce0928f30701d691f5e029d81/src/main/java/org/joda/time/DateTimeZone.java) class contains static field [cDefault](https://github.com/JodaOrg/joda-time/blob/ba95735daf79d00ce0928f30701d691f5e029d81/src/main/java/org/joda/time/DateTimeZone.java#L128) which is used to receive timezone in `testToDateForTimeStamp()` and in other tests. When timezone does not set to this field, but method [getDefault()](https://github.com/JodaOrg/joda-time/blob/ba95735daf79d00ce0928f30701d691f5e029d81/src/main/java/org/joda/time/DateTimeZone.java#L149) is called, value is taken from `System.getProperty()`. When the first test that calls this method does not have a mock, it sets a real value of timezone from `System.getProperty()`. Therefore our test uses a unmocked value from `cDefault`. So lets mock `DateTimeZone.getDefault()` method: ``` new MockUp() { @Mock public DateTimeZone getDefault() { return DateTimeZone.UTC; } }; ``` ---
[GitHub] drill pull request #985: DRILL-5862 Update project parent pom xml to the lat...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/985 ---
[GitHub] drill pull request #1004: DRILL-5876: Use openssl profile to include netty-t...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/1004 ---
[GitHub] drill pull request #992: DRILL-5873: (C++ Client) Improve SASL error reporti...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/992 ---
[GitHub] drill pull request #1003: DRILL-5893: Reverted the number of forked test pro...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/1003 ---
[GitHub] drill pull request #1002: DRILL-5888: Remove dependency of SSLConfig on hado...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/1002 ---
[GitHub] drill pull request #1000: DRILL-5845: Columns returned by select with "ORDER...
Github user asfgit closed the pull request at: https://github.com/apache/drill/pull/1000 ---
[GitHub] drill issue #971: Drill-5834 Add Networking Functions
Github user arina-ielchiieva commented on the issue: https://github.com/apache/drill/pull/971 +1, LGTM. ---
[GitHub] drill pull request #:
Github user arina-ielchiieva commented on the pull request: https://github.com/apache/drill/commit/3f892395cccdd03ec5e89a14fe038e018e3616e9#commitcomment-25133658 In exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java: In exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java on line 482: In Java you do not need to compare boolean like this, it's enough to use `if (valid) {`. Please fix here and below. ---
[GitHub] drill pull request #971: Drill-5834 Add Networking Functions
Github user cgivre commented on a diff in the pull request: https://github.com/apache/drill/pull/971#discussion_r146263421 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java --- @@ -0,0 +1,566 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.expr.fn.impl; + +import io.netty.buffer.DrillBuf; +import org.apache.drill.exec.expr.DrillSimpleFunc; +import org.apache.drill.exec.expr.annotations.FunctionTemplate; +import org.apache.drill.exec.expr.annotations.Output; +import org.apache.drill.exec.expr.annotations.Param; +import org.apache.drill.exec.expr.holders.BigIntHolder; +import org.apache.drill.exec.expr.holders.BitHolder; +import org.apache.drill.exec.expr.holders.VarCharHolder; + +import javax.inject.Inject; + +public class NetworkFunctions { + static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(NetworkFunctions.class); + + private NetworkFunctions() { + } + + /** + * This function takes two arguments, an input IPv4 and a CIDR, and returns true if the IP is in the given CIDR block + */ + @FunctionTemplate(name = "in_network", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class InNetworkFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputIP; + +@Param +VarCharHolder inputCIDR; + +@Output +BitHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + + +public void eval() { + + String ipString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputIP.start, inputIP.end, inputIP.buffer); + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + + int result = 0; + org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString); + + if (utils.getInfo().isInRange(ipString)) { +result = 1; + } + + out.value = result; +} + } + + + /** + * This function retunrs the number of IP addresses in the input CIDR block. + */ + @FunctionTemplate(name = "address_count", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class AddressCountFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputCIDR; + +@Output +BigIntHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + +public void eval() { + + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString); + + out.value = utils.getInfo().getAddressCount(); + +} + + } + + /** + * This function returns the broadcast address of a given CIDR block. + */ + @FunctionTemplate(name = "broadcast_address", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class BroadcastAddressFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputCIDR; + +@Output +VarCharHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + +public void eval() { + + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + org.apache.commons.net.util.SubnetUtils utils = new
[GitHub] drill issue #936: DRILL-5772: Enable UTF-8 support in query string by defaul...
Github user arina-ielchiieva commented on the issue: https://github.com/apache/drill/pull/936 @paul-rogers Calcite community has approved my changes and they have been already cherry-picked into Drill Calcite branch. I have updated pull request to reflect this recent changes. Now utf-8 support in query string will be enabled by default and controlled using saffron.properties file. ---
[GitHub] drill issue #996: DRILL-5878: TableNotFound exception is being reported for ...
Github user arina-ielchiieva commented on the issue: https://github.com/apache/drill/pull/996 Well, with the short-term solution I am afraid that eventually we'll forget to revert it when Calcite checks take over and we'll be checking for schema twice. @HanumathRao before going any further with this pull request, could you please investigate the following: 1. Does newer Calcite versions handle this case? 2. If not, can this be handled in Calcite? If yes, please create Jira in Calcite. If possible create fix and check if Calcite community will accept it. ---
[GitHub] drill pull request #971: Drill-5834 Add Networking Functions
Github user arina-ielchiieva commented on a diff in the pull request: https://github.com/apache/drill/pull/971#discussion_r146223741 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java --- @@ -523,13 +476,13 @@ public void setup() { public void eval() { String ipString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputIP.start, inputIP.end, inputIP.buffer); - if( ipString == null || ipString.isEmpty() || ipString.length() == 0 ){ + if (ipString == null || ipString.isEmpty()) { out.value = 0; } else { org.apache.commons.validator.routines.InetAddressValidator validator = org.apache.commons.validator.routines.InetAddressValidator.getInstance(); boolean result = validator.isValid(ipString); -if( result == true ){ +if (result == true) { --- End diff -- 1. `if (result) {` 2. we can rename the variable to `valid` -> `if (valid) {` ---
[GitHub] drill pull request #971: Drill-5834 Add Networking Functions
Github user arina-ielchiieva commented on a diff in the pull request: https://github.com/apache/drill/pull/971#discussion_r146223706 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java --- @@ -563,13 +513,13 @@ public void setup() { public void eval() { String ipString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputIP.start, inputIP.end, inputIP.buffer); - if( ipString == null || ipString.isEmpty() || ipString.length() == 0 ){ + if (ipString == null || ipString.isEmpty()) { out.value = 0; } else { org.apache.commons.validator.routines.InetAddressValidator validator = org.apache.commons.validator.routines.InetAddressValidator.getInstance(); boolean result = validator.isValidInet4Address(ipString); -if( result == true ){ +if (result == true) { --- End diff -- 1. `if (result) {` 2. we can rename the variable to `valid` -> `if (valid) {` ---
[GitHub] drill pull request #971: Drill-5834 Add Networking Functions
Github user arina-ielchiieva commented on a diff in the pull request: https://github.com/apache/drill/pull/971#discussion_r146232191 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/NetworkFunctions.java --- @@ -0,0 +1,566 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.expr.fn.impl; + +import io.netty.buffer.DrillBuf; +import org.apache.drill.exec.expr.DrillSimpleFunc; +import org.apache.drill.exec.expr.annotations.FunctionTemplate; +import org.apache.drill.exec.expr.annotations.Output; +import org.apache.drill.exec.expr.annotations.Param; +import org.apache.drill.exec.expr.holders.BigIntHolder; +import org.apache.drill.exec.expr.holders.BitHolder; +import org.apache.drill.exec.expr.holders.VarCharHolder; + +import javax.inject.Inject; + +public class NetworkFunctions { + static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(NetworkFunctions.class); + + private NetworkFunctions() { + } + + /** + * This function takes two arguments, an input IPv4 and a CIDR, and returns true if the IP is in the given CIDR block + */ + @FunctionTemplate(name = "in_network", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class InNetworkFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputIP; + +@Param +VarCharHolder inputCIDR; + +@Output +BitHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + + +public void eval() { + + String ipString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputIP.start, inputIP.end, inputIP.buffer); + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + + int result = 0; + org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString); + + if (utils.getInfo().isInRange(ipString)) { +result = 1; + } + + out.value = result; +} + } + + + /** + * This function retunrs the number of IP addresses in the input CIDR block. + */ + @FunctionTemplate(name = "address_count", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class AddressCountFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputCIDR; + +@Output +BigIntHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + +public void eval() { + + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString); + + out.value = utils.getInfo().getAddressCount(); + +} + + } + + /** + * This function returns the broadcast address of a given CIDR block. + */ + @FunctionTemplate(name = "broadcast_address", scope = FunctionTemplate.FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling.NULL_IF_NULL) + public static class BroadcastAddressFunction implements DrillSimpleFunc { + +@Param +VarCharHolder inputCIDR; + +@Output +VarCharHolder out; + +@Inject +DrillBuf buffer; + +public void setup() { +} + +public void eval() { + + String cidrString = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputCIDR.start, inputCIDR.end, inputCIDR.buffer); + org.apache.commons.net.util.SubnetUtils utils = new
[GitHub] drill issue #1006: DRILL-5895: Add logging mongod exception when failed to c...
Github user arina-ielchiieva commented on the issue: https://github.com/apache/drill/pull/1006 +1. LGTM. ---
[GitHub] drill pull request #998: DRILL-5887: Display process user/groups info in Dri...
Github user arina-ielchiieva commented on a diff in the pull request: https://github.com/apache/drill/pull/998#discussion_r146222565 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRoot.java --- @@ -85,19 +86,24 @@ public ClusterInfo getClusterInfoJSON() { // For all other cases the user info need-not or should-not be displayed OptionManager optionManager = work.getContext().getOptionManager(); final boolean isUserLoggedIn = AuthDynamicFeature.isUserLoggedIn(sc); -String adminUsers = isUserLoggedIn ? - ExecConstants.ADMIN_USERS_VALIDATOR.getAdminUsers(optionManager) : null; -String adminUserGroups = isUserLoggedIn ? - ExecConstants.ADMIN_USER_GROUPS_VALIDATOR.getAdminUserGroups(optionManager) : null; +final String processUser = ImpersonationUtil.getProcessUserName(); +final String processUserGroups = Joiner.on(", ").join(ImpersonationUtil.getProcessUserGroupNames()); +String adminUsers = ExecConstants.ADMIN_USERS_VALIDATOR.getAdminUsers(optionManager); +String adminUserGroups = ExecConstants.ADMIN_USER_GROUPS_VALIDATOR.getAdminUserGroups(optionManager); // separate groups by comma + space -if (adminUsers != null) { +if (adminUsers.length() == 0) { --- End diff -- This would be adherence to the MVC pattern which separates model from the view. Model is generated on the server side while freemarker is responsible for representation layer. ---
[GitHub] drill pull request #1006: DRILL-5895: Add logging mongod exception when fail...
GitHub user vladimirtkach opened a pull request: https://github.com/apache/drill/pull/1006 DRILL-5895: Add logging mongod exception when failed to close all mon⦠â¦god processes during provided timeout Details in [DRILL-5895](https://issues.apache.org/jira/browse/DRILL-5895). You can merge this pull request into a Git repository by running: $ git pull https://github.com/vladimirtkach/drill DRILL-5895 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/drill/pull/1006.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1006 commit c5c0a6b3a54649be1bd8e29617d54e66dd51190b Author: Volodymyr TkachDate: 2017-10-23T09:10:57Z DRILL-5895: Add logging mongod exception when failed to close all mongod processes during provided timeout ---