List:Falcon Storage Engine« Previous MessageNext Message »
From:Christopher Powers Date:October 24 2008 2:29pm
Subject:Re: Chill thaw fixes 1 and 2
View as plain text  
Vlad: Assertion stacks attached

-------- Original Message --------
Subject: Chill thaw fixes 1 and 2
Date: Fri, 24 Oct 2008 00:40:20 -0500
From: Christopher Powers <christopher.powers@stripped>
To: Kevin Lewis <klewis@stripped>
CC: falcon@stripped

http://lists.mysql.com/commits/56961

http://lists.mysql.com/commits/56962


You can force the error by setting breakpoint below, then Set Next Statement to 'throw'.

Follow the stack back up into the server--eventually it will assert.

void Statement::dropIndex(Syntax *syntax)
{
	[...]
	JString tableName = Index::getTableName (database, schema, name);

[bp]if (tableName == "")
		throw SQLEXCEPTION (DDL_ERROR, "index %s.%s not defined", name, schema);


Stack up to error handling in server:

mysqld.exe!mysql_alter_table(THD * thd=0x01908a58, char * new_db=0x01939f50, char *
new_name=0x01939d28, st_ha_create_information * create_info=0x06ccef44, TABLE_LIST *
table_list=0x01939d50, Alter_info * alter_info=0x06cceee4, unsigned int order_num=0,
st_order * order=0x00000000, bool ignore=false)  Line 6971	C++
mysqld.exe!mysql_execute_command(THD * thd=0x01908a58)  Line 2680 + 0x4a bytes	C++
mysqld.exe!mysql_parse(THD * thd=0x01908a58, const char * inBuf=0x01939a60, unsigned int
length=35, const char * * found_semicolon=0x06ccfcf8)  Line 5628 + 0x9 bytes	C++
mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x01908a58,
char * packet=0x0192f741, unsigned int packet_length=35)  Line 1009 + 0x1e bytes	C++
mysqld.exe!do_command(THD * thd=0x01908a58)  Line 689 + 0x1b bytes	C++
mysqld.exe!handle_one_connection(void * arg=0x01908a58)  Line 1156 + 0x9 bytes	C++
mysqld.exe!pthread_start(void * param=0x018f8fe0)  Line 86 + 0x9 bytes	C
mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes	C
mysqld.exe!_threadstart(void * ptd=0x01904030)  Line 277	C
kernel32.dll!_BaseThreadStart@8()  + 0x37 bytes	


Pre-abort stack (see net_end_statement code below)

mysqld.exe!net_end_statement(THD * thd=0x01908a58)  Line 467	C++
mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x01908a58,
char * packet=0x0192f741, unsigned int packet_length=35)  Line 1407 + 0x9 bytes	C++
mysqld.exe!do_command(THD * thd=0x01908a58)  Line 689 + 0x1b bytes	C++
mysqld.exe!handle_one_connection(void * arg=0x01908a58)  Line 1156 + 0x9 bytes	C++
mysqld.exe!pthread_start(void * param=0x018f8fe0)  Line 86 + 0x9 bytes	C
mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes	C
mysqld.exe!_threadstart(void * ptd=0x01904030)  Line 277	C


Abort stack

mysqld.exe!my_sigabrt_handler(int sig=22)  Line 2147	C++
mysqld.exe!raise(int signum=22)  Line 590 + 0x7 bytes	C
mysqld.exe!__crtMessageWindowA(int nRptType=1, const char * szFile=0x00000000, const char
* szLine=0x00000000, const char * szModule=0x00000000, const char *
szUserMessage=0x06cc934c)  Line 430 + 0x7 bytes	C
mysqld.exe!_VCrtDbgReportA(int nRptType=1, const char * szFile=0x00000000, int nLine=0,
const char * szModule=0x00000000, const char * szFormat=0x00e38100, char *
arglist=0x06cce3e0)  Line 420 + 0x28 bytes	C
mysqld.exe!_CrtDbgReportV(int nRptType=1, const char * szFile=0x00000000, int nLine=0,
const char * szModule=0x00000000, const char * szFormat=0x00e38100, char *
arglist=0x06cce3e0)  Line 300 + 0x1d bytes	C
mysqld.exe!_CrtDbgReport(int nRptType=1, const char * szFile=0x00000000, int nLine=0,
const char * szModule=0x00000000, const char * szFormat=0x00e38100, ...)  Line 317 + 0x1d
bytes	C
mysqld.exe!_NMSG_WRITE(int rterrnum=10)  Line 197 + 0x18 bytes	C
mysqld.exe!abort()  Line 59 + 0x7 bytes	C
mysqld.exe!_wassert(const wchar_t * expr=0x00d13f9c, const wchar_t * filename=0x00d13f80,
unsigned int lineno=467)  Line 212	C
mysqld.exe!net_end_statement(THD * thd=0x01908b38)  Line 467 + 0x18 bytes	C++
mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x01908b38,
char * packet=0x0192ff51, unsigned int packet_length=35)  Line 1407 + 0x9 bytes	C++
mysqld.exe!do_command(THD * thd=0x01908b38)  Line 689 + 0x1b bytes	C++
mysqld.exe!handle_one_connection(void * arg=0x01908b38)  Line 1156 + 0x9 bytes	C++
mysqld.exe!pthread_start(void * param=0x018e0820)  Line 86 + 0x9 bytes	C
mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes	C
mysqld.exe!_threadstart(void * ptd=0x0190a570)  Line 277	C
kernel32.dll!_BaseThreadStart@8()  + 0x37 bytes	


void net_end_statement(THD *thd)
{
  DBUG_ENTER("net_end_statement");
  DBUG_ASSERT(! thd->main_da.is_sent);

  /* Can not be true, but do not take chances in production. */
  if (thd->main_da.is_sent)
    return;

  switch (thd->main_da.status()) {
  case Diagnostics_area::DA_ERROR:
    /* The query failed, send error to log and abort bootstrap. */
    net_send_error(thd,
                   thd->main_da.sql_errno(),
                   thd->main_da.message());
    break;
  case Diagnostics_area::DA_EOF:
    net_send_eof(thd,
                 thd->main_da.server_status(),
                 thd->main_da.total_warn_count());
    break;
  case Diagnostics_area::DA_OK:
    net_send_ok(thd,
                thd->main_da.server_status(),
                thd->main_da.total_warn_count(),
                thd->main_da.affected_rows(),
                thd->main_da.last_insert_id(),
                thd->main_da.message());
    break;
  case Diagnostics_area::DA_DISABLED:
    break;
  case Diagnostics_area::DA_EMPTY:
  default:
    DBUG_ASSERT(0);     <<<<<<<< Vlad
    net_send_ok(thd, thd->server_status, thd->total_warn_count,
                0, 0, NULL);
    break;
  }
  thd->main_da.is_sent= TRUE;
  DBUG_VOID_RETURN;
}

Thread
Chill thaw fixes 1 and 2Christopher Powers24 Oct
Re: Chill thaw fixes 1 and 2Christopher Powers24 Oct
  • RE: Chill thaw fixes 1 and 2Vladislav Vaintroub24 Oct
    • Re: Chill thaw fixes 1 and 2Christopher Powers24 Oct