[ 
https://issues.apache.org/jira/browse/DRILL-7986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17397086#comment-17397086
 ] 

ASF GitHub Bot commented on DRILL-7986:
---------------------------------------

vvysotskyi merged pull request #2291:
URL: https://github.com/apache/drill/pull/2291


   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


> Drill crashes when using the streaming connection with arrays
> -------------------------------------------------------------
>
>                 Key: DRILL-7986
>                 URL: https://issues.apache.org/jira/browse/DRILL-7986
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.19.0
>            Reporter: Vova Vysotskyi
>            Assignee: Vova Vysotskyi
>            Priority: Critical
>             Fix For: 1.20.0
>
>
> When using streaming HTTP connection for queries that return varchar arrays 
> within multiple batches, Drillbit may crash with SIGSEGV fatal error:
> {noformat}
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  SIGSEGV (0xb) at pc=0x00000001166a7593, pid=66979, tid=0x0000000000007603
> #
> # JRE version: Java(TM) SE Runtime Environment (8.0_241-b07) (build 
> 1.8.0_241-b07)
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.241-b07 mixed mode bsd-amd64 
> compressed oops)
> # Problematic frame:
> # J 9781 C2 io.netty.buffer.DrillBuf.getInt(I)I (15 bytes) @ 
> 0x00000001166a7593 [0x00000001166a7560+0x33]
> #
> # Failed to write core dump. Core dumps have been disabled. To enable core 
> dumping, try "ulimit -c unlimited" before starting Java again
> #
> # If you would like to submit a bug report, please visit:
> #   http://bugreport.java.com/bugreport/crash.jsp
> #
> ---------------  T H R E A D  ---------------
> Current thread (0x00007f95ddbbb800):  JavaThread 
> "1eee85ef-2a8d-7c8e-65e4-aaba7bc5c4c6:frag:0:0" daemon [_thread_in_Java, 
> id=30211, stack(0x000070000e21e000,0x000070000e31e000)]
> siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 
> 0x00007f95a20bbcc4
> Registers:
> RAX=0x000000015e91e3c0, RBX=0x000000015e91e3c0, RCX=0x000000077a95df10, 
> RDX=0x00000000c0e0ccc4
> RSP=0x000070000e31c4a0, RBP=0x000070000e31c518, RSI=0x000000077a95df10, 
> RDI=0x0000000000000128
> R8 =0x0000000000000000, R9 =0x0000000000000000, R10=0x00007f95e12af000, 
> R11=0xffffffffc0e0ccc4
> R12=0x0000000000000000, R13=0x000070000e31c4c8, R14=0x000070000e31c568, 
> R15=0x00007f95ddbbb800
> RIP=0x00000001166a7593, EFLAGS=0x0000000000010206, ERR=0x0000000000000004
>   TRAPNO=0x000000000000000e
> Top of Stack: (sp=0x000070000e31c4a0)
> 0x000070000e31c4a0:   0000000000000000 0000000162da1160
> 0x000070000e31c4b0:   000070000e31c518 0000000114807da0
> 0x000070000e31c4c0:   0000000114807da0 00000000c0e0ccc4
> 0x000070000e31c4d0:   000000077a95df10 000070000e31c4d8
> 0x000070000e31c4e0:   0000000162d9b028 000070000e31c568
> 0x000070000e31c4f0:   0000000162d9b3d8 0000000000000000
> 0x000070000e31c500:   0000000162d9b0b0 000070000e31c4c8
> 0x000070000e31c510:   000070000e31c568 000070000e31c5b0
> 0x000070000e31c520:   0000000114807e70 0000000000000000
> 0x000070000e31c530:   0000000000000000 0000000000000000
> 0x000070000e31c540:   0000000000000000 0000000000000000
> 0x000070000e31c550:   0000000000000000 00000000c0e0ccc4
> 0x000070000e31c560:   000000077a95df10 00000007704ebb20
> 0x000070000e31c570:   000070000e31c570 0000000162d95e36
> 0x000070000e31c580:   000070000e31c5d8 0000000162d98e48
> 0x000070000e31c590:   0000000000000000 0000000162d95e78
> 0x000070000e31c5a0:   000070000e31c568 000070000e31c5d8
> 0x000070000e31c5b0:   000070000e31c630 00000001148080e0
> 0x000070000e31c5c0:   0000000000000000 0000000000000000
> 0x000070000e31c5d0:   000000077a95dfe0 00000007704db008
> 0x000070000e31c5e0:   000000077a98b638 000000077a98b638
> 0x000070000e31c5f0:   000070000e31c5f0 0000000162d95f05
> 0x000070000e31c600:   000070000e31c640 0000000162d98e48
> 0x000070000e31c610:   0000000000000000 0000000162d95f28
> 0x000070000e31c620:   000070000e31c5d8 000070000e31c640
> 0x000070000e31c630:   000070000e31c690 00000001148081b4
> 0x000070000e31c640:   00000007704db008 00000006c1fc6020
> 0x000070000e31c650:   000070000e31c650 000000016104cd0c
> 0x000070000e31c660:   000070000e31c6a8 000000016104f9f0
> 0x000070000e31c670:   0000000000000000 000000016104cd90
> 0x000070000e31c680:   000070000e31c640 000070000e31c6a0
> 0x000070000e31c690:   000070000e31c6f0 000000011480835d 
> Instructions: (pc=0x00000001166a7593)
> 0x00000001166a7573:   90 0f 1f 84 00 00 00 00 00 66 66 66 90 48 81 ec
> 0x00000001166a7583:   18 00 00 00 48 89 6c 24 10 4c 8b 56 28 4c 63 da
> 0x00000001166a7593:   43 8b 04 1a 48 83 c4 10 5d 85 05 5e 7a be f0 c3
> 0x00000001166a75a3:   f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 
> Register to memory mapping:
> RAX={method} {0x000000015e91e3c0} 'getInt' '(I)I' in 
> 'io/netty/buffer/DrillBuf'
> RBX={method} {0x000000015e91e3c0} 'getInt' '(I)I' in 
> 'io/netty/buffer/DrillBuf'
> RCX=0x000000077a95df10 is an oop
> io.netty.buffer.DrillBuf 
>  - klass: 'io/netty/buffer/DrillBuf'
> RDX=0x00000000c0e0ccc4 is an unknown value
> RSP=0x000070000e31c4a0 is pointing into the stack for thread: 
> 0x00007f95ddbbb800
> RBP=0x000070000e31c518 is pointing into the stack for thread: 
> 0x00007f95ddbbb800
> RSI=0x000000077a95df10 is an oop
> io.netty.buffer.DrillBuf 
>  - klass: 'io/netty/buffer/DrillBuf'
> RDI=0x0000000000000128 is an unknown value
> R8 =0x0000000000000000 is an unknown value
> R9 =0x0000000000000000 is an unknown value
> R10=0x00007f95e12af000 is an unknown value
> R11=0xffffffffc0e0ccc4 is an unknown value
> R12=0x0000000000000000 is an unknown value
> R13=0x000070000e31c4c8 is pointing into the stack for thread: 
> 0x00007f95ddbbb800
> R14=0x000070000e31c568 is pointing into the stack for thread: 
> 0x00007f95ddbbb800
> R15=0x00007f95ddbbb800 is a thread
> Stack: [0x000070000e21e000,0x000070000e31e000],  sp=0x000070000e31c4a0,  free 
> space=1017k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
> code)
> J 9781 C2 io.netty.buffer.DrillBuf.getInt(I)I (15 bytes) @ 0x00000001166a7593 
> [0x00000001166a7560+0x33]
> j  
> org.apache.drill.exec.vector.accessor.reader.OffsetVectorReader.getEntry()J+24
> j  
> org.apache.drill.exec.vector.accessor.ColumnAccessors$VarCharColumnReader.getBytes()[B+14
> j  
> org.apache.drill.exec.vector.accessor.ColumnAccessors$VarCharColumnReader.getString()Ljava/lang/String;+5
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeScalar(Lorg/apache/drill/exec/vector/accessor/ScalarReader;)V+260
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeValue(Lorg/apache/drill/exec/vector/accessor/ObjectReader;)V+84
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeArray(Lorg/apache/drill/exec/vector/accessor/ArrayReader;)V+33
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeValue(Lorg/apache/drill/exec/vector/accessor/ObjectReader;)V+71
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeColumn(Lorg/apache/drill/exec/vector/accessor/ObjectReader;)V+22
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeObject(Lorg/apache/drill/exec/vector/accessor/TupleReader;)V+34
> j  
> org.apache.drill.exec.physical.resultSet.util.JsonWriter.writeRow(Lorg/apache/drill/exec/vector/accessor/TupleReader;)V+2
> j  
> org.apache.drill.exec.server.rest.stream.StreamingHttpConnection.emitRows(Lorg/apache/drill/exec/physical/rowSet/RowSetReader;)V+14
> j  
> org.apache.drill.exec.server.rest.stream.StreamingHttpConnection.emitBatch(Lorg/apache/drill/exec/physical/rowSet/RowSetReader;)V+37
> j  
> org.apache.drill.exec.server.rest.stream.StreamingHttpConnection.sendData(Lorg/apache/drill/exec/rpc/RpcOutcomeListener;Lorg/apache/drill/exec/physical/impl/materialize/QueryDataPackage;)V+69
> j  
> org.apache.drill.exec.ops.AccountingUserConnection.sendData(Lorg/apache/drill/exec/physical/impl/materialize/QueryDataPackage;)V+16
> j  
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext()Z+194
> j  org.apache.drill.exec.physical.impl.BaseRootExec.next()Z+43
> j  
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run()Ljava/lang/Void;+77
> j  
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run()Ljava/lang/Object;+1
> v  ~StubRoutines::call_stub
> V  [libjvm.dylib+0x2f1b06]
> V  [libjvm.dylib+0x3523f6]
> J 183  
> java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
>  (0 bytes) @ 0x0000000114b2db95 [0x0000000114b2dac0+0xd5]
> j  
> javax.security.auth.Subject.doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;+42
> j  
> org.apache.hadoop.security.UserGroupInformation.doAs(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;+14
> j  org.apache.drill.exec.work.fragment.FragmentExecutor.run()V+302
> j  org.apache.drill.common.SelfCleaningRunnable.run()V+4
> j  
> java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95
> j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
> j  java.lang.Thread.run()V+11
> v  ~StubRoutines::call_stub
> V  [libjvm.dylib+0x2f1b06]
> V  [libjvm.dylib+0x2f22aa]
> V  [libjvm.dylib+0x2f2456]
> V  [libjvm.dylib+0x34cd45]
> V  [libjvm.dylib+0x576b93]
> V  [libjvm.dylib+0x57828e]
> V  [libjvm.dylib+0x490b86]
> C  [libsystem_pthread.dylib+0x68fc]  _pthread_start+0xe0
> C  [libsystem_pthread.dylib+0x2443]  thread_start+0xf
> C  0x0000000000000000
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to