Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-3123

LP:445845 - pbxt.multi_update test repeatably hangs on windows

    Details

    • Type: Bug
    • Status: Closed
    • Resolution: Not a Bug
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      pbxt.multi_update test hangs on Windows (32 bit, debug build), but not on Linux.

      I run

      perl mysql-test-run.pl -suite=pbxt --mysqld=-default-storage-engine=pbxt multi_update

      and it's running forever, with mysqld.exe consuming 100% CPU. If I attach a debugger, I observe the following:

      mysqld.exe!_RTC_CheckEsp() C++
      > mysqld.exe!xt_p_mutex_lock(xt_mutex_struct * mx=0x02b711e0) Line 96 C++
      mysqld.exe!XTTableSeq::ts_set_op_seq(XTTabCachePage * page=0x0a491128) Line 107 + 0xc bytes C++
      mysqld.exe!XTTabCache::xt_tc_write(XTOpenFile * file=0x09944798, unsigned int ref_id=1627014, unsigned int inc=0, unsigned int size=4, unsigned char * data=0x0965e0b8, unsigned int * op_seq=0x0965e0ac, int read=1, XTThread * thread=0x02b158f0) Line 219 + 0x14 bytes C++
      mysqld.exe!xt_tab_set_row(XTOpenTable * ot=0x09855388, unsigned int status=30, unsigned int row_id=1627014, unsigned int var_rec_id=1627014) Line 3868 + 0x2d bytes C++
      mysqld.exe!xt_tab_new_record(XTOpenTable * ot=0x09855388, unsigned char * rec_buf=0x02b0dd68) Line 4388 + 0x13 bytes C++
      mysqld.exe!ha_pbxt::write_row(unsigned char * buf=0x02b0dd68) Line 2356 + 0x13 bytes C++
      mysqld.exe!handler::ha_write_row(unsigned char * buf=0x02b0dd68) Line 4630 + 0x16 bytes C++
      mysqld.exe!write_record(THD * thd=0x02a49690, st_table * table=0x02b35040, st_copy_info * info=0x02b22038) Line 1607 + 0x12 bytes C++
      mysqld.exe!select_insert::send_data(List<Item> & values=

      {...}) Line 3173 + 0x1a bytes C++
      mysqld.exe!end_send(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c4a0, bool end_of_records=false) Line 12328 + 0x25 bytes C++
      mysqld.exe!evaluate_join_record(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, int error=0) Line 11548 + 0x19 bytes C++
      mysqld.exe!sub_select(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, bool end_of_records=false) Line 11439 + 0x11 bytes C++
      mysqld.exe!do_select(JOIN * join=0x02b22090, List<Item> * fields=0x02b231f0, st_table * table=0x00000000, Procedure * procedure=0x00000000) Line 11189 + 0xf bytes C++
      mysqld.exe!JOIN::exec() Line 2231 + 0x19 bytes C++
      mysqld.exe!mysql_select(THD * thd=0x02a49690, Item * * * rref_pointer_array=0x02a4ac3c, TABLE_LIST * tables=0x02b21e20, unsigned int wild_num=0, List<Item> & fields={...}

      , Item * conds=0x00000000, unsigned int og_num=0, st_order * order=0x00000000, st_order * group=0x00000000, Item * having=0x00000000, st_order * proc_param=0x00000000, unsigned __int64 select_options=3489942016, select_result * result=0x02b22010, st_select_lex_unit * unit=0x02a4a8c8, st_select_lex * select_lex=0x02a4ab40) Line 2427 C++
      mysqld.exe!handle_select(THD * thd=0x02a49690, st_lex * lex=0x02a4a868, select_result * result=0x02b22010, unsigned long setup_tables_done_option=1073741824) Line 278 + 0x9e bytes C++
      mysqld.exe!mysql_execute_command(THD * thd=0x02a49690) Line 3239 + 0x19 bytes C++
      mysqld.exe!mysql_parse(THD * thd=0x02a49690, const char * inBuf=0x02b217a0, unsigned int length=39, const char * * found_semicolon=0x0965fd18) Line 5979 + 0x9 bytes C++
      mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x02a49690, char * packet=0x02b060e1, unsigned int packet_length=39) Line 1223 + 0x1e bytes C++
      mysqld.exe!do_command(THD * thd=0x02a49690) Line 862 + 0x1b bytes C++
      mysqld.exe!handle_one_connection(void * arg=0x02a49690) Line 1130 + 0x9 bytes C++
      mysqld.exe!pthread_start(void * param=0x02b47da8) Line 87 + 0x9 bytes C

      ----------

      kernel32.dll!7c809574()
      > mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mt=0x029f0274, timespec * abstime=0x0935fe94) Line 377 + 0x17 bytes C++
      mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029fc950, pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mutex=0x029f0274, unsigned long milli_sec=400) Line 1967 + 0x11 bytes C++
      mysqld.exe!xres_cp_wait_for_log_writer(XTThread * self=0x029fc950, XTDatabase * db=0x029c3fc8, unsigned long milli_secs=400) Line 2464 + 0x20 bytes C++
      mysqld.exe!xres_cp_main(XTThread * self=0x029fc950) Line 2495 + 0x12 bytes C++
      mysqld.exe!xres_cp_run_thread(XTThread * self=0x029fc950) Line 2568 + 0x9 bytes C++
      mysqld.exe!thr_main(void * data=0x08bffb70) Line 1022 + 0x9 bytes C++
      mysqld.exe!pthread_start(void * param=0x01c3aca8) Line 87 + 0x9 bytes C
      mysqld.exe!_callthreadstart() Line 293 + 0xf bytes C
      mysqld.exe!_threadstart(void * ptd=0x029fed68) Line 277 C
      kernel32.dll!7c80b713()

      --------------

      > mysqld.exe!xt_p_mutex_unlock(xt_mutex_struct * mx=0x0168d384) Line 103 + 0xc bytes C++
      mysqld.exe!xt_unlock_mutex(XTThread * self=0x029f7588, xt_mutex_struct * mx=0x0168d384) Line 1726 + 0x9 bytes C++
      mysqld.exe!xt_wr_wake_freeer(XTThread * self=0x029f7588) Line 837 + 0x2c bytes C++
      mysqld.exe!xt_xres_apply_in_order(XTThread * self=0x029f7588, XTWriterState * ws=0x029f7ac8, unsigned int log_id=2, unsigned __int64 log_offset=21722494, XTXactLogBuffer * record=0x02afda98) Line 1474 + 0x9 bytes C++
      mysqld.exe!xlog_wr_main(XTThread * self=0x029f7588) Line 2540 + 0x23 bytes C++
      mysqld.exe!xlog_wr_run_thread(XTThread * self=0x029f7588) Line 2583 + 0x9 bytes C++
      mysqld.exe!thr_main(void * data=0x08bffb70) Line 1022 + 0x9 bytes C++
      mysqld.exe!pthread_start(void * param=0x01c3aca8) Line 87 + 0x9 bytes C
      mysqld.exe!_callthreadstart() Line 293 + 0xf bytes C
      mysqld.exe!_threadstart(void * ptd=0x029f99a0) Line 277 C
      kernel32.dll!7c80b713()


      > mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mt=0x029e626c, timespec * abstime=0x0915fe90) Line 377 + 0x17 bytes C++
      mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029f2c50, pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mutex=0x029e626c, unsigned long milli_sec=120000) Line 1967 + 0x11 bytes C++
      mysqld.exe!dl_co_wait(XTThread * self=0x029f2c50, XTDatabase * db=0x029c3fc8, unsigned int secs=120) Line 1709 + 0x26 bytes C++
      mysqld.exe!dl_co_main(XTThread * self=0x029f2c50, int once_off=0) Line 2008 + 0xf bytes C++
      mysqld.exe!dl_run_co_thread(XTThread * self=0x029f2c50) Line 2046 + 0xb bytes C++
      mysqld.exe!thr_main(void * data=0x08bffb70) Line 1022 + 0x9 bytes C++
      mysqld.exe!pthread_start(void * param=0x01c3aca8) Line 87 + 0x9 bytes C
      mysqld.exe!_callthreadstart() Line 293 + 0xf bytes C
      mysqld.exe!_threadstart(void * ptd=0x029f5068) Line 277 C

      If I then kill mysqld.exe, I get this:

      pbxt.multi_update [ fail ]
      Test ended at 2009-10-08 01:39:52

      CURRENT_TEST: pbxt.multi_update
      mysqltest: At line 339: query 'insert into t1 select a+@d,b+@d from t1' failed: 2013: Lost connection to MySQL server during query

      I've tried several times and every time it was stuck at exactly this query.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            paulmccullagh Paul McCullagh added a comment -

            Re: pbxt.multi_update test repeatably hangs on windows
            Hi Sergey,

            Thanks for the bug report.

            It is odd that we get a hang here because the lock that is acquired by the writing thread is always released 2 lines later. Maybe it has something to do with the way mutexes are implemented on Windows, in general.

            We will try to repeat the error.

            Show
            paulmccullagh Paul McCullagh added a comment - Re: pbxt.multi_update test repeatably hangs on windows Hi Sergey, Thanks for the bug report. It is odd that we get a hang here because the lock that is acquired by the writing thread is always released 2 lines later. Maybe it has something to do with the way mutexes are implemented on Windows, in general. We will try to repeat the error.
            Hide
            mdcallag Mark Callaghan added a comment -

            Re: [Bug 445845] Re: pbxt.multi_update test repeatably hangs on windows
            On Thu, Oct 8, 2009 at 12:06 AM, Paul McCullagh
            <paul.mccullagh@primebase.org> wrote:
            > Hi Sergey,
            >
            > Thanks for the bug report.
            >
            > It is odd that we get a hang here because the lock that is acquired by
            > the writing thread is always released 2 lines later. Maybe it has
            > something to do with the way mutexes are implemented on Windows, in
            > general.
            >
            > We will try to repeat the error.

            Is this a potential problems – http://bugs.mysql.com/bug.php?id=47768
            – a bug for pthread_cond_wait on windows

            >
            > –
            > pbxt.multi_update test repeatably hangs on windows
            > https://bugs.launchpad.net/bugs/445845
            > You received this bug notification because you are a member of Maria-
            > captains, which is the registrant for Maria.
            >
            > Status in Maria: New
            > Status in PrimeBase XT: New
            >
            > Bug description:
            > pbxt.multi_update test hangs on Windows  (32 bit, debug build),  but not on Linux.
            >
            > I run
            >
            >  perl mysql-test-run.pl  -suite=pbxt --mysqld=-default-storage-engine=pbxt multi_update
            >
            > and it's running forever, with mysqld.exe consuming 100% CPU.  If I attach a debugger, I observe the following:
            >
            >        mysqld.exe!_RTC_CheckEsp()      C++
            >>       mysqld.exe!xt_p_mutex_lock(xt_mutex_struct * mx=0x02b711e0)  Line 96    C++
            >        mysqld.exe!XTTableSeq::ts_set_op_seq(XTTabCachePage * page=0x0a491128)  Line 107 + 0xc bytes    C++
            >        mysqld.exe!XTTabCache::xt_tc_write(XTOpenFile * file=0x09944798, unsigned int ref_id=1627014, unsigned int inc=0, unsigned int size=4, unsigned char * data=0x0965e0b8, unsigned int * op_seq=0x0965e0ac, int read=1, XTThread * thread=0x02b158f0)  Line 219 + 0x14 bytes      C++
            >        mysqld.exe!xt_tab_set_row(XTOpenTable * ot=0x09855388, unsigned int status=30, unsigned int row_id=1627014, unsigned int var_rec_id=1627014)  Line 3868 + 0x2d bytes    C++
            >        mysqld.exe!xt_tab_new_record(XTOpenTable * ot=0x09855388, unsigned char * rec_buf=0x02b0dd68)  Line 4388 + 0x13 bytes   C++
            >        mysqld.exe!ha_pbxt::write_row(unsigned char * buf=0x02b0dd68)  Line 2356 + 0x13 bytes   C++
            >        mysqld.exe!handler::ha_write_row(unsigned char * buf=0x02b0dd68)  Line 4630 + 0x16 bytes        C++
            >        mysqld.exe!write_record(THD * thd=0x02a49690, st_table * table=0x02b35040, st_copy_info * info=0x02b22038)  Line 1607 + 0x12 bytes      C++
            >        mysqld.exe!select_insert::send_data(List<Item> & values=

            {...})  Line 3173 + 0x1a bytes  C++
            >        mysqld.exe!end_send(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c4a0, bool end_of_records=false)  Line 12328 + 0x25 bytes    C++
            >        mysqld.exe!evaluate_join_record(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, int error=0)  Line 11548 + 0x19 bytes      C++
            >        mysqld.exe!sub_select(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, bool end_of_records=false)  Line 11439 + 0x11 bytes  C++
            >        mysqld.exe!do_select(JOIN * join=0x02b22090, List<Item> * fields=0x02b231f0, st_table * table=0x00000000, Procedure * procedure=0x00000000)  Line 11189 + 0xf bytes     C++
            >        mysqld.exe!JOIN::exec()  Line 2231 + 0x19 bytes C++
            >        mysqld.exe!mysql_select(THD * thd=0x02a49690, Item * * * rref_pointer_array=0x02a4ac3c, TABLE_LIST * tables=0x02b21e20, unsigned int wild_num=0, List<Item> & fields={...}

            , Item * conds=0x00000000, unsigned int og_num=0, st_order * order=0x00000000, st_order * group=0x00000000, Item * having=0x00000000, st_order * proc_param=0x00000000, unsigned __int64 select_options=3489942016, select_result * result=0x02b22010, st_select_lex_unit * unit=0x02a4a8c8, st_select_lex * select_lex=0x02a4ab40)  Line 2427        C++
            >        mysqld.exe!handle_select(THD * thd=0x02a49690, st_lex * lex=0x02a4a868, select_result * result=0x02b22010, unsigned long setup_tables_done_option=1073741824)  Line 278 + 0x9e bytes    C++
            >        mysqld.exe!mysql_execute_command(THD * thd=0x02a49690)  Line 3239 + 0x19 bytes  C++
            >        mysqld.exe!mysql_parse(THD * thd=0x02a49690, const char * inBuf=0x02b217a0, unsigned int length=39, const char * * found_semicolon=0x0965fd18)  Line 5979 + 0x9 bytes   C++
            >        mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x02a49690, char * packet=0x02b060e1, unsigned int packet_length=39)  Line 1223 + 0x1e bytes       C++
            >        mysqld.exe!do_command(THD * thd=0x02a49690)  Line 862 + 0x1b bytes      C++
            >        mysqld.exe!handle_one_connection(void * arg=0x02a49690)  Line 1130 + 0x9 bytes  C++
            >        mysqld.exe!pthread_start(void * param=0x02b47da8)  Line 87 + 0x9 bytes  C
            >
            > ----------
            >
            >        kernel32.dll!7c809574()
            >>       mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mt=0x029f0274, timespec * abstime=0x0935fe94)  Line 377 + 0x17 bytes C++
            >        mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029fc950, pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mutex=0x029f0274, unsigned long milli_sec=400)  Line 1967 + 0x11 bytes    C++
            >        mysqld.exe!xres_cp_wait_for_log_writer(XTThread * self=0x029fc950, XTDatabase * db=0x029c3fc8, unsigned long milli_secs=400)  Line 2464 + 0x20 bytes    C++
            >        mysqld.exe!xres_cp_main(XTThread * self=0x029fc950)  Line 2495 + 0x12 bytes     C++
            >        mysqld.exe!xres_cp_run_thread(XTThread * self=0x029fc950)  Line 2568 + 0x9 bytes        C++
            >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++
            >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C
            >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C
            >        mysqld.exe!_threadstart(void * ptd=0x029fed68)  Line 277        C
            >        kernel32.dll!7c80b713()
            >
            > --------------
            >
            >>       mysqld.exe!xt_p_mutex_unlock(xt_mutex_struct * mx=0x0168d384)  Line 103 + 0xc bytes     C++
            >        mysqld.exe!xt_unlock_mutex(XTThread * self=0x029f7588, xt_mutex_struct * mx=0x0168d384)  Line 1726 + 0x9 bytes  C++
            >        mysqld.exe!xt_wr_wake_freeer(XTThread * self=0x029f7588)  Line 837 + 0x2c bytes C++
            >        mysqld.exe!xt_xres_apply_in_order(XTThread * self=0x029f7588, XTWriterState * ws=0x029f7ac8, unsigned int log_id=2, unsigned __int64 log_offset=21722494, XTXactLogBuffer * record=0x02afda98)  Line 1474 + 0x9 bytes   C++
            >        mysqld.exe!xlog_wr_main(XTThread * self=0x029f7588)  Line 2540 + 0x23 bytes     C++
            >        mysqld.exe!xlog_wr_run_thread(XTThread * self=0x029f7588)  Line 2583 + 0x9 bytes        C++
            >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++
            >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C
            >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C
            >        mysqld.exe!_threadstart(void * ptd=0x029f99a0)  Line 277        C
            >        kernel32.dll!7c80b713()
            > ----
            >>       mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mt=0x029e626c, timespec * abstime=0x0915fe90)  Line 377 + 0x17 bytes C++
            >        mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029f2c50, pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mutex=0x029e626c, unsigned long milli_sec=120000)  Line 1967 + 0x11 bytes C++
            >        mysqld.exe!dl_co_wait(XTThread * self=0x029f2c50, XTDatabase * db=0x029c3fc8, unsigned int secs=120)  Line 1709 + 0x26 bytes    C++
            >        mysqld.exe!dl_co_main(XTThread * self=0x029f2c50, int once_off=0)  Line 2008 + 0xf bytes        C++
            >        mysqld.exe!dl_run_co_thread(XTThread * self=0x029f2c50)  Line 2046 + 0xb bytes  C++
            >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++
            >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C
            >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C
            >        mysqld.exe!_threadstart(void * ptd=0x029f5068)  Line 277        C
            >
            >
            > If I then kill mysqld.exe, I get this:
            >
            > pbxt.multi_update                        [ fail ]
            >        Test ended at 2009-10-08 01:39:52
            >
            > CURRENT_TEST: pbxt.multi_update
            > mysqltest: At line 339: query 'insert into t1 select a+@d,b+@d from t1' failed: 2013: Lost connection to MySQL server during query
            >
            > I've tried several times and every time it was stuck at exactly this query.
            >


            Mark Callaghan
            mdcallag@gmail.com

            Show
            mdcallag Mark Callaghan added a comment - Re: [Bug 445845] Re: pbxt.multi_update test repeatably hangs on windows On Thu, Oct 8, 2009 at 12:06 AM, Paul McCullagh <paul.mccullagh@primebase.org> wrote: > Hi Sergey, > > Thanks for the bug report. > > It is odd that we get a hang here because the lock that is acquired by > the writing thread is always released 2 lines later. Maybe it has > something to do with the way mutexes are implemented on Windows, in > general. > > We will try to repeat the error. Is this a potential problems – http://bugs.mysql.com/bug.php?id=47768 – a bug for pthread_cond_wait on windows > > – > pbxt.multi_update test repeatably hangs on windows > https://bugs.launchpad.net/bugs/445845 > You received this bug notification because you are a member of Maria- > captains, which is the registrant for Maria. > > Status in Maria: New > Status in PrimeBase XT: New > > Bug description: > pbxt.multi_update test hangs on Windows  (32 bit, debug build),  but not on Linux. > > I run > >  perl mysql-test-run.pl  - suite=pbxt --mysqld= -default-storage-engine=pbxt multi_update > > and it's running forever, with mysqld.exe consuming 100% CPU.  If I attach a debugger, I observe the following: > >        mysqld.exe!_RTC_CheckEsp()      C++ >>       mysqld.exe!xt_p_mutex_lock(xt_mutex_struct * mx=0x02b711e0)  Line 96    C++ >        mysqld.exe!XTTableSeq::ts_set_op_seq(XTTabCachePage * page=0x0a491128)  Line 107 + 0xc bytes    C++ >        mysqld.exe!XTTabCache::xt_tc_write(XTOpenFile * file=0x09944798, unsigned int ref_id=1627014, unsigned int inc=0, unsigned int size=4, unsigned char * data=0x0965e0b8, unsigned int * op_seq=0x0965e0ac, int read=1, XTThread * thread=0x02b158f0)  Line 219 + 0x14 bytes      C++ >        mysqld.exe!xt_tab_set_row(XTOpenTable * ot=0x09855388, unsigned int status=30, unsigned int row_id=1627014, unsigned int var_rec_id=1627014)  Line 3868 + 0x2d bytes    C++ >        mysqld.exe!xt_tab_new_record(XTOpenTable * ot=0x09855388, unsigned char * rec_buf=0x02b0dd68)  Line 4388 + 0x13 bytes   C++ >        mysqld.exe!ha_pbxt::write_row(unsigned char * buf=0x02b0dd68)  Line 2356 + 0x13 bytes   C++ >        mysqld.exe!handler::ha_write_row(unsigned char * buf=0x02b0dd68)  Line 4630 + 0x16 bytes        C++ >        mysqld.exe!write_record(THD * thd=0x02a49690, st_table * table=0x02b35040, st_copy_info * info=0x02b22038)  Line 1607 + 0x12 bytes      C++ >        mysqld.exe!select_insert::send_data(List<Item> & values= {...})  Line 3173 + 0x1a bytes  C++ >        mysqld.exe!end_send(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c4a0, bool end_of_records=false)  Line 12328 + 0x25 bytes    C++ >        mysqld.exe!evaluate_join_record(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, int error=0)  Line 11548 + 0x19 bytes      C++ >        mysqld.exe!sub_select(JOIN * join=0x02b22090, st_join_table * join_tab=0x02b6c310, bool end_of_records=false)  Line 11439 + 0x11 bytes  C++ >        mysqld.exe!do_select(JOIN * join=0x02b22090, List<Item> * fields=0x02b231f0, st_table * table=0x00000000, Procedure * procedure=0x00000000)  Line 11189 + 0xf bytes     C++ >        mysqld.exe!JOIN::exec()  Line 2231 + 0x19 bytes C++ >        mysqld.exe!mysql_select(THD * thd=0x02a49690, Item * * * rref_pointer_array=0x02a4ac3c, TABLE_LIST * tables=0x02b21e20, unsigned int wild_num=0, List<Item> & fields={...} , Item * conds=0x00000000, unsigned int og_num=0, st_order * order=0x00000000, st_order * group=0x00000000, Item * having=0x00000000, st_order * proc_param=0x00000000, unsigned __int64 select_options=3489942016, select_result * result=0x02b22010, st_select_lex_unit * unit=0x02a4a8c8, st_select_lex * select_lex=0x02a4ab40)  Line 2427        C++ >        mysqld.exe!handle_select(THD * thd=0x02a49690, st_lex * lex=0x02a4a868, select_result * result=0x02b22010, unsigned long setup_tables_done_option=1073741824)  Line 278 + 0x9e bytes    C++ >        mysqld.exe!mysql_execute_command(THD * thd=0x02a49690)  Line 3239 + 0x19 bytes  C++ >        mysqld.exe!mysql_parse(THD * thd=0x02a49690, const char * inBuf=0x02b217a0, unsigned int length=39, const char * * found_semicolon=0x0965fd18)  Line 5979 + 0x9 bytes   C++ >        mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x02a49690, char * packet=0x02b060e1, unsigned int packet_length=39)  Line 1223 + 0x1e bytes       C++ >        mysqld.exe!do_command(THD * thd=0x02a49690)  Line 862 + 0x1b bytes      C++ >        mysqld.exe!handle_one_connection(void * arg=0x02a49690)  Line 1130 + 0x9 bytes  C++ >        mysqld.exe!pthread_start(void * param=0x02b47da8)  Line 87 + 0x9 bytes  C > > ---------- > >        kernel32.dll!7c809574() >>       mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mt=0x029f0274, timespec * abstime=0x0935fe94)  Line 377 + 0x17 bytes C++ >        mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029fc950, pthread_cond_t * cond=0x029f0298, xt_mutex_struct * mutex=0x029f0274, unsigned long milli_sec=400)  Line 1967 + 0x11 bytes    C++ >        mysqld.exe!xres_cp_wait_for_log_writer(XTThread * self=0x029fc950, XTDatabase * db=0x029c3fc8, unsigned long milli_secs=400)  Line 2464 + 0x20 bytes    C++ >        mysqld.exe!xres_cp_main(XTThread * self=0x029fc950)  Line 2495 + 0x12 bytes     C++ >        mysqld.exe!xres_cp_run_thread(XTThread * self=0x029fc950)  Line 2568 + 0x9 bytes        C++ >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++ >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C >        mysqld.exe!_threadstart(void * ptd=0x029fed68)  Line 277        C >        kernel32.dll!7c80b713() > > -------------- > >>       mysqld.exe!xt_p_mutex_unlock(xt_mutex_struct * mx=0x0168d384)  Line 103 + 0xc bytes     C++ >        mysqld.exe!xt_unlock_mutex(XTThread * self=0x029f7588, xt_mutex_struct * mx=0x0168d384)  Line 1726 + 0x9 bytes  C++ >        mysqld.exe!xt_wr_wake_freeer(XTThread * self=0x029f7588)  Line 837 + 0x2c bytes C++ >        mysqld.exe!xt_xres_apply_in_order(XTThread * self=0x029f7588, XTWriterState * ws=0x029f7ac8, unsigned int log_id=2, unsigned __int64 log_offset=21722494, XTXactLogBuffer * record=0x02afda98)  Line 1474 + 0x9 bytes   C++ >        mysqld.exe!xlog_wr_main(XTThread * self=0x029f7588)  Line 2540 + 0x23 bytes     C++ >        mysqld.exe!xlog_wr_run_thread(XTThread * self=0x029f7588)  Line 2583 + 0x9 bytes        C++ >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++ >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C >        mysqld.exe!_threadstart(void * ptd=0x029f99a0)  Line 277        C >        kernel32.dll!7c80b713() > ---- >>       mysqld.exe!xt_p_cond_timedwait(pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mt=0x029e626c, timespec * abstime=0x0915fe90)  Line 377 + 0x17 bytes C++ >        mysqld.exe!xt_timed_wait_cond(XTThread * self=0x029f2c50, pthread_cond_t * cond=0x029e6290, xt_mutex_struct * mutex=0x029e626c, unsigned long milli_sec=120000)  Line 1967 + 0x11 bytes C++ >        mysqld.exe!dl_co_wait(XTThread * self=0x029f2c50, XTDatabase * db=0x029c3fc8, unsigned int secs=120)  Line 1709 + 0x26 bytes    C++ >        mysqld.exe!dl_co_main(XTThread * self=0x029f2c50, int once_off=0)  Line 2008 + 0xf bytes        C++ >        mysqld.exe!dl_run_co_thread(XTThread * self=0x029f2c50)  Line 2046 + 0xb bytes  C++ >        mysqld.exe!thr_main(void * data=0x08bffb70)  Line 1022 + 0x9 bytes      C++ >        mysqld.exe!pthread_start(void * param=0x01c3aca8)  Line 87 + 0x9 bytes  C >        mysqld.exe!_callthreadstart()  Line 293 + 0xf bytes     C >        mysqld.exe!_threadstart(void * ptd=0x029f5068)  Line 277        C > > > If I then kill mysqld.exe, I get this: > > pbxt.multi_update                        [ fail ] >        Test ended at 2009-10-08 01:39:52 > > CURRENT_TEST: pbxt.multi_update > mysqltest: At line 339: query 'insert into t1 select a+@d,b+@d from t1' failed: 2013: Lost connection to MySQL server during query > > I've tried several times and every time it was stuck at exactly this query. > – Mark Callaghan mdcallag@gmail.com
            Hide
            vladimirkolesnikov Vladimir Kolesnikov added a comment -

            Re: pbxt.multi_update test repeatably hangs on windows
            Hi Mark,

            thanks for your input. We have resolved this issue. It is not related to the problem you mentioned. The test-case was just timing out. Tuning test parameters to allow longer test time allows the test to finish successfully.

            Show
            vladimirkolesnikov Vladimir Kolesnikov added a comment - Re: pbxt.multi_update test repeatably hangs on windows Hi Mark, thanks for your input. We have resolved this issue. It is not related to the problem you mentioned. The test-case was just timing out. Tuning test parameters to allow longer test time allows the test to finish successfully.
            Hide
            paulmccullagh Paul McCullagh added a comment -

            Re: pbxt.multi_update test repeatably hangs on windows
            Thanks Mark and Vlad for the input.

            But this does indicate to me that we can improve performance here.

            We should probably replace the mutex used in this case with a spin lock.

            Show
            paulmccullagh Paul McCullagh added a comment - Re: pbxt.multi_update test repeatably hangs on windows Thanks Mark and Vlad for the input. But this does indicate to me that we can improve performance here. We should probably replace the mutex used in this case with a spin lock.
            Hide
            vladimirkolesnikov Vladimir Kolesnikov added a comment -

            Re: pbxt.multi_update test repeatably hangs on windows
            Paul,

            The test was performed on a single-core machine so I'm not sure how useful spin-locking would be...

            Show
            vladimirkolesnikov Vladimir Kolesnikov added a comment - Re: pbxt.multi_update test repeatably hangs on windows Paul, The test was performed on a single-core machine so I'm not sure how useful spin-locking would be...
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 445845

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 445845

              People

              • Assignee:
                Unassigned
                Reporter:
                psergey Sergei Petrunia
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: