Select query with outer join of 3 repos tables from trafci failing with error 201 and esp core
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Trafodion |
Fix Committed
|
High
|
Justin Du |
Bug Description
Traf daily build 3/29.
From trafci :
Set schema “_REPOS_”;
Select * from metric_query_table, metric_
It returns error 201s and there are esp cores with the stack below, it works ok from sqlci.
(gdb) bt
#0 0x00007ffff28b5625 in raise () from /lib64/libc.so.6
#1 0x00007ffff28b6e05 in abort () from /lib64/libc.so.6
#2 0x00007ffff40aaa55 in os::abort(bool) ()
from /usr/java/
#3 0x00007ffff422af87 in VMError:
from /usr/java/
#4 0x00007ffff40af96f in JVM_handle_
from /usr/java/
#5 <signal handler called>
#6 0x00007fffe7962dcf in ?? ()
#7 0x00007ffff6d5b0f7 in eval (this=0x7fffe60
moveExpr=
skipMemoryC
#8 Cluster::insert (this=0x7fffe60
moveExpr=
skipMemoryC
#9 0x00007ffff6da92e5 in insert (this=0x7ffff7e
at ../executor/
#10 ex_hashj_
at ../executor/
#11 0x00007ffff6dad360 in ex_hashj_
at ../executor/
#12 0x00007ffff6e9ec73 in ExScheduler::work (this=0x7ffff7e
---Type <return> to continue, or q <return> to quit---
prevWaitTim
#13 0x00007ffff6d70842 in ExEspFragInstan
prevWaitTim
#14 0x000000000040620f in runESP (argc=3, argv=0x7fffffff
guaReceiveF
#15 0x0000000000406643 in main (argc=3, argv=0x7fffffff
at ../bin/
Changed in trafodion: | |
assignee: | nobody → Selvaganesan Govindarajan (selva-ganesan) |
Changed in trafodion: | |
assignee: | Selvaganesan Govindarajan (selva-ganesan) → Justin Du (justin-du-2) |
status: | New → In Progress |
Changed in trafodion: | |
status: | In Progress → Fix Committed |
I’m not sure why the query running on trafci got ESP core but clearly there is a problem when figuring out the hash buffer size. From debugging at the frame #19 (Cluster: :insert( )), the hash buffer (bufferPool_) has ial*)bufferPool _ vptr.NABasicObj ect = 0x7ffff71b5990, ength_ = 0, ferDefrag_ = 0, owsSer_ = 0,
(gdb) p *(HashBufferSer
$29 = {
<HashBuffer> = {
<NABasicObject> = {
_
h_ = 0x7ffff7ebaeb0
},
members of HashBuffer:
cluster_ = 0x7fffe60c0780,
bufferSize_ = 412360,
maxRowLength_ = 412360,
isVariableL
considerBuf
rows_ = 0x7fffdb16ce08 "",
maxNumFullR
freeSpace_ = 412344,
currRow_ = 0x0,
nextAvailRow_ = 0x7fffdb16ce08 "",
next_ = 0x7fffe60c08b0,
prev_ = 0x0,
heap_ = 0x0,
{
data_ = 0x7fffdb16ce00 "",
header_ = 0x7fffdb16ce00
}
}, <No data fields>}
This will cause ->castToSerial( )->getFreeRow( ); Cluster. cpp). We may use this pointer as target address when storing the rows from right side in the hash buffer.
1520 dataPointer = bufferPool_
to return null (in sql/executor/
We need to fix this maxRowLength_ problem first (maybe in generator) and try.