Comment 8 for bug 1646100

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Re: Server becomes unresponsive during flushing after loading big files through LOAD DATA INFILE

Yves, my PMP analysis is missing some piece of puzzle that you have found above.

What I see is

    Global_THD_manager::add_thd threads try to lock LOCK_thd_list (but
    don't appear to hold anything relevant)
    THD::release_resources threads try to lock LOCK_status (but don't
    appear to hold anything relevant)

    Thread 2266: tries to lock thd->LOCK_thd_data
       has LOCK_thd_list and LOCK_index
    Thread 1984: tries to lock LOCK_log
       has LOCK_status
    Thread 357: tries to lock LOCK_index
       has LOCK_log

    dep graph: 1984 -> 357 -> 2266

I'm missing the thread(s) that complete the deadlock loop here: tries to lock LOCK_status and has LOCK_thd_data.

At the same time, I see the following in the PMP aggregation

      1 __lll_lock_wait(libpthread.so.0),_L_lock_791(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),native_mutex_lock(thr_mutex.h:84),my_mutex_lock(thr_mutex.h:84),inline_mysql_mutex_lock(thr_mutex.h:84),MYSQL_BIN_LOG::change_stage(thr_mutex.h:84),MYSQL_BIN_LOG::ordered_commit(binlog.cc:9150),MYSQL_BIN_LOG::commit(binlog.cc:8426),ha_commit_trans(handler.cc:1818),trans_commit_stmt(transaction.cc:458),mysql_execute_command(sql_parse.cc:5241),Prepared_statement::execute(sql_prepare.cc:4281),Prepared_statement::execute_loop(sql_prepare.cc:3889),mysqld_stmt_execute(sql_prepare.cc:2679),dispatch_command(sql_parse.cc:1381),do_command(sql_parse.cc:1010),handle_connection(connection_handler_per_thread.cc:312),pfs_spawn_thread(pfs.cc:2188),start_thread(libpthread.so.0),clone(libc.so.6)

Which I fail to find in the raw PMP.

Can you help?