crash in drizzled::JoinTable::readCachedRecord
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Fix Released
|
High
|
Andrew Hutchings | ||
7.0 |
Fix Released
|
High
|
Andrew Hutchings |
Bug Description
Found after fixing bug #628398 and bug #697697 with the same randgen (several minutes in now):
./gentest.pl --dsn=dbi:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdeffd700 (LWP 703)]
drizzled:
at drizzled/
51 copy->blob_
(gdb) bt
#0 drizzled:
at drizzled/
#1 0x000000000062de00 in drizzled:
join_
#2 0x00000000006bb4a7 in drizzled:
join_
at drizzled/
#3 0x00000000006bafa0 in drizzled::do_select (join=0x7fffd08
fields=
#4 0x000000000062c3f4 in drizzled:
at drizzled/
#5 0x000000000061d87c in drizzled:
this=
#6 0x0000000000617bc1 in drizzled:
at drizzled/
#7 0x00000000006183c7 in drizzled:
this=
#8 0x00000000005f829c in drizzled:
this=
#9 0x00000000006bf9b1 in drizzled:
end_
#10 0x00000000006bafa0 in drizzled::do_select (join=0x7fffd08
fields=
#11 0x000000000062c3f4 in drizzled:
at drizzled/
#12 0x00000000006b7701 in drizzled:
rref_
wild_num=<value optimized out>, fields=<value optimized out>,
conds=<value optimized out>, og_num=2, order=0x7fffd05
having=
unit=0x19695f0, select_
#13 0x00000000006b8028 in drizzled:
lex=0x19695d0, result=
at drizzled/
#14 0x00000000006b0a74 in drizzled:
all_
#15 0x00000000006b3b25 in execute_command (session=0x1968bd0,
inBuf=<value optimized out>, length=1318) at drizzled/
#16 drizzled::parse (session=0x1968bd0, inBuf=<value optimized out>,
length=1318) at drizzled/
#17 0x00000000006b41fc in drizzled:
command=<value optimized out>, session=0x1968bd0, packet=0x196bfb1 "",
packet_
#18 0x0000000000689946 in drizzled:
at drizzled/
#19 0x000000000068cfc7 in drizzled:
at drizzled/
#20 0x00007ffff56728a6 in multi_thread:
this=0x19457f0, id=4) at plugin/
#21 0x00007ffff789ba55 in thread_proxy ()
from /usr/lib64/
#22 0x0000003755406d5b in start_thread () from /lib64/
#23 0x00000037550e4a7d in clone () from /lib64/libc.so.6
Related branches
- Drizzle Developers: Pending requested
-
Diff: 498 lines (+477/-1)3 files modifieddrizzled/join.cc (+3/-1)
tests/suite/regression/r/697726.result (+239/-0)
tests/suite/regression/t/697726.test (+235/-0)
so, join_tab had had cleanup() called which frees the cache->buff allocation. The join_tab is then reused but the cache->buff has not been re-initialized.
Why/how this happens I haven't determined yet...