Comment 8 for bug 562349

Revision history for this message
David Shrewsbury (dshrews) wrote :

Adding a comment to remember where I'm at in debugging:

So initially I thought it was conversion to a string that may be overwriting the record buffer, but it looks like the problem may be within table.cc:

(gdb) c
Continuing.

Breakpoint 3, drizzled::Field_blob::val_str (this=0x2f1cfe8, val_ptr=0x2e4d668)
    at drizzled/field/blob.cc:325
325 memcpy(&blob,ptr+packlength,sizeof(char*));
(gdb) p this->ptr
$13 = (unsigned char *) 0x2e4fcde "\023"
(gdb) x/40xb 0x2e4fcde
0x2e4fcde: 0x13 0x00 0x00 0x00 0x56 0x00 0x13 0x03
0x2e4fce6: 0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x00 <-- 0x13 is the length of blob field
0x2e4fcee: 0x6a 0x00 0x13 0x03 0x00 0x00 0x00 0x00
0x2e4fcf6: 0x00 0x00 0xff 0x00 0x00 0x00 0x00 0x00
0x2e4fcfe: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) watch *((int*)0x2e4fcea)
Hardware watchpoint 4: *((int*)0x2e4fcea)
(gdb) c
Continuing.

Breakpoint 2, drizzled::Item_func_hour::val_int (this=0x2e4d748)
    at drizzled/function/time/hour.cc:86
86 if (! temporal_datetime.from_string(res->c_ptr(), res->length()))
(gdb) c
Continuing.
Hardware watchpoint 4: *((int*)0x2e4fcea)

Old value = 19
New value = 0
memcpy () at ../sysdeps/x86_64/memcpy.S:120
120 ../sysdeps/x86_64/memcpy.S: No such file or directory.
 in ../sysdeps/x86_64/memcpy.S
(gdb) list
115 in ../sysdeps/x86_64/memcpy.S
(gdb) bt
#0 memcpy () at ../sysdeps/x86_64/memcpy.S:120
#1 0x000000000081c89f in drizzled::Table::restoreRecordAsDefault (
    this=0x2f1ac00) at drizzled/table.cc:1864
#2 0x000000000081c8c0 in drizzled::Table::emptyRecord (this=0x2f1ac00)
    at drizzled/table.cc:1873
#3 0x0000000000773fe6 in drizzled::ReadRecord::init_read_record (
    this=0x2e2ba98, session_arg=0x2e4c1d0, table_arg=0x2f1ac00,
    select_arg=0x2e2bcb0, use_record_cache=1, print_error_arg=true)
    at drizzled/records.cc:89
#4 0x00000000007c5c83 in drizzled::join_init_read_record (tab=0x2e2ba10)
    at drizzled/sql_select.cc:3967
#5 0x00000000007c4ac0 in drizzled::sub_select (join=0x2e4da30,
    join_tab=0x2e2ba10, end_of_records=false) at drizzled/sql_select.cc:3563
#6 0x00000000007c46bf in drizzled::do_select (join=0x2e4da30,
    fields=0x2e4cf40, table=0x0) at drizzled/sql_select.cc:3333
#7 0x00000000006f2d0f in drizzled::Join::exec (this=0x2e4da30)
    at drizzled/join.cc:1695
#8 0x00000000007bd91b in drizzled::mysql_select (session=0x2e4c1d0,
    rref_pointer_array=0x2e4d000, tables=0x2e4d860, wild_num=0, fields=...,
    conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0,
    select_options=2147500032, result=0x2e4da10, unit=0x2e4cc48,
    select_lex=0x2e4ce48) at drizzled/sql_select.cc:427
#9 0x00000000007bd1f1 in drizzled::handle_select (session=0x2e4c1d0,
    lex=0x2e4cc28, result=0x2e4da10, setup_tables_done_option=0)
    at drizzled/sql_select.cc:146
#10 0x00000000007b98d8 in drizzled::execute_sqlcom_select (session=0x2e4c1d0,
    all_tables=0x2e4d860) at drizzled/sql_parse.cc:544
#11 0x0000000000812e7f in drizzled::statement::Select::execute (this=0x2e50080)
    at drizzled/statement/select.cc:32
#12 0x00000000007b9463 in mysql_execute_command (session=0x2e4c1d0)
    at drizzled/sql_parse.cc:479
#13 0x00000000007ba1b2 in drizzled::mysql_parse (session=0x2e4c1d0,
    inBuf=0x29a5038 "SELECT HOUR(blob_fld) FROM t1", length=29)
    at drizzled/sql_parse.cc:750
#14 0x00000000007b8dfd in drizzled::dispatch_command (
    command=drizzled::COM_QUERY, session=0x2e4c1d0, packet=0x2f24ba1 "",
    packet_length=29) at drizzled/sql_parse.cc:224
#15 0x000000000077c7e1 in drizzled::Session::executeStatement (this=0x2e4c1d0)
    at drizzled/session.cc:666
#16 0x000000000077c0ab in drizzled::Session::run (this=0x2e4c1d0)
    at drizzled/session.cc:522
#17 0x00007ffff2e94b54 in MultiThreadScheduler::runSession (this=0x1956a00,
    session=0x2e4c1d0) at ./plugin/multi_thread/multi_thread.h:67
#18 0x00007ffff2e929e2 in session_thread (arg=0x2e4c1d0)
    at plugin/multi_thread/multi_thread.cc:52
#19 0x00007ffff5f369ca in start_thread (arg=<value optimized out>)
    at pthread_create.c:300
#20 0x00007ffff5c936fd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#21 0x0000000000000000 in ?? ()