Dump of assembler code for function _ZN11ha_innobase8info_lowEjb: /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14704 { 0x0000000000ccc440 <+0>: 55 push %rbp 0x0000000000ccc441 <+1>: 48 89 e5 mov %rsp,%rbp 0x0000000000ccc444 <+4>: 41 57 push %r15 0x0000000000ccc446 <+6>: 41 56 push %r14 0x0000000000ccc448 <+8>: 41 55 push %r13 0x0000000000ccc44a <+10>: 41 89 d5 mov %edx,%r13d 0x0000000000ccc44d <+13>: 41 54 push %r12 0x0000000000ccc44f <+15>: 53 push %rbx 0x0000000000ccc450 <+16>: 48 89 fb mov %rdi,%rbx 0x0000000000ccc453 <+19>: 48 81 ec 38 12 00 00 sub $0x1238,%rsp 0x0000000000ccc45a <+26>: 89 b5 cc ed ff ff mov %esi,-0x1234(%rbp) 0x0000000000ccc460 <+32>: 64 48 8b 04 25 28 00 00 00 mov %fs:0x28,%rax 0x0000000000ccc469 <+41>: 48 89 45 c8 mov %rax,-0x38(%rbp) 0x0000000000ccc46d <+45>: 31 c0 xor %eax,%eax 14705 dict_table_t* ib_table; 14706 ib_uint64_t n_rows; 14707 char path[FN_REFLEN]; 14708 os_file_stat_t stat_info; 14709 14710 DBUG_ENTER("info"); 14711 14712 DEBUG_SYNC_C("ha_innobase_info_low"); 14713 14714 /* If we are forcing recovery at a high level, we will suppress 14715 statistics calculation on tables, because that may crash the 14716 server if an index is badly corrupted. */ 14717 14718 /* We do not know if MySQL can call this function before calling 14719 external_lock(). To be safe, update the thd of the current table 14720 handle. */ 14721 14722 update_thd(ha_thd()); 0x0000000000ccc46f <+47>: e8 ac 00 d1 ff call 0x9dc520 <_ZNK7handler6ha_thdEv> 1920 return reinterpret_cast(thd_get_ha_data(thd, innodb_hton_ptr)); 0x0000000000ccc474 <+52>: 48 8b 35 c5 0a 63 01 mov 0x1630ac5(%rip),%rsi # 0x22fcf40 0x0000000000ccc47b <+59>: 48 89 c7 mov %rax,%rdi 14705 dict_table_t* ib_table; 14706 ib_uint64_t n_rows; 14707 char path[FN_REFLEN]; 14708 os_file_stat_t stat_info; 14709 14710 DBUG_ENTER("info"); 14711 14712 DEBUG_SYNC_C("ha_innobase_info_low"); 14713 14714 /* If we are forcing recovery at a high level, we will suppress 14715 statistics calculation on tables, because that may crash the 14716 server if an index is badly corrupted. */ 14717 14718 /* We do not know if MySQL can call this function before calling 14719 external_lock(). To be safe, update the thd of the current table 14720 handle. */ 14721 14722 update_thd(ha_thd()); 0x0000000000ccc47e <+62>: 49 89 c6 mov %rax,%r14 1920 return reinterpret_cast(thd_get_ha_data(thd, innodb_hton_ptr)); 0x0000000000ccc481 <+65>: e8 ea 33 a9 ff call 0x75f870 2906 2907 DBUG_RETURN(trx); 2908 } 2909 2910 /*********************************************************************//** 2911 Gets the InnoDB transaction handle for a MySQL handler object, creates 2912 an InnoDB transaction struct if the corresponding MySQL thread struct still 2913 lacks one. 2914 @return InnoDB transaction handle */ 2915 static inline 2916 trx_t* 2917 check_trx_exists( 2918 /*=============*/ 2919 THD* thd) /*!< in: user thread handle */ 2920 { 2921 if (trx_t* trx = thd_to_trx(thd)) { 0x0000000000ccc486 <+70>: 48 85 c0 test %rax,%rax 1920 return reinterpret_cast(thd_get_ha_data(thd, innodb_hton_ptr)); 0x0000000000ccc489 <+73>: 49 89 c4 mov %rax,%r12 2906 2907 DBUG_RETURN(trx); 2908 } 2909 2910 /*********************************************************************//** 2911 Gets the InnoDB transaction handle for a MySQL handler object, creates 2912 an InnoDB transaction struct if the corresponding MySQL thread struct still 2913 lacks one. 2914 @return InnoDB transaction handle */ 2915 static inline 2916 trx_t* 2917 check_trx_exists( 2918 /*=============*/ 2919 THD* thd) /*!< in: user thread handle */ 2920 { 2921 if (trx_t* trx = thd_to_trx(thd)) { 0x0000000000ccc48c <+76>: 0f 84 11 0b 00 00 je 0xcccfa3 <_ZN11ha_innobase8info_lowEjb+2915> 2922 ut_a(trx->magic_n == TRX_MAGIC_N); 0x0000000000ccc492 <+82>: 48 81 b8 90 0a 00 00 06 5c 6e 05 cmpq $0x56e5c06,0xa90(%rax) 0x0000000000ccc49d <+93>: 0f 85 d5 0d 00 00 jne 0xccd278 <_ZN11ha_innobase8info_lowEjb+3640> 2873 (void) THDVAR(thd, lock_wait_timeout); 0x0000000000ccc4a3 <+99>: 8b 35 ff a8 d0 00 mov 0xd0a8ff(%rip),%esi # 0x19d6da8 <_ZL30mysql_sysvar_lock_wait_timeout+40> 0x0000000000ccc4a9 <+105>: 4c 89 f7 mov %r14,%rdi 0x0000000000ccc4ac <+108>: ff 15 0e a9 d0 00 call *0xd0a90e(%rip) # 0x19d6dc0 <_ZL30mysql_sysvar_lock_wait_timeout+64> 2874 2875 trx->check_foreigns = !thd_test_options( 2876 thd, OPTION_NO_FOREIGN_KEY_CHECKS); 0x0000000000ccc4b2 <+114>: be 00 00 00 04 mov $0x4000000,%esi 0x0000000000ccc4b7 <+119>: 4c 89 f7 mov %r14,%rdi 0x0000000000ccc4ba <+122>: e8 d1 34 a9 ff call 0x75f990 0x0000000000ccc4bf <+127>: 48 85 c0 test %rax,%rax 2877 2878 trx->check_unique_secondary = !thd_test_options( 2879 thd, OPTION_RELAXED_UNIQUE_CHECKS); 0x0000000000ccc4c2 <+130>: be 00 00 00 08 mov $0x8000000,%esi 0x0000000000ccc4c7 <+135>: 4c 89 f7 mov %r14,%rdi 2876 thd, OPTION_NO_FOREIGN_KEY_CHECKS); 0x0000000000ccc4ca <+138>: 41 0f 94 84 24 a4 08 00 00 sete 0x8a4(%r12) 2877 2878 trx->check_unique_secondary = !thd_test_options( 2879 thd, OPTION_RELAXED_UNIQUE_CHECKS); 0x0000000000ccc4d3 <+147>: e8 b8 34 a9 ff call 0x75f990 0x0000000000ccc4d8 <+152>: 48 85 c0 test %rax,%rax 2880 #ifdef WITH_WSREP 2881 trx->wsrep = wsrep_on(thd); 0x0000000000ccc4db <+155>: 4c 89 f7 mov %r14,%rdi 2879 thd, OPTION_RELAXED_UNIQUE_CHECKS); 0x0000000000ccc4de <+158>: 41 0f 94 84 24 a8 08 00 00 sete 0x8a8(%r12) 2880 #ifdef WITH_WSREP 2881 trx->wsrep = wsrep_on(thd); 0x0000000000ccc4e7 <+167>: e8 e4 45 fd ff call 0xca0ad0 0x0000000000ccc4ec <+172>: 41 88 84 24 40 08 00 00 mov %al,0x840(%r12) 2928 return trx; 2929 } 2930 } 2931 2932 /** 2933 Gets current trx. 2934 2935 This function may be called during InnoDB initialisation, when 2936 innodb_hton_ptr->slot is not yet set to meaningful value. 2937 */ 2938 2939 trx_t *current_trx() 2940 { 2941 THD *thd=current_thd; 2942 if (likely(thd != 0) && innodb_hton_ptr->slot != HA_SLOT_UNDEF) { 2943 return thd_to_trx(thd); 2944 } else { 2945 return(NULL); 2946 } 2947 } 2948 2949 /*********************************************************************//** 2950 Note that a transaction has been registered with MySQL. 2951 @return true if transaction is registered with MySQL 2PC coordinator */ 2952 static inline 2953 bool 2954 trx_is_registered_for_2pc( 2955 /*======================*/ 2956 const trx_t* trx) /* in: transaction */ 2957 { 2958 return(trx->is_registered == 1); 2959 } 2960 2961 /*********************************************************************//** 2962 Note that a transaction has been deregistered. */ 2963 static inline 2964 void 2965 trx_deregister_from_2pc( 2966 /*====================*/ 2967 trx_t* trx) /* in: transaction */ 2968 { 2969 trx->is_registered= false; 2970 trx->active_commit_ordered= false; 2971 } 2972 2973 /*********************************************************************//** 2974 Copy table flags from MySQL's HA_CREATE_INFO into an InnoDB table object. 2975 Those flags are stored in .frm file and end up in the MySQL table object, 2976 but are frequently used inside InnoDB so we keep their copies into the 2977 InnoDB table object. */ 2978 static 2979 void 2980 innobase_copy_frm_flags_from_create_info( 2981 /*=====================================*/ 2982 dict_table_t* innodb_table, /*!< in/out: InnoDB table */ 2983 const HA_CREATE_INFO* create_info) /*!< in: create info */ 2984 { 2985 ibool ps_on; 2986 ibool ps_off; 2987 2988 if (innodb_table->is_temporary() 2989 || innodb_table->no_rollback()) { 2990 /* Temp tables do not use persistent stats. */ 2991 ps_on = FALSE; 2992 ps_off = TRUE; 2993 } else { 2994 ps_on = create_info->table_options 2995 & HA_OPTION_STATS_PERSISTENT; 2996 ps_off = create_info->table_options 2997 & HA_OPTION_NO_STATS_PERSISTENT; 2998 } 2999 3000 dict_stats_set_persistent(innodb_table, ps_on, ps_off); 3001 3002 dict_stats_auto_recalc_set( 3003 innodb_table, 3004 create_info->stats_auto_recalc == HA_STATS_AUTO_RECALC_ON, 3005 create_info->stats_auto_recalc == HA_STATS_AUTO_RECALC_OFF); 3006 3007 innodb_table->stats_sample_pages = create_info->stats_sample_pages; 3008 } 3009 3010 /*********************************************************************//** 3011 Copy table flags from MySQL's TABLE_SHARE into an InnoDB table object. 3012 Those flags are stored in .frm file and end up in the MySQL table object, 3013 but are frequently used inside InnoDB so we keep their copies into the 3014 InnoDB table object. */ 3015 void 3016 innobase_copy_frm_flags_from_table_share( 3017 /*=====================================*/ 3018 dict_table_t* innodb_table, /*!< in/out: InnoDB table */ 3019 const TABLE_SHARE* table_share) /*!< in: table share */ 3020 { 3021 ibool ps_on; 3022 ibool ps_off; 3023 3024 if (innodb_table->is_temporary()) { 3025 /* Temp tables do not use persistent stats */ 3026 ps_on = FALSE; 3027 ps_off = TRUE; 3028 } else { 3029 ps_on = table_share->db_create_options 3030 & HA_OPTION_STATS_PERSISTENT; 3031 ps_off = table_share->db_create_options 3032 & HA_OPTION_NO_STATS_PERSISTENT; 3033 } 3034 3035 dict_stats_set_persistent(innodb_table, ps_on, ps_off); 3036 3037 dict_stats_auto_recalc_set( 3038 innodb_table, 3039 table_share->stats_auto_recalc == HA_STATS_AUTO_RECALC_ON, 3040 table_share->stats_auto_recalc == HA_STATS_AUTO_RECALC_OFF); 3041 3042 innodb_table->stats_sample_pages = table_share->stats_sample_pages; 3043 } 3044 3045 /*********************************************************************//** 3046 Construct ha_innobase handler. */ 3047 3048 ha_innobase::ha_innobase( 3049 /*=====================*/ 3050 handlerton* hton, 3051 TABLE_SHARE* table_arg) 3052 :handler(hton, table_arg), 3053 m_prebuilt(), 3054 m_user_thd(), 3055 m_int_table_flags(HA_REC_NOT_IN_SEQ 3056 | HA_NULL_IN_KEY 3057 | HA_CAN_VIRTUAL_COLUMNS 3058 | HA_CAN_INDEX_BLOBS 3059 | HA_CAN_SQL_HANDLER 3060 | HA_REQUIRES_KEY_COLUMNS_FOR_DELETE 3061 | HA_PRIMARY_KEY_REQUIRED_FOR_POSITION 3062 | HA_PRIMARY_KEY_IN_READ_INDEX 3063 | HA_BINLOG_ROW_CAPABLE 3064 | HA_CAN_GEOMETRY 3065 | HA_PARTIAL_COLUMN_READ 3066 | HA_TABLE_SCAN_ON_INDEX 3067 | HA_CAN_FULLTEXT 3068 | HA_CAN_FULLTEXT_EXT 3069 /* JAN: TODO: MySQL 5.7 3070 | HA_CAN_FULLTEXT_HINTS 3071 */ 3072 | HA_CAN_EXPORT 3073 | HA_ONLINE_ANALYZE 3074 | HA_CAN_RTREEKEYS 3075 | HA_CAN_TABLES_WITHOUT_ROLLBACK 3076 | HA_CAN_ONLINE_BACKUPS 3077 | HA_CONCURRENT_OPTIMIZE 3078 | HA_CAN_SKIP_LOCKED 3079 | (srv_force_primary_key ? HA_REQUIRE_PRIMARY_KEY : 0) 3080 ), 3081 m_start_of_scan(), 3082 m_mysql_has_locked() 3083 {} 3084 3085 /*********************************************************************//** 3086 Destruct ha_innobase handler. */ 3087 3088 ha_innobase::~ha_innobase() 3089 /*======================*/ 3090 { 3091 } 3092 3093 /*********************************************************************//** 3094 Updates the user_thd field in a handle and also allocates a new InnoDB 3095 transaction handle if needed, and updates the transaction fields in the 3096 m_prebuilt struct. */ 3097 void 3098 ha_innobase::update_thd( 3099 /*====================*/ 3100 THD* thd) /*!< in: thd to use the handle */ 3101 { 3102 DBUG_ENTER("ha_innobase::update_thd"); 3103 DBUG_PRINT("ha_innobase::update_thd", ("user_thd: %p -> %p", 3104 m_user_thd, thd)); 3105 3106 /* The table should have been opened in ha_innobase::open(). */ 3107 DBUG_ASSERT(m_prebuilt->table->get_ref_count() > 0); 3108 3109 trx_t* trx = check_trx_exists(thd); 3110 3111 ut_ad(!trx->dict_operation_lock_mode); 3112 ut_ad(!trx->dict_operation); 3113 3114 if (m_prebuilt->trx != trx) { 0x0000000000ccc4f4 <+180>: 48 8b bb 80 07 00 00 mov 0x780(%rbx),%rdi 0x0000000000ccc4fb <+187>: 4c 39 67 18 cmp %r12,0x18(%rdi) 0x0000000000ccc4ff <+191>: 74 0f je 0xccc510 <_ZN11ha_innobase8info_lowEjb+208> 3115 3116 row_update_prebuilt_trx(m_prebuilt, trx); 0x0000000000ccc501 <+193>: 4c 89 e6 mov %r12,%rsi 0x0000000000ccc504 <+196>: e8 87 12 0c 00 call 0xd8d790 <_Z23row_update_prebuilt_trxP14row_prebuilt_tP5trx_t> 0x0000000000ccc509 <+201>: 48 8b bb 80 07 00 00 mov 0x780(%rbx),%rdi 3117 } 3118 3119 m_user_thd = thd; 0x0000000000ccc510 <+208>: 4c 89 b3 88 07 00 00 mov %r14,0x788(%rbx) 14723 14724 m_prebuilt->trx->op_info = "returning various info to MariaDB"; 0x0000000000ccc517 <+215>: 48 8b 47 18 mov 0x18(%rdi),%rax 0x0000000000ccc51b <+219>: 48 8d 15 9e 24 52 00 lea 0x52249e(%rip),%rdx # 0x11ee9c0 0x0000000000ccc522 <+226>: 48 89 90 98 08 00 00 mov %rdx,0x898(%rax) 14725 14726 ib_table = m_prebuilt->table; 0x0000000000ccc529 <+233>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc530 <+240>: 4c 8b 78 08 mov 0x8(%rax),%r15 14727 DBUG_ASSERT(ib_table->get_ref_count() > 0); 14728 14729 if (!ib_table->is_readable()) { 0x0000000000ccc534 <+244>: 41 f6 47 42 40 testb $0x40,0x42(%r15) 0x0000000000ccc539 <+249>: 0f 85 a7 0c 00 00 jne 0xccd1e6 <_ZN11ha_innobase8info_lowEjb+3494> 14735 ib_table->stats_mutex_unlock(); 14736 } 14737 14738 if (flag & HA_STATUS_TIME) { 0x0000000000ccc53f <+255>: f6 85 cc ed ff ff 04 testb $0x4,-0x1234(%rbp) 0x0000000000ccc546 <+262>: 0f 84 8d 00 00 00 je 0xccc5d9 <_ZN11ha_innobase8info_lowEjb+409> 14739 if (is_analyze || innobase_stats_on_metadata) { 0x0000000000ccc54c <+268>: 45 84 ed test %r13b,%r13b 0x0000000000ccc54f <+271>: 0f 84 c6 04 00 00 je 0xccca1b <_ZN11ha_innobase8info_lowEjb+1499> 14740 14741 dict_stats_upd_option_t opt; 14742 dberr_t ret; 14743 14744 m_prebuilt->trx->op_info = "updating table statistics"; 0x0000000000ccc555 <+277>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc55c <+284>: 48 8d 15 a0 72 52 00 lea 0x5272a0(%rip),%rdx # 0x11f3803 0x0000000000ccc563 <+291>: 48 8b 40 18 mov 0x18(%rax),%rax 0x0000000000ccc567 <+295>: 48 89 90 98 08 00 00 mov %rdx,0x898(%rax) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0stats.inl: 84 ib_uint32_t stat_persistent = table->stat_persistent; 0x0000000000ccc56e <+302>: 41 8b 87 b0 01 00 00 mov 0x1b0(%r15),%eax 85 86 if (stat_persistent & DICT_STATS_PERSISTENT_ON) { 0x0000000000ccc575 <+309>: a8 02 test $0x2,%al 0x0000000000ccc577 <+311>: 0f 85 60 09 00 00 jne 0xcccedd <_ZN11ha_innobase8info_lowEjb+2717> 87 ut_ad(!(stat_persistent & DICT_STATS_PERSISTENT_OFF)); 88 return(true); 89 } else if (stat_persistent & DICT_STATS_PERSISTENT_OFF) { 0x0000000000ccc57d <+317>: a8 04 test $0x4,%al /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14759 opt = DICT_STATS_RECALC_TRANSIENT; 0x0000000000ccc57f <+319>: 41 bc 01 00 00 00 mov $0x1,%r12d /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0stats.inl: 89 } else if (stat_persistent & DICT_STATS_PERSISTENT_OFF) { 0x0000000000ccc585 <+325>: 0f 84 42 09 00 00 je 0xcccecd <_ZN11ha_innobase8info_lowEjb+2701> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14762 ret = dict_stats_update(ib_table, opt); 0x0000000000ccc58b <+331>: 44 89 e6 mov %r12d,%esi 0x0000000000ccc58e <+334>: 4c 89 ff mov %r15,%rdi 0x0000000000ccc591 <+337>: e8 3a f9 1b 00 call 0xe8bed0 <_Z17dict_stats_updateP12dict_table_t23dict_stats_upd_option_t> 14763 14764 if (ret != DB_SUCCESS) { 0x0000000000ccc596 <+342>: 85 c0 test %eax,%eax 14765 m_prebuilt->trx->op_info = ""; 0x0000000000ccc598 <+344>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc59f <+351>: 48 8b 40 18 mov 0x18(%rax),%rax 14764 if (ret != DB_SUCCESS) { 0x0000000000ccc5a3 <+355>: 74 18 je 0xccc5bd <_ZN11ha_innobase8info_lowEjb+381> 14765 m_prebuilt->trx->op_info = ""; 0x0000000000ccc5a5 <+357>: 48 8d 1d ce 6e 4c 00 lea 0x4c6ece(%rip),%rbx # 0x119347a 0x0000000000ccc5ac <+364>: 48 89 98 98 08 00 00 mov %rbx,0x898(%rax) 14766 DBUG_RETURN(HA_ERR_GENERIC); 0x0000000000ccc5b3 <+371>: b8 a8 00 00 00 mov $0xa8,%eax 0x0000000000ccc5b8 <+376>: e9 39 04 00 00 jmp 0xccc9f6 <_ZN11ha_innobase8info_lowEjb+1462> 14767 } 14768 14769 m_prebuilt->trx->op_info = 14770 "returning various info to MariaDB"; 0x0000000000ccc5bd <+381>: 48 8d 15 fc 23 52 00 lea 0x5223fc(%rip),%rdx # 0x11ee9c0 0x0000000000ccc5c4 <+388>: 48 89 90 98 08 00 00 mov %rdx,0x898(%rax) /usr/include/c++/4.8.2/bits/atomic_base.h: 496 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccc5cb <+395>: 49 8b 87 48 02 00 00 mov 0x248(%r15),%rax /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14774 stats.update_time = (ulong) ib_table->update_time; 0x0000000000ccc5d2 <+402>: 48 89 83 a8 00 00 00 mov %rax,0xa8(%rbx) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0stats.inl: 153 if (table->stat_initialized) { 0x0000000000ccc5d9 <+409>: 41 f6 87 a0 01 00 00 01 testb $0x1,0x1a0(%r15) 0x0000000000ccc5e1 <+417>: 0f 84 b0 08 00 00 je 0xccce97 <_ZN11ha_innobase8info_lowEjb+2647> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14779 if (flag & HA_STATUS_VARIABLE) { 0x0000000000ccc5e7 <+423>: f6 85 cc ed ff ff 10 testb $0x10,-0x1234(%rbp) 0x0000000000ccc5ee <+430>: 0f 85 e6 05 00 00 jne 0xcccbda <_ZN11ha_innobase8info_lowEjb+1946> 14853 } 14854 } 14855 14856 if (flag & HA_STATUS_CONST) { 0x0000000000ccc5f4 <+436>: f6 85 cc ed ff ff 08 testb $0x8,-0x1234(%rbp) 0x0000000000ccc5fb <+443>: 0f 84 13 03 00 00 je 0xccc914 <_ZN11ha_innobase8info_lowEjb+1236> 14857 /* Verify the number of index in InnoDB and MySQL 14858 matches up. If m_prebuilt->clust_index_was_generated 14859 holds, InnoDB defines GEN_CLUST_INDEX internally */ 14860 ulint num_innodb_index = UT_LIST_GET_LEN(ib_table->indexes) 14861 - m_prebuilt->clust_index_was_generated; 0x0000000000ccc601 <+449>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc608 <+456>: 49 8b 97 90 00 00 00 mov 0x90(%r15),%rdx 0x0000000000ccc60f <+463>: 0f b6 40 20 movzbl 0x20(%rax),%eax 0x0000000000ccc613 <+467>: 48 89 95 c0 ed ff ff mov %rdx,-0x1240(%rbp) 0x0000000000ccc61a <+474>: d0 e8 shr %al 0x0000000000ccc61c <+476>: 83 e0 01 and $0x1,%eax 0x0000000000ccc61f <+479>: 48 29 85 c0 ed ff ff sub %rax,-0x1240(%rbp) 14862 if (table->s->keys < num_innodb_index) { 0x0000000000ccc626 <+486>: 48 8b 43 10 mov 0x10(%rbx),%rax 0x0000000000ccc62a <+490>: 48 8b 08 mov (%rax),%rcx 0x0000000000ccc62d <+493>: 8b b1 70 03 00 00 mov 0x370(%rcx),%esi 0x0000000000ccc633 <+499>: 48 39 b5 c0 ed ff ff cmp %rsi,-0x1240(%rbp) 0x0000000000ccc63a <+506>: 76 57 jbe 0xccc693 <_ZN11ha_innobase8info_lowEjb+595> 14869 = UT_LIST_GET_FIRST(ib_table->indexes); 0x0000000000ccc63c <+508>: 49 8b 87 98 00 00 00 mov 0x98(%r15),%rax 14868 for (const dict_index_t* index 0x0000000000ccc643 <+515>: 48 85 c0 test %rax,%rax 0x0000000000ccc646 <+518>: 74 29 je 0xccc671 <_ZN11ha_innobase8info_lowEjb+561> 0x0000000000ccc648 <+520>: 48 8b 95 c0 ed ff ff mov -0x1240(%rbp),%rdx 0x0000000000ccc64f <+527>: 90 nop 0x0000000000ccc650 <+528>: f6 40 31 10 testb $0x10,0x31(%rax) 0x0000000000ccc654 <+532>: 48 8b 40 60 mov 0x60(%rax),%rax 14870 index != NULL; 14871 index = UT_LIST_GET_NEXT(indexes, index)) { 14872 14873 /* First, online index creation is 14874 completed inside InnoDB, and then 14875 MySQL attempts to upgrade the 14876 meta-data lock so that it can rebuild 14877 the .frm file. If we get here in that 14878 time frame, dict_index_is_online_ddl() 14879 would not hold and the index would 14880 still not be included in TABLE_SHARE. */ 14881 if (!index->is_committed()) { 14882 num_innodb_index--; 0x0000000000ccc658 <+536>: 48 8d 7a ff lea -0x1(%rdx),%rdi 0x0000000000ccc65c <+540>: 48 0f 45 d7 cmovne %rdi,%rdx 14868 for (const dict_index_t* index 0x0000000000ccc660 <+544>: 48 85 c0 test %rax,%rax 0x0000000000ccc663 <+547>: 75 eb jne 0xccc650 <_ZN11ha_innobase8info_lowEjb+528> 14883 } 14884 } 14885 14886 if (table->s->keys < num_innodb_index 14887 && innobase_fts_check_doc_id_index( 0x0000000000ccc665 <+549>: 48 39 d6 cmp %rdx,%rsi 0x0000000000ccc668 <+552>: 48 89 95 c0 ed ff ff mov %rdx,-0x1240(%rbp) 0x0000000000ccc66f <+559>: 73 22 jae 0xccc693 <_ZN11ha_innobase8info_lowEjb+595> 14888 ib_table, NULL, NULL) 0x0000000000ccc671 <+561>: 31 d2 xor %edx,%edx 0x0000000000ccc673 <+563>: 31 f6 xor %esi,%esi 0x0000000000ccc675 <+565>: 4c 89 ff mov %r15,%rdi 0x0000000000ccc678 <+568>: e8 53 16 01 00 call 0xcddcd0 <_Z31innobase_fts_check_doc_id_indexPK12dict_table_tPK5TABLEPm> 14887 && innobase_fts_check_doc_id_index( 0x0000000000ccc67d <+573>: 83 f8 01 cmp $0x1,%eax 0x0000000000ccc680 <+576>: 0f 84 8a 0a 00 00 je 0xccd110 <_ZN11ha_innobase8info_lowEjb+3280> 0x0000000000ccc686 <+582>: 48 8b 43 10 mov 0x10(%rbx),%rax 0x0000000000ccc68a <+586>: 48 8b 08 mov (%rax),%rcx 0x0000000000ccc68d <+589>: 8b b1 70 03 00 00 mov 0x370(%rcx),%esi 14891 } 14892 } 14893 14894 if (table->s->keys != num_innodb_index) { 0x0000000000ccc693 <+595>: 48 8b 85 c0 ed ff ff mov -0x1240(%rbp),%rax 0x0000000000ccc69a <+602>: 48 39 f0 cmp %rsi,%rax 0x0000000000ccc69d <+605>: 74 2e je 0xccc6cd <_ZN11ha_innobase8info_lowEjb+653> 14895 ib_table->dict_frm_mismatch = DICT_FRM_INCONSISTENT_KEYS; 0x0000000000ccc69f <+607>: 41 c7 87 84 00 00 00 03 00 00 00 movl $0x3,0x84(%r15) 14896 ib_push_frm_error(m_user_thd, ib_table, table, num_innodb_index, true); 0x0000000000ccc6aa <+618>: 48 8b 53 10 mov 0x10(%rbx),%rdx 0x0000000000ccc6ae <+622>: 48 89 c1 mov %rax,%rcx 0x0000000000ccc6b1 <+625>: 48 8b bb 88 07 00 00 mov 0x788(%rbx),%rdi 0x0000000000ccc6b8 <+632>: 41 b8 01 00 00 00 mov $0x1,%r8d 0x0000000000ccc6be <+638>: 4c 89 fe mov %r15,%rsi 0x0000000000ccc6c1 <+641>: e8 3a b8 ff ff call 0xcc7f00 <_Z17ib_push_frm_errorP3THDP12dict_table_tP5TABLEmb> 0x0000000000ccc6c6 <+646>: 48 8b 43 10 mov 0x10(%rbx),%rax 0x0000000000ccc6ca <+650>: 48 8b 08 mov (%rax),%rcx /usr/include/bits/stdio2.h: 65 __NTH (vsnprintf (char *__restrict __s, size_t __n, 0x0000000000ccc6cd <+653>: 48 8d 05 ac 01 da 00 lea 0xda01ac(%rip),%rax # 0x1a6c880 0x0000000000ccc6d4 <+660>: 4c 8d a5 e0 ed ff ff lea -0x1220(%rbp),%r12 0x0000000000ccc6db <+667>: 4c 8d 05 56 71 52 00 lea 0x527156(%rip),%r8 # 0x11f3838 0x0000000000ccc6e2 <+674>: ba 01 00 00 00 mov $0x1,%edx 0x0000000000ccc6e7 <+679>: be 00 02 00 00 mov $0x200,%esi 0x0000000000ccc6ec <+684>: 4c 89 e7 mov %r12,%rdi 0x0000000000ccc6ef <+687>: 48 89 44 24 08 mov %rax,0x8(%rsp) 0x0000000000ccc6f4 <+692>: 48 8b 81 a0 02 00 00 mov 0x2a0(%rcx),%rax 0x0000000000ccc6fb <+699>: b9 00 02 00 00 mov $0x200,%ecx 0x0000000000ccc700 <+704>: 48 89 04 24 mov %rax,(%rsp) 0x0000000000ccc704 <+708>: 48 8d 05 a5 1c d2 00 lea 0xd21ca5(%rip),%rax # 0x19ee3b0 0x0000000000ccc70b <+715>: 4c 8b 08 mov (%rax),%r9 0x0000000000ccc70e <+718>: 31 c0 xor %eax,%eax 0x0000000000ccc710 <+720>: e8 0b c9 9a ff call 0x679020 <__snprintf_chk@plt> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14903 unpack_filename(path,path); 0x0000000000ccc715 <+725>: 4c 89 e6 mov %r12,%rsi 0x0000000000ccc718 <+728>: 4c 89 e7 mov %r12,%rdi 0x0000000000ccc71b <+731>: e8 e0 c7 29 00 call 0xf68f00 14909 path, &stat_info, false, 14910 srv_read_only_mode) == DB_SUCCESS) { 0x0000000000ccc720 <+736>: 48 8d 05 a9 fb 66 01 lea 0x166fba9(%rip),%rax # 0x233c2d0 0x0000000000ccc727 <+743>: 31 c9 xor %ecx,%ecx 0x0000000000ccc729 <+745>: 48 8d b5 e0 ef ff ff lea -0x1020(%rbp),%rsi 0x0000000000ccc730 <+752>: 4c 89 e7 mov %r12,%rdi 0x0000000000ccc733 <+755>: 80 38 00 cmpb $0x0,(%rax) 0x0000000000ccc736 <+758>: 0f 95 c1 setne %cl 0x0000000000ccc739 <+761>: 31 d2 xor %edx,%edx 0x0000000000ccc73b <+763>: e8 70 4b 06 00 call 0xd312b0 <_Z18os_file_get_statusPKcP14os_file_stat_tbb> 14908 if (os_file_get_status( 0x0000000000ccc740 <+768>: 85 c0 test %eax,%eax 0x0000000000ccc742 <+770>: 75 0b jne 0xccc74f <_ZN11ha_innobase8info_lowEjb+783> 14911 stats.create_time = (ulong) stat_info.ctime; 0x0000000000ccc744 <+772>: 48 8b 45 a0 mov -0x60(%rbp),%rax 0x0000000000ccc748 <+776>: 48 89 83 98 00 00 00 mov %rax,0x98(%rbx) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2033 lock_mutex.wr_lock(); 0x0000000000ccc74f <+783>: 49 8d 87 f4 01 00 00 lea 0x1f4(%r15),%rax /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccc756 <+790>: ba 01 00 00 80 mov $0x80000001,%edx /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 128 uint32_t lk= 0; 0x0000000000ccc75b <+795>: c7 85 d0 ed ff ff 00 00 00 00 movl $0x0,-0x1230(%rbp) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2033 lock_mutex.wr_lock(); 0x0000000000ccc765 <+805>: 48 89 c1 mov %rax,%rcx 0x0000000000ccc768 <+808>: 48 89 85 b8 ed ff ff mov %rax,-0x1248(%rbp) /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccc76f <+815>: 31 c0 xor %eax,%eax 0x0000000000ccc771 <+817>: f0 0f b1 11 lock cmpxchg %edx,(%rcx) 0x0000000000ccc775 <+821>: 74 12 je 0xccc789 <_ZN11ha_innobase8info_lowEjb+841> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 134 void wr_lock() { if (!wr_lock_try()) wait_and_lock(); } 0x0000000000ccc777 <+823>: 48 8b bd b8 ed ff ff mov -0x1248(%rbp),%rdi /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccc77e <+830>: 89 85 d0 ed ff ff mov %eax,-0x1230(%rbp) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 134 void wr_lock() { if (!wr_lock_try()) wait_and_lock(); } 0x0000000000ccc784 <+836>: e8 d7 88 0f 00 call 0xdc5060 <_ZN14srw_mutex_implILb1EE13wait_and_lockEv> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14918 ut_a(ib_table->stat_initialized); 0x0000000000ccc789 <+841>: 41 f6 87 a0 01 00 00 01 testb $0x1,0x1a0(%r15) 0x0000000000ccc791 <+849>: 0f 84 94 0a 00 00 je 0xccd22b <_ZN11ha_innobase8info_lowEjb+3563> 14919 14920 for (uint i = 0; i < table->s->keys; i++) { 0x0000000000ccc797 <+855>: 48 8b 53 10 mov 0x10(%rbx),%rdx 0x0000000000ccc79b <+859>: 48 8b 02 mov (%rdx),%rax 0x0000000000ccc79e <+862>: 8b 80 70 03 00 00 mov 0x370(%rax),%eax 0x0000000000ccc7a4 <+868>: 85 c0 test %eax,%eax 0x0000000000ccc7a6 <+870>: 0f 84 4c 01 00 00 je 0xccc8f8 <_ZN11ha_innobase8info_lowEjb+1208> 0x0000000000ccc7ac <+876>: 45 31 e4 xor %r12d,%r12d 0x0000000000ccc7af <+879>: 90 nop 9158 dict_table_t* ib_table = m_prebuilt->table; 0x0000000000ccc7b0 <+880>: 48 8b 8b 80 07 00 00 mov 0x780(%rbx),%rcx 9159 dict_index_t* index; 9160 9161 DBUG_ENTER("innobase_get_index"); 9162 9163 if (keynr != MAX_KEY && table->s->keys > 0) { 0x0000000000ccc7b7 <+887>: 41 83 fc 40 cmp $0x40,%r12d 9158 dict_table_t* ib_table = m_prebuilt->table; 0x0000000000ccc7bb <+891>: 4c 8b 71 08 mov 0x8(%rcx),%r14 9159 dict_index_t* index; 9160 9161 DBUG_ENTER("innobase_get_index"); 9162 9163 if (keynr != MAX_KEY && table->s->keys > 0) { 0x0000000000ccc7bf <+895>: 74 08 je 0xccc7c9 <_ZN11ha_innobase8info_lowEjb+905> 0x0000000000ccc7c1 <+897>: 85 c0 test %eax,%eax 0x0000000000ccc7c3 <+899>: 0f 85 d4 03 00 00 jne 0xcccb9d <_ZN11ha_innobase8info_lowEjb+1885> 9166 } else { 9167 index = dict_table_get_first_index(ib_table); 0x0000000000ccc7c9 <+905>: 49 8b 86 98 00 00 00 mov 0x98(%r14),%rax 9157 KEY* key = NULL; 0x0000000000ccc7d0 <+912>: 45 31 ed xor %r13d,%r13d 9168 } 9169 9170 if (index == NULL) { 0x0000000000ccc7d3 <+915>: 48 85 c0 test %rax,%rax 0x0000000000ccc7d6 <+918>: 0f 84 6c 03 00 00 je 0xcccb48 <_ZN11ha_innobase8info_lowEjb+1800> 14928 break; 14929 } 14930 14931 KEY* key = &table->key_info[i]; 0x0000000000ccc7dc <+924>: 48 8b 53 10 mov 0x10(%rbx),%rdx 0x0000000000ccc7e0 <+928>: 44 89 e1 mov %r12d,%ecx 0x0000000000ccc7e3 <+931>: 48 8d 0c 49 lea (%rcx,%rcx,2),%rcx 0x0000000000ccc7e7 <+935>: 48 c1 e1 06 shl $0x6,%rcx 0x0000000000ccc7eb <+939>: 48 03 8a a8 00 00 00 add 0xa8(%rdx),%rcx 14932 14933 for (j = 0; j < key->ext_key_parts; j++) { 0x0000000000ccc7f2 <+946>: 44 8b 49 18 mov 0x18(%rcx),%r9d 0x0000000000ccc7f6 <+950>: 45 85 c9 test %r9d,%r9d 0x0000000000ccc7f9 <+953>: 0f 84 dd 00 00 00 je 0xccc8dc <_ZN11ha_innobase8info_lowEjb+1180> 0x0000000000ccc7ff <+959>: 31 d2 xor %edx,%edx 0x0000000000ccc801 <+961>: 41 b8 01 00 00 00 mov $0x1,%r8d 14621 n_null = records - n_non_null; 0x0000000000ccc807 <+967>: 45 31 ed xor %r13d,%r13d 0x0000000000ccc80a <+970>: e9 a8 00 00 00 jmp 0xccc8b7 <_ZN11ha_innobase8info_lowEjb+1143> 0x0000000000ccc80f <+975>: 90 nop 14936 || (key->flags & HA_SPATIAL)) { 14937 14938 /* The record per key does not apply to 14939 FTS or Spatial indexes. */ 14940 /* 14941 key->rec_per_key[j] = 1; 14942 key->set_records_per_key(j, 1.0); 14943 */ 14944 continue; 14945 } 14946 14947 if (j + 1 > index->n_uniq) { 0x0000000000ccc810 <+976>: 8b 70 28 mov 0x28(%rax),%esi 0x0000000000ccc813 <+979>: c1 ee 0b shr $0xb,%esi 0x0000000000ccc816 <+982>: 66 81 e6 ff 03 and $0x3ff,%si 0x0000000000ccc81b <+987>: 0f b7 fe movzwl %si,%edi 0x0000000000ccc81e <+990>: 49 39 f8 cmp %rdi,%r8 0x0000000000ccc821 <+993>: 0f 87 f1 02 00 00 ja 0xcccb18 <_ZN11ha_innobase8info_lowEjb+1752> 14591 ut_a(index->table->stat_initialized); 0x0000000000ccc827 <+999>: 48 8b 70 18 mov 0x18(%rax),%rsi 14959 break; 14960 } 14961 14962 /* innodb_rec_per_key() will use 14963 index->stat_n_diff_key_vals[] and the value we 14964 pass index->table->stat_n_rows. Both are 14965 calculated by ANALYZE and by the background 14966 stats gathering thread (which kicks in when too 14967 much of the table has been changed). In 14968 addition table->stat_n_rows is adjusted with 14969 each DML (e.g. ++ on row insert). Those 14970 adjustments are not MVCC'ed and not even 14971 reversed on rollback. So, 14972 index->stat_n_diff_key_vals[] and 14973 index->table->stat_n_rows could have been 14974 calculated at different time. This is 14975 acceptable. */ 14976 14977 ulong rec_per_key_int = static_cast( 14978 innodb_rec_per_key(index, j, 14979 stats.records)); 0x0000000000ccc82b <+1003>: 48 8b bb 80 00 00 00 mov 0x80(%rbx),%rdi 14591 ut_a(index->table->stat_initialized); 0x0000000000ccc832 <+1010>: f6 86 a0 01 00 00 01 testb $0x1,0x1a0(%rsi) 0x0000000000ccc839 <+1017>: 0f 84 b0 07 00 00 je 0xcccfef <_ZN11ha_innobase8info_lowEjb+2991> 14592 14593 ut_ad(i < dict_index_get_n_unique(index)); 14594 ut_ad(!dict_index_is_spatial(index)); 14595 14596 if (records == 0) { 0x0000000000ccc83f <+1023>: 48 85 ff test %rdi,%rdi 14980 14981 /* Since MySQL seems to favor table scans 14982 too much over index searches, we pretend 14983 index selectivity is 2 times better than 14984 our estimate: */ 14985 14986 rec_per_key_int = rec_per_key_int / 2; 14987 14988 if (rec_per_key_int == 0) { 14989 rec_per_key_int = 1; 0x0000000000ccc842 <+1026>: be 01 00 00 00 mov $0x1,%esi 14596 if (records == 0) { 0x0000000000ccc847 <+1031>: 74 4f je 0xccc898 <_ZN11ha_innobase8info_lowEjb+1112> 14597 /* "Records per key" is meaningless for empty tables. 14598 Return 1.0 because that is most convenient to the Optimizer. */ 14599 return(1.0); 14600 } 14601 14602 n_diff = index->stat_n_diff_key_vals[i]; 0x0000000000ccc849 <+1033>: 4c 8b 48 78 mov 0x78(%rax),%r9 0x0000000000ccc84d <+1037>: 4d 8b 0c 11 mov (%r9,%rdx,1),%r9 14603 14604 if (n_diff == 0) { 0x0000000000ccc851 <+1041>: 4d 85 c9 test %r9,%r9 0x0000000000ccc854 <+1044>: 0f 85 d6 01 00 00 jne 0xccca30 <_ZN11ha_innobase8info_lowEjb+1520> 14605 14606 rec_per_key = static_cast(records); 0x0000000000ccc85a <+1050>: 48 85 ff test %rdi,%rdi 0x0000000000ccc85d <+1053>: 0f 88 75 02 00 00 js 0xcccad8 <_ZN11ha_innobase8info_lowEjb+1688> 0x0000000000ccc863 <+1059>: f3 48 0f 2a c7 cvtsi2ss %rdi,%xmm0 14641 } 14642 14643 if (rec_per_key < 1.0) { 0x0000000000ccc868 <+1064>: f3 0f 10 15 9c 8e 52 00 movss 0x528e9c(%rip),%xmm2 # 0x11f570c 14980 14981 /* Since MySQL seems to favor table scans 14982 too much over index searches, we pretend 14983 index selectivity is 2 times better than 14984 our estimate: */ 14985 14986 rec_per_key_int = rec_per_key_int / 2; 14987 14988 if (rec_per_key_int == 0) { 14989 rec_per_key_int = 1; 0x0000000000ccc870 <+1072>: be 01 00 00 00 mov $0x1,%esi 14643 if (rec_per_key < 1.0) { 0x0000000000ccc875 <+1077>: 0f 2e d0 ucomiss %xmm0,%xmm2 0x0000000000ccc878 <+1080>: 77 1e ja 0xccc898 <_ZN11ha_innobase8info_lowEjb+1112> 0x0000000000ccc87a <+1082>: 0f 2e 05 a3 b2 36 00 ucomiss 0x36b2a3(%rip),%xmm0 # 0x1037b24 0x0000000000ccc881 <+1089>: 0f 83 d9 01 00 00 jae 0xccca60 <_ZN11ha_innobase8info_lowEjb+1568> 0x0000000000ccc887 <+1095>: f3 48 0f 2c f0 cvttss2si %xmm0,%rsi 14980 14981 /* Since MySQL seems to favor table scans 14982 too much over index searches, we pretend 14983 index selectivity is 2 times better than 14984 our estimate: */ 14985 14986 rec_per_key_int = rec_per_key_int / 2; 14987 14988 if (rec_per_key_int == 0) { 14989 rec_per_key_int = 1; 0x0000000000ccc88c <+1100>: 48 d1 ee shr %rsi 0x0000000000ccc88f <+1103>: bf 01 00 00 00 mov $0x1,%edi 0x0000000000ccc894 <+1108>: 48 0f 44 f7 cmove %rdi,%rsi 14990 } 14991 14992 key->rec_per_key[j] = rec_per_key_int; 0x0000000000ccc898 <+1112>: 48 8b 79 78 mov 0x78(%rcx),%rdi 0x0000000000ccc89c <+1116>: 48 89 34 17 mov %rsi,(%rdi,%rdx,1) 0x0000000000ccc8a0 <+1120>: 44 8b 49 18 mov 0x18(%rcx),%r9d 0x0000000000ccc8a4 <+1124>: 4c 89 c6 mov %r8,%rsi 0x0000000000ccc8a7 <+1127>: 48 83 c2 08 add $0x8,%rdx 0x0000000000ccc8ab <+1131>: 49 83 c0 01 add $0x1,%r8 14933 for (j = 0; j < key->ext_key_parts; j++) { 0x0000000000ccc8af <+1135>: 44 89 cf mov %r9d,%edi 0x0000000000ccc8b2 <+1138>: 48 39 f7 cmp %rsi,%rdi 0x0000000000ccc8b5 <+1141>: 76 21 jbe 0xccc8d8 <_ZN11ha_innobase8info_lowEjb+1176> 14934 14935 if ((key->flags & HA_FULLTEXT) 0x0000000000ccc8b7 <+1143>: 48 f7 41 08 80 04 00 00 testq $0x480,0x8(%rcx) 0x0000000000ccc8bf <+1151>: 0f 84 4b ff ff ff je 0xccc810 <_ZN11ha_innobase8info_lowEjb+976> 0x0000000000ccc8c5 <+1157>: 4c 89 c6 mov %r8,%rsi 14933 for (j = 0; j < key->ext_key_parts; j++) { 0x0000000000ccc8c8 <+1160>: 44 89 cf mov %r9d,%edi 0x0000000000ccc8cb <+1163>: 49 83 c0 01 add $0x1,%r8 0x0000000000ccc8cf <+1167>: 48 83 c2 08 add $0x8,%rdx 0x0000000000ccc8d3 <+1171>: 48 39 f7 cmp %rsi,%rdi 0x0000000000ccc8d6 <+1174>: 77 df ja 0xccc8b7 <_ZN11ha_innobase8info_lowEjb+1143> 0x0000000000ccc8d8 <+1176>: 48 8b 53 10 mov 0x10(%rbx),%rdx 14920 for (uint i = 0; i < table->s->keys; i++) { 0x0000000000ccc8dc <+1180>: 48 8b 02 mov (%rdx),%rax 0x0000000000ccc8df <+1183>: 41 83 c4 01 add $0x1,%r12d 0x0000000000ccc8e3 <+1187>: 8b 80 70 03 00 00 mov 0x370(%rax),%eax 0x0000000000ccc8e9 <+1193>: 44 39 e0 cmp %r12d,%eax 0x0000000000ccc8ec <+1196>: 0f 87 be fe ff ff ja 0xccc7b0 <_ZN11ha_innobase8info_lowEjb+880> 0x0000000000ccc8f2 <+1202>: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) /usr/include/c++/4.8.2/bits/atomic_base.h: 624 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccc8f8 <+1208>: 48 8b 95 b8 ed ff ff mov -0x1248(%rbp),%rdx /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 138 if (lk != HOLDER + 1) 0x0000000000ccc8ff <+1215>: f0 81 02 ff ff ff 7f lock addl $0x7fffffff,(%rdx) 0x0000000000ccc906 <+1222>: 74 0c je 0xccc914 <_ZN11ha_innobase8info_lowEjb+1236> 139 { 140 DBUG_ASSERT(lk & HOLDER); 141 wake(); 0x0000000000ccc908 <+1224>: 48 8b bd b8 ed ff ff mov -0x1248(%rbp),%rdi 0x0000000000ccc90f <+1231>: e8 7c 86 0f 00 call 0xdc4f90 <_ZN14srw_mutex_implILb1EE4wakeEv> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14997 if (srv_force_recovery >= SRV_FORCE_NO_UNDO_LOG_SCAN) { 0x0000000000ccc914 <+1236>: 48 8d 05 9d d0 63 01 lea 0x163d09d(%rip),%rax # 0x23099b8 0x0000000000ccc91b <+1243>: 48 83 38 04 cmpq $0x4,(%rax) 0x0000000000ccc91f <+1247>: 0f 87 b6 00 00 00 ja 0xccc9db <_ZN11ha_innobase8info_lowEjb+1435> 14998 14999 goto func_exit; 15000 15001 } else if (flag & HA_STATUS_ERRKEY) { 0x0000000000ccc925 <+1253>: f6 85 cc ed ff ff 20 testb $0x20,-0x1234(%rbp) 0x0000000000ccc92c <+1260>: 0f 84 86 00 00 00 je 0xccc9b8 <_ZN11ha_innobase8info_lowEjb+1400> 15002 const dict_index_t* err_index; 15003 15004 ut_a(m_prebuilt->trx); 0x0000000000ccc932 <+1266>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc939 <+1273>: 48 8b 40 18 mov 0x18(%rax),%rax 0x0000000000ccc93d <+1277>: 48 85 c0 test %rax,%rax 0x0000000000ccc940 <+1280>: 0f 84 5a 08 00 00 je 0xccd1a0 <_ZN11ha_innobase8info_lowEjb+3424> 15005 ut_a(m_prebuilt->trx->magic_n == TRX_MAGIC_N); 0x0000000000ccc946 <+1286>: 48 81 b8 90 0a 00 00 06 5c 6e 05 cmpq $0x56e5c06,0xa90(%rax) 0x0000000000ccc951 <+1297>: 0f 85 09 09 00 00 jne 0xccd260 <_ZN11ha_innobase8info_lowEjb+3616> 14724 m_prebuilt->trx->op_info = "returning various info to MariaDB"; 0x0000000000ccc957 <+1303>: 4c 8b a0 00 09 00 00 mov 0x900(%rax),%r12 15006 15007 err_index = trx_get_error_info(m_prebuilt->trx); 15008 15009 if (err_index) { 0x0000000000ccc95e <+1310>: 4d 85 e4 test %r12,%r12 0x0000000000ccc961 <+1313>: 0f 84 ec 05 00 00 je 0xcccf53 <_ZN11ha_innobase8info_lowEjb+2835> 14523 if (index->table != ib_table) { 0x0000000000ccc967 <+1319>: 49 8b 44 24 18 mov 0x18(%r12),%rax 15010 errkey = innobase_get_mysql_key_number_for_index( 15011 table, ib_table, err_index); 0x0000000000ccc96c <+1324>: 4c 8b 73 10 mov 0x10(%rbx),%r14 14523 if (index->table != ib_table) { 0x0000000000ccc970 <+1328>: 49 39 c7 cmp %rax,%r15 0x0000000000ccc973 <+1331>: 0f 84 f1 06 00 00 je 0xccd06a <_ZN11ha_innobase8info_lowEjb+3114> 14525 ind = dict_table_get_first_index(index->table); 0x0000000000ccc979 <+1337>: 48 8b 80 98 00 00 00 mov 0x98(%rax),%rax 14526 14527 while (index != ind) { 0x0000000000ccc980 <+1344>: 49 39 c4 cmp %rax,%r12 0x0000000000ccc983 <+1347>: 0f 84 2f 08 00 00 je 0xccd1b8 <_ZN11ha_innobase8info_lowEjb+3448> 14524 i = 0; 0x0000000000ccc989 <+1353>: 31 d2 xor %edx,%edx 0x0000000000ccc98b <+1355>: eb 05 jmp 0xccc992 <_ZN11ha_innobase8info_lowEjb+1362> 0x0000000000ccc98d <+1357>: 0f 1f 00 nopl (%rax) 14529 i++; 0x0000000000ccc990 <+1360>: 89 ca mov %ecx,%edx 14528 ind = dict_table_get_next_index(ind); 0x0000000000ccc992 <+1362>: 48 8b 40 60 mov 0x60(%rax),%rax 14529 i++; 0x0000000000ccc996 <+1366>: 8d 4a 01 lea 0x1(%rdx),%ecx 14527 while (index != ind) { 0x0000000000ccc999 <+1369>: 49 39 c4 cmp %rax,%r12 0x0000000000ccc99c <+1372>: 75 f2 jne 0xccc990 <_ZN11ha_innobase8info_lowEjb+1360> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 1204 bool is_gen_clust() const { return type == DICT_CLUSTERED; } 0x0000000000ccc99e <+1374>: 41 0f b7 44 24 24 movzwl 0x24(%r12),%eax 0x0000000000ccc9a4 <+1380>: 66 25 c0 3f and $0x3fc0,%ax /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14532 if (dict_index_is_auto_gen_clust(index)) { 0x0000000000ccc9a8 <+1384>: 66 83 f8 40 cmp $0x40,%ax 0x0000000000ccc9ac <+1388>: 0f 84 62 06 00 00 je 0xccd014 <_ZN11ha_innobase8info_lowEjb+3028> 15010 errkey = innobase_get_mysql_key_number_for_index( 15011 table, ib_table, err_index); 0x0000000000ccc9b2 <+1394>: 89 8b 94 01 00 00 mov %ecx,0x194(%rbx) 15018 } 15019 } 15020 15021 if ((flag & HA_STATUS_AUTO) && table->found_next_number_field) { 0x0000000000ccc9b8 <+1400>: f6 85 cc ed ff ff 40 testb $0x40,-0x1234(%rbp) 0x0000000000ccc9bf <+1407>: 74 1a je 0xccc9db <_ZN11ha_innobase8info_lowEjb+1435> 0x0000000000ccc9c1 <+1409>: 48 8b 43 10 mov 0x10(%rbx),%rax 0x0000000000ccc9c5 <+1413>: 48 83 b8 d0 00 00 00 00 cmpq $0x0,0xd0(%rax) 0x0000000000ccc9cd <+1421>: 74 0c je 0xccc9db <_ZN11ha_innobase8info_lowEjb+1435> 15022 stats.auto_increment_value = innobase_peek_autoinc(); 0x0000000000ccc9cf <+1423>: 48 89 df mov %rbx,%rdi 0x0000000000ccc9d2 <+1426>: e8 39 f9 ff ff call 0xccc310 <_ZN11ha_innobase21innobase_peek_autoincEv> 0x0000000000ccc9d7 <+1431>: 48 89 43 78 mov %rax,0x78(%rbx) 15023 } 15024 15025 func_exit: 15026 m_prebuilt->trx->op_info = (char*)""; 0x0000000000ccc9db <+1435>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 0x0000000000ccc9e2 <+1442>: 48 8d 1d 91 6a 4c 00 lea 0x4c6a91(%rip),%rbx # 0x119347a 0x0000000000ccc9e9 <+1449>: 48 8b 40 18 mov 0x18(%rax),%rax 0x0000000000ccc9ed <+1453>: 48 89 98 98 08 00 00 mov %rbx,0x898(%rax) 15027 15028 DBUG_RETURN(0); 0x0000000000ccc9f4 <+1460>: 31 c0 xor %eax,%eax 15029 } 0x0000000000ccc9f6 <+1462>: 48 8b 5d c8 mov -0x38(%rbp),%rbx 0x0000000000ccc9fa <+1466>: 64 48 33 1c 25 28 00 00 00 xor %fs:0x28,%rbx 0x0000000000ccca03 <+1475>: 0f 85 3a 08 00 00 jne 0xccd243 <_ZN11ha_innobase8info_lowEjb+3587> 0x0000000000ccca09 <+1481>: 48 81 c4 38 12 00 00 add $0x1238,%rsp 0x0000000000ccca10 <+1488>: 5b pop %rbx 0x0000000000ccca11 <+1489>: 41 5c pop %r12 0x0000000000ccca13 <+1491>: 41 5d pop %r13 0x0000000000ccca15 <+1493>: 41 5e pop %r14 0x0000000000ccca17 <+1495>: 41 5f pop %r15 0x0000000000ccca19 <+1497>: 5d pop %rbp 0x0000000000ccca1a <+1498>: c3 ret 14739 if (is_analyze || innobase_stats_on_metadata) { 0x0000000000ccca1b <+1499>: 80 3d ee 04 63 01 00 cmpb $0x0,0x16304ee(%rip) # 0x22fcf10 0x0000000000ccca22 <+1506>: 0f 84 a3 fb ff ff je 0xccc5cb <_ZN11ha_innobase8info_lowEjb+395> 0x0000000000ccca28 <+1512>: e9 28 fb ff ff jmp 0xccc555 <_ZN11ha_innobase8info_lowEjb+277> 0x0000000000ccca2d <+1517>: 0f 1f 00 nopl (%rax) 14607 } else if (srv_innodb_stats_method == SRV_STATS_NULLS_IGNORED) { 0x0000000000ccca30 <+1520>: 4c 8d 15 49 f7 66 01 lea 0x166f749(%rip),%r10 # 0x233c180 0x0000000000ccca37 <+1527>: 49 83 3a 02 cmpq $0x2,(%r10) 0x0000000000ccca3b <+1531>: 74 43 je 0xccca80 <_ZN11ha_innobase8info_lowEjb+1600> 14636 } 14637 } else { 14638 DEBUG_SYNC_C("after_checking_for_0"); 14639 rec_per_key = static_cast(records) 14640 / static_cast(n_diff); 0x0000000000ccca3d <+1533>: 48 85 ff test %rdi,%rdi 0x0000000000ccca40 <+1536>: 0f 88 b2 00 00 00 js 0xcccaf8 <_ZN11ha_innobase8info_lowEjb+1720> 0x0000000000ccca46 <+1542>: f3 48 0f 2a c7 cvtsi2ss %rdi,%xmm0 0x0000000000ccca4b <+1547>: 4d 85 c9 test %r9,%r9 0x0000000000ccca4e <+1550>: 78 68 js 0xcccab8 <_ZN11ha_innobase8info_lowEjb+1656> 0x0000000000ccca50 <+1552>: f3 49 0f 2a c9 cvtsi2ss %r9,%xmm1 0x0000000000ccca55 <+1557>: f3 0f 5e c1 divss %xmm1,%xmm0 0x0000000000ccca59 <+1561>: e9 0a fe ff ff jmp 0xccc868 <_ZN11ha_innobase8info_lowEjb+1064> 0x0000000000ccca5e <+1566>: 66 90 xchg %ax,%ax 0x0000000000ccca60 <+1568>: f3 0f 5c 05 bc b0 36 00 subss 0x36b0bc(%rip),%xmm0 # 0x1037b24 0x0000000000ccca68 <+1576>: 48 bf 00 00 00 00 00 00 00 80 movabs $0x8000000000000000,%rdi 0x0000000000ccca72 <+1586>: f3 48 0f 2c f0 cvttss2si %xmm0,%rsi 0x0000000000ccca77 <+1591>: 48 31 fe xor %rdi,%rsi 0x0000000000ccca7a <+1594>: e9 0d fe ff ff jmp 0xccc88c <_ZN11ha_innobase8info_lowEjb+1100> 0x0000000000ccca7f <+1599>: 90 nop 14611 n_non_null = index->stat_n_non_null_key_vals[i]; 0x0000000000ccca80 <+1600>: 4c 8b 90 88 00 00 00 mov 0x88(%rax),%r10 0x0000000000ccca87 <+1607>: 4d 8b 1c 12 mov (%r10,%rdx,1),%r11 14612 14613 /* In theory, index->stat_n_non_null_key_vals[i] 14614 should always be less than the number of records. 14615 Since this is statistics value, the value could 14616 have slight discrepancy. But we will make sure 14617 the number of null values is not a negative number. */ 14618 if (records < n_non_null) { 14619 n_null = 0; 14620 } else { 14621 n_null = records - n_non_null; 0x0000000000ccca8b <+1611>: 49 89 fa mov %rdi,%r10 0x0000000000ccca8e <+1614>: 4d 29 da sub %r11,%r10 0x0000000000ccca91 <+1617>: 4c 39 df cmp %r11,%rdi 0x0000000000ccca94 <+1620>: 4d 0f 42 d5 cmovb %r13,%r10 14622 } 14623 14624 /* If the number of NULL values is the same as or 14625 larger than that of the distinct values, we could 14626 consider that the table consists mostly of NULL value. 14627 Set rec_per_key to 1. */ 14628 if (n_diff <= n_null) { 0x0000000000ccca98 <+1624>: 4d 39 d1 cmp %r10,%r9 0x0000000000ccca9b <+1627>: 0f 86 f7 fd ff ff jbe 0xccc898 <_ZN11ha_innobase8info_lowEjb+1112> 14629 rec_per_key = 1.0; 14630 } else { 14631 /* Need to exclude rows with NULL values from 14632 rec_per_key calculation */ 14633 rec_per_key 14634 = static_cast(records - n_null) 14635 / static_cast(n_diff - n_null); 0x0000000000cccaa1 <+1633>: 4c 29 d7 sub %r10,%rdi 0x0000000000cccaa4 <+1636>: 0f 88 16 01 00 00 js 0xcccbc0 <_ZN11ha_innobase8info_lowEjb+1920> 0x0000000000cccaaa <+1642>: f3 48 0f 2a c7 cvtsi2ss %rdi,%xmm0 0x0000000000cccaaf <+1647>: 4d 29 d1 sub %r10,%r9 0x0000000000cccab2 <+1650>: 79 9c jns 0xccca50 <_ZN11ha_innobase8info_lowEjb+1552> 0x0000000000cccab4 <+1652>: 0f 1f 40 00 nopl 0x0(%rax) 14636 } 14637 } else { 14638 DEBUG_SYNC_C("after_checking_for_0"); 14639 rec_per_key = static_cast(records) 14640 / static_cast(n_diff); 0x0000000000cccab8 <+1656>: 4c 89 ce mov %r9,%rsi 0x0000000000cccabb <+1659>: 41 83 e1 01 and $0x1,%r9d 0x0000000000cccabf <+1663>: 48 d1 ee shr %rsi 0x0000000000cccac2 <+1666>: 4c 09 ce or %r9,%rsi 0x0000000000cccac5 <+1669>: f3 48 0f 2a ce cvtsi2ss %rsi,%xmm1 0x0000000000cccaca <+1674>: f3 0f 58 c9 addss %xmm1,%xmm1 0x0000000000cccace <+1678>: e9 82 ff ff ff jmp 0xccca55 <_ZN11ha_innobase8info_lowEjb+1557> 0x0000000000cccad3 <+1683>: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 14606 rec_per_key = static_cast(records); 0x0000000000cccad8 <+1688>: 48 89 fe mov %rdi,%rsi 0x0000000000cccadb <+1691>: 83 e7 01 and $0x1,%edi 0x0000000000cccade <+1694>: 48 d1 ee shr %rsi 0x0000000000cccae1 <+1697>: 48 09 fe or %rdi,%rsi 0x0000000000cccae4 <+1700>: f3 48 0f 2a c6 cvtsi2ss %rsi,%xmm0 0x0000000000cccae9 <+1705>: f3 0f 58 c0 addss %xmm0,%xmm0 0x0000000000cccaed <+1709>: e9 76 fd ff ff jmp 0xccc868 <_ZN11ha_innobase8info_lowEjb+1064> 0x0000000000cccaf2 <+1714>: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 14636 } 14637 } else { 14638 DEBUG_SYNC_C("after_checking_for_0"); 14639 rec_per_key = static_cast(records) 14640 / static_cast(n_diff); 0x0000000000cccaf8 <+1720>: 48 89 fe mov %rdi,%rsi 0x0000000000cccafb <+1723>: 83 e7 01 and $0x1,%edi 0x0000000000cccafe <+1726>: 48 d1 ee shr %rsi 0x0000000000cccb01 <+1729>: 48 09 fe or %rdi,%rsi 0x0000000000cccb04 <+1732>: f3 48 0f 2a c6 cvtsi2ss %rsi,%xmm0 0x0000000000cccb09 <+1737>: f3 0f 58 c0 addss %xmm0,%xmm0 0x0000000000cccb0d <+1741>: e9 39 ff ff ff jmp 0xccca4b <_ZN11ha_innobase8info_lowEjb+1547> 0x0000000000cccb12 <+1746>: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 14948 sql_print_error( 14949 "Index %s of %s has %u columns" 14950 " unique inside InnoDB, but " 14951 "server is asking statistics for" 14952 " %lu columns. Have you mixed " 14953 "up .frm files from different " 14954 " installations? %s", 14955 index->name(), 14956 ib_table->name.m_name, 14957 index->n_uniq, j + 1, 14958 TROUBLESHOOTING_MSG); 0x0000000000cccb18 <+1752>: 0f b7 ce movzwl %si,%ecx 0x0000000000cccb1b <+1755>: 49 8b 57 10 mov 0x10(%r15),%rdx 0x0000000000cccb1f <+1759>: 48 8b 70 10 mov 0x10(%rax),%rsi 0x0000000000cccb23 <+1763>: 4c 8b 0d 76 8a d0 00 mov 0xd08a76(%rip),%r9 # 0x19d55a0 0x0000000000cccb2a <+1770>: 48 8d 3d b7 1e 52 00 lea 0x521eb7(%rip),%rdi # 0x11ee9e8 0x0000000000cccb31 <+1777>: 31 c0 xor %eax,%eax 0x0000000000cccb33 <+1779>: e8 08 b2 df ff call 0xac7d40 <_Z15sql_print_errorPKcz> 0x0000000000cccb38 <+1784>: 48 8b 53 10 mov 0x10(%rbx),%rdx 0x0000000000cccb3c <+1788>: e9 9b fd ff ff jmp 0xccc8dc <_ZN11ha_innobase8info_lowEjb+1180> 0x0000000000cccb41 <+1793>: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 9175 ib_table->name.m_name); 0x0000000000cccb48 <+1800>: 4d 85 ed test %r13,%r13 0x0000000000cccb4b <+1803>: 49 8b 4e 10 mov 0x10(%r14),%rcx 0x0000000000cccb4f <+1807>: 48 8d 15 40 8b 54 00 lea 0x548b40(%rip),%rdx # 0x1215696 0x0000000000cccb56 <+1814>: 74 04 je 0xcccb5c <_ZN11ha_innobase8info_lowEjb+1820> 0x0000000000cccb58 <+1816>: 49 8b 55 40 mov 0x40(%r13),%rdx 0x0000000000cccb5c <+1820>: 48 8d 3d bd fe 51 00 lea 0x51febd(%rip),%rdi # 0x11eca20 0x0000000000cccb63 <+1827>: 44 89 e6 mov %r12d,%esi 0x0000000000cccb66 <+1830>: 31 c0 xor %eax,%eax 0x0000000000cccb68 <+1832>: e8 d3 b1 df ff call 0xac7d40 <_Z15sql_print_errorPKcz> 14921 ulong j; 14922 14923 dict_index_t* index = innobase_get_index(i); 14924 14925 if (index == NULL) { 14926 ib_table->dict_frm_mismatch = DICT_FRM_INCONSISTENT_KEYS; 0x0000000000cccb6d <+1837>: 41 c7 87 84 00 00 00 03 00 00 00 movl $0x3,0x84(%r15) 14927 ib_push_frm_error(m_user_thd, ib_table, table, num_innodb_index, true); 0x0000000000cccb78 <+1848>: 48 8b 8d c0 ed ff ff mov -0x1240(%rbp),%rcx 0x0000000000cccb7f <+1855>: 41 b8 01 00 00 00 mov $0x1,%r8d 0x0000000000cccb85 <+1861>: 48 8b 53 10 mov 0x10(%rbx),%rdx 0x0000000000cccb89 <+1865>: 48 8b bb 88 07 00 00 mov 0x788(%rbx),%rdi 0x0000000000cccb90 <+1872>: 4c 89 fe mov %r15,%rsi 0x0000000000cccb93 <+1875>: e8 68 b3 ff ff call 0xcc7f00 <_Z17ib_push_frm_errorP3THDP12dict_table_tP5TABLEmb> 0x0000000000cccb98 <+1880>: e9 5b fd ff ff jmp 0xccc8f8 <_ZN11ha_innobase8info_lowEjb+1208> 9164 key = &table->key_info[keynr]; 0x0000000000cccb9d <+1885>: 44 89 e0 mov %r12d,%eax 9165 index = dict_table_get_index_on_name(ib_table, key->name.str); 0x0000000000cccba0 <+1888>: 4c 89 f7 mov %r14,%rdi 9164 key = &table->key_info[keynr]; 0x0000000000cccba3 <+1891>: 4c 8d 2c 40 lea (%rax,%rax,2),%r13 0x0000000000cccba7 <+1895>: 49 c1 e5 06 shl $0x6,%r13 0x0000000000cccbab <+1899>: 4c 03 aa a8 00 00 00 add 0xa8(%rdx),%r13 9165 index = dict_table_get_index_on_name(ib_table, key->name.str); 0x0000000000cccbb2 <+1906>: 49 8b 75 40 mov 0x40(%r13),%rsi 0x0000000000cccbb6 <+1910>: e8 c5 e5 19 00 call 0xe6b180 <_Z28dict_table_get_index_on_nameP12dict_table_tPKc> 0x0000000000cccbbb <+1915>: e9 13 fc ff ff jmp 0xccc7d3 <_ZN11ha_innobase8info_lowEjb+915> 14629 rec_per_key = 1.0; 14630 } else { 14631 /* Need to exclude rows with NULL values from 14632 rec_per_key calculation */ 14633 rec_per_key 14634 = static_cast(records - n_null) 14635 / static_cast(n_diff - n_null); 0x0000000000cccbc0 <+1920>: 48 89 fe mov %rdi,%rsi 0x0000000000cccbc3 <+1923>: 83 e7 01 and $0x1,%edi 0x0000000000cccbc6 <+1926>: 48 d1 ee shr %rsi 0x0000000000cccbc9 <+1929>: 48 09 fe or %rdi,%rsi 0x0000000000cccbcc <+1932>: f3 48 0f 2a c6 cvtsi2ss %rsi,%xmm0 0x0000000000cccbd1 <+1937>: f3 0f 58 c0 addss %xmm0,%xmm0 0x0000000000cccbd5 <+1941>: e9 d5 fe ff ff jmp 0xcccaaf <_ZN11ha_innobase8info_lowEjb+1647> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2033 lock_mutex.wr_lock(); 0x0000000000cccbda <+1946>: 4d 8d a7 f4 01 00 00 lea 0x1f4(%r15),%r12 /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000cccbe1 <+1953>: ba 01 00 00 80 mov $0x80000001,%edx 0x0000000000cccbe6 <+1958>: 31 c0 xor %eax,%eax /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 128 uint32_t lk= 0; 0x0000000000cccbe8 <+1960>: c7 85 d0 ed ff ff 00 00 00 00 movl $0x0,-0x1230(%rbp) /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000cccbf2 <+1970>: f0 41 0f b1 14 24 lock cmpxchg %edx,(%r12) 0x0000000000cccbf8 <+1976>: 0f 85 25 03 00 00 jne 0xcccf23 <_ZN11ha_innobase8info_lowEjb+2787> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14786 ut_a(ib_table->stat_initialized); 0x0000000000cccbfe <+1982>: 41 f6 87 a0 01 00 00 01 testb $0x1,0x1a0(%r15) 0x0000000000cccc06 <+1990>: 0f 84 3c 06 00 00 je 0xccd248 <_ZN11ha_innobase8info_lowEjb+3592> 14792 14793 stat_sum_of_other_index_sizes 14794 = ib_table->stat_sum_of_other_index_sizes; 0x0000000000cccc0c <+1996>: 49 8b 87 d0 01 00 00 mov 0x1d0(%r15),%rax 14788 n_rows = ib_table->stat_n_rows; 0x0000000000cccc13 <+2003>: 4d 8b b7 c0 01 00 00 mov 0x1c0(%r15),%r14 14789 14790 stat_clustered_index_size 14791 = ib_table->stat_clustered_index_size; 0x0000000000cccc1a <+2010>: 4d 8b af c8 01 00 00 mov 0x1c8(%r15),%r13 14792 14793 stat_sum_of_other_index_sizes 14794 = ib_table->stat_sum_of_other_index_sizes; 0x0000000000cccc21 <+2017>: 48 89 85 c0 ed ff ff mov %rax,-0x1240(%rbp) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 138 if (lk != HOLDER + 1) 0x0000000000cccc28 <+2024>: f0 41 81 04 24 ff ff ff 7f lock addl $0x7fffffff,(%r12) 0x0000000000cccc31 <+2033>: 74 08 je 0xcccc3b <_ZN11ha_innobase8info_lowEjb+2043> 139 { 140 DBUG_ASSERT(lk & HOLDER); 141 wake(); 0x0000000000cccc33 <+2035>: 4c 89 e7 mov %r12,%rdi 0x0000000000cccc36 <+2038>: e8 55 83 0f 00 call 0xdc4f90 <_ZN14srw_mutex_implILb1EE4wakeEv> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14808 if (n_rows == 0 && !(flag & (HA_STATUS_TIME | HA_STATUS_OPEN))) { 0x0000000000cccc3b <+2043>: 4d 85 f6 test %r14,%r14 0x0000000000cccc3e <+2046>: 75 11 jne 0xcccc51 <_ZN11ha_innobase8info_lowEjb+2065> 0x0000000000cccc40 <+2048>: 45 31 f6 xor %r14d,%r14d 0x0000000000cccc43 <+2051>: f7 85 cc ed ff ff 04 01 00 00 testl $0x104,-0x1234(%rbp) 0x0000000000cccc4d <+2061>: 41 0f 94 c6 sete %r14b 14809 n_rows++; 14810 } 14811 14812 /* Fix bug#40386: Not flushing query cache after truncate. 14813 n_rows can not be 0 unless the table is empty, set to 1 14814 instead. The original problem of bug#29507 is actually 14815 fixed in the server code. */ 14816 if (thd_sql_command(m_user_thd) == SQLCOM_TRUNCATE) { 0x0000000000cccc51 <+2065>: 48 8b bb 88 07 00 00 mov 0x788(%rbx),%rdi 0x0000000000cccc58 <+2072>: e8 43 2d a9 ff call 0x75f9a0 0x0000000000cccc5d <+2077>: 83 f8 08 cmp $0x8,%eax 0x0000000000cccc60 <+2080>: 0f 84 d0 02 00 00 je 0xcccf36 <_ZN11ha_innobase8info_lowEjb+2806> 14827 } 14828 14829 stats.records = (ha_rows) n_rows; 0x0000000000cccc66 <+2086>: 4c 89 b3 80 00 00 00 mov %r14,0x80(%rbx) 14830 stats.deleted = 0; 0x0000000000cccc6d <+2093>: 48 c7 83 88 00 00 00 00 00 00 00 movq $0x0,0x88(%rbx) 14831 if (fil_space_t* space = ib_table->space) { 0x0000000000cccc78 <+2104>: 4d 8b 67 30 mov 0x30(%r15),%r12 0x0000000000cccc7c <+2108>: 4d 85 e4 test %r12,%r12 0x0000000000cccc7f <+2111>: 0f 84 df 01 00 00 je 0xccce64 <_ZN11ha_innobase8info_lowEjb+2596> 0x0000000000cccc85 <+2117>: 49 8b 84 24 28 01 00 00 mov 0x128(%r12),%rax /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 747 if (full_crc32(flags)) { 0x0000000000cccc8d <+2125>: a8 10 test $0x10,%al 0x0000000000cccc8f <+2127>: 0f 84 dc 02 00 00 je 0xcccf71 <_ZN11ha_innobase8info_lowEjb+2865> 711 page_ssize = FSP_FLAGS_FCRC32_GET_PAGE_SSIZE(flags); 0x0000000000cccc95 <+2133>: 83 e0 0f and $0xf,%eax 0x0000000000cccc98 <+2136>: 48 83 f8 07 cmp $0x7,%rax 0x0000000000cccc9c <+2140>: 0f 87 be 03 00 00 ja 0xccd060 <_ZN11ha_innobase8info_lowEjb+3104> 0x0000000000cccca2 <+2146>: 48 8d 0d 37 84 52 00 lea 0x528437(%rip),%rcx # 0x11f50e0 0x0000000000cccca9 <+2153>: 8b 0c 81 mov (%rcx,%rax,4),%ecx 0x0000000000ccccac <+2156>: 4c 89 e8 mov %r13,%rax 0x0000000000ccccaf <+2159>: 4c 8b ad c0 ed ff ff mov -0x1240(%rbp),%r13 0x0000000000ccccb6 <+2166>: 48 0f af c1 imul %rcx,%rax 0x0000000000ccccba <+2170>: 4c 0f af e9 imul %rcx,%r13 /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14835 * size; 0x0000000000ccccbe <+2174>: 48 89 43 50 mov %rax,0x50(%rbx) 14836 stats.index_file_length 14837 = ulonglong(stat_sum_of_other_index_sizes) 14838 * size; 0x0000000000ccccc2 <+2178>: 4c 89 6b 60 mov %r13,0x60(%rbx) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 1071 latch.rd_lock(SRW_LOCK_CALL); 0x0000000000ccccc6 <+2182>: 49 8d bc 24 a0 00 00 00 lea 0xa0(%r12),%rdi /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 512 if (psi_likely(pfs_psi != nullptr)) 0x0000000000ccccce <+2190>: 49 83 bc 24 a0 00 00 00 00 cmpq $0x0,0xa0(%r12) 0x0000000000ccccd7 <+2199>: 0f 84 e3 03 00 00 je 0xccd0c0 <_ZN11ha_innobase8info_lowEjb+3200> 513 psi_rd_lock(file, line); 0x0000000000ccccdd <+2205>: 48 8d 35 1c 1e 52 00 lea 0x521e1c(%rip),%rsi # 0x11eeb00 0x0000000000cccce4 <+2212>: 4d 8d ac 24 a8 00 00 00 lea 0xa8(%r12),%r13 0x0000000000ccccec <+2220>: 4d 8d b4 24 ac 00 00 00 lea 0xac(%r12),%r14 0x0000000000ccccf4 <+2228>: ba 2f 04 00 00 mov $0x42f,%edx 0x0000000000ccccf9 <+2233>: e8 82 86 0f 00 call 0xdc5380 <_ZN13srw_lock_implILb0EE11psi_rd_lockEPKcj> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14661 if (size_in_header < FSP_EXTENT_SIZE) { 0x0000000000ccccfe <+2238>: 48 8d 05 5b f5 66 01 lea 0x166f55b(%rip),%rax # 0x233c260 14660 ulint size_in_header = space.size_in_header; 0x0000000000cccd05 <+2245>: 45 8b 84 24 84 00 00 00 mov 0x84(%r12),%r8d 14661 if (size_in_header < FSP_EXTENT_SIZE) { 0x0000000000cccd0d <+2253>: 48 8b 30 mov (%rax),%rsi 0x0000000000cccd10 <+2256>: b8 40 00 00 00 mov $0x40,%eax 0x0000000000cccd15 <+2261>: 48 83 fe 0d cmp $0xd,%rsi 0x0000000000cccd19 <+2265>: 77 09 ja 0xcccd24 <_ZN11ha_innobase8info_lowEjb+2276> 0x0000000000cccd1b <+2267>: b8 00 00 10 00 mov $0x100000,%eax 0x0000000000cccd20 <+2272>: 89 f1 mov %esi,%ecx 0x0000000000cccd22 <+2274>: d3 e8 shr %cl,%eax 0x0000000000cccd24 <+2276>: 31 c9 xor %ecx,%ecx 0x0000000000cccd26 <+2278>: 49 39 c0 cmp %rax,%r8 0x0000000000cccd29 <+2281>: 0f 82 f8 00 00 00 jb 0xccce27 <_ZN11ha_innobase8info_lowEjb+2535> 14662 return 0; /* TODO: count free frag pages and 14663 return a value based on that */ 14664 } 14665 14666 /* Below we play safe when counting free extents above the free limit: 14667 some of them will contain extent descriptor pages, and therefore 14668 will not be free extents */ 14669 ut_ad(size_in_header >= space.free_limit); 14670 ulint n_free_up = 14671 (size_in_header - space.free_limit) / FSP_EXTENT_SIZE; 0x0000000000cccd2f <+2287>: 41 8b 84 24 8c 00 00 00 mov 0x8c(%r12),%eax 0x0000000000cccd37 <+2295>: 4c 89 c2 mov %r8,%rdx 0x0000000000cccd3a <+2298>: b1 40 mov $0x40,%cl 0x0000000000cccd3c <+2300>: 48 29 c2 sub %rax,%rdx 0x0000000000cccd3f <+2303>: 48 83 fe 0d cmp $0xd,%rsi 0x0000000000cccd43 <+2307>: 48 89 d0 mov %rdx,%rax 0x0000000000cccd46 <+2310>: 77 0b ja 0xcccd53 <_ZN11ha_innobase8info_lowEjb+2323> 0x0000000000cccd48 <+2312>: 89 f1 mov %esi,%ecx 0x0000000000cccd4a <+2314>: bf 00 00 10 00 mov $0x100000,%edi 0x0000000000cccd4f <+2319>: d3 ef shr %cl,%edi 0x0000000000cccd51 <+2321>: 89 f9 mov %edi,%ecx 0x0000000000cccd53 <+2323>: 31 d2 xor %edx,%edx 0x0000000000cccd55 <+2325>: 48 f7 f1 div %rcx 14658 fsp_get_available_space_in_free_extents(const fil_space_t& space) 0x0000000000cccd58 <+2328>: 49 8b 94 24 28 01 00 00 mov 0x128(%r12),%rdx /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 747 if (full_crc32(flags)) { 0x0000000000cccd60 <+2336>: f6 c2 10 test $0x10,%dl /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14671 (size_in_header - space.free_limit) / FSP_EXTENT_SIZE; 0x0000000000cccd63 <+2339>: 49 89 c1 mov %rax,%r9 /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 747 if (full_crc32(flags)) { 0x0000000000cccd66 <+2342>: 0f 84 68 02 00 00 je 0xcccfd4 <_ZN11ha_innobase8info_lowEjb+2964> 711 page_ssize = FSP_FLAGS_FCRC32_GET_PAGE_SSIZE(flags); 0x0000000000cccd6c <+2348>: 83 e2 0f and $0xf,%edx 0x0000000000cccd6f <+2351>: 31 ff xor %edi,%edi 0x0000000000cccd71 <+2353>: 48 83 fa 07 cmp $0x7,%rdx 0x0000000000cccd75 <+2357>: 77 0a ja 0xcccd81 <_ZN11ha_innobase8info_lowEjb+2369> 0x0000000000cccd77 <+2359>: 48 8d 0d 62 83 52 00 lea 0x528362(%rip),%rcx # 0x11f50e0 0x0000000000cccd7e <+2366>: 8b 3c 91 mov (%rcx,%rdx,4),%edi /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14674 if (n_free_up > 0) { 0x0000000000cccd81 <+2369>: 48 85 c0 test %rax,%rax 0x0000000000cccd84 <+2372>: 74 30 je 0xcccdb6 <_ZN11ha_innobase8info_lowEjb+2422> 14676 n_free_up -= n_free_up / (size / FSP_EXTENT_SIZE); 0x0000000000cccd86 <+2374>: 48 83 fe 0d cmp $0xd,%rsi 14675 n_free_up--; 0x0000000000cccd8a <+2378>: 4c 8d 48 ff lea -0x1(%rax),%r9 14676 n_free_up -= n_free_up / (size / FSP_EXTENT_SIZE); 0x0000000000cccd8e <+2382>: b9 40 00 00 00 mov $0x40,%ecx 0x0000000000cccd93 <+2387>: 77 0b ja 0xcccda0 <_ZN11ha_innobase8info_lowEjb+2400> 0x0000000000cccd95 <+2389>: 89 f1 mov %esi,%ecx 0x0000000000cccd97 <+2391>: b8 00 00 10 00 mov $0x100000,%eax 0x0000000000cccd9c <+2396>: d3 e8 shr %cl,%eax 0x0000000000cccd9e <+2398>: 89 c1 mov %eax,%ecx 0x0000000000cccda0 <+2400>: 48 89 f8 mov %rdi,%rax 0x0000000000cccda3 <+2403>: 31 d2 xor %edx,%edx 0x0000000000cccda5 <+2405>: 48 f7 f1 div %rcx 0x0000000000cccda8 <+2408>: 31 d2 xor %edx,%edx 0x0000000000cccdaa <+2410>: 48 89 c1 mov %rax,%rcx 0x0000000000cccdad <+2413>: 4c 89 c8 mov %r9,%rax 0x0000000000cccdb0 <+2416>: 48 f7 f1 div %rcx 0x0000000000cccdb3 <+2419>: 49 29 c1 sub %rax,%r9 14677 } 14678 14679 /* We reserve 1 extent + 0.5 % of the space size to undo logs 14680 and 1 extent + 0.5 % to cleaning operations; NOTE: this source 14681 code is duplicated in the function above! */ 14682 14683 ulint reserve = 2 + ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; 0x0000000000cccdb6 <+2422>: 48 83 fe 0d cmp $0xd,%rsi 0x0000000000cccdba <+2426>: b9 40 00 00 00 mov $0x40,%ecx 0x0000000000cccdbf <+2431>: 77 0b ja 0xcccdcc <_ZN11ha_innobase8info_lowEjb+2444> 0x0000000000cccdc1 <+2433>: 89 f1 mov %esi,%ecx 0x0000000000cccdc3 <+2435>: b8 00 00 10 00 mov $0x100000,%eax 0x0000000000cccdc8 <+2440>: d3 e8 shr %cl,%eax 0x0000000000cccdca <+2442>: 89 c1 mov %eax,%ecx 0x0000000000cccdcc <+2444>: 31 d2 xor %edx,%edx 0x0000000000cccdce <+2446>: 4c 89 c0 mov %r8,%rax 0x0000000000cccdd1 <+2449>: 48 f7 f1 div %rcx 0x0000000000cccdd4 <+2452>: 48 ba c3 f5 28 5c 8f c2 f5 28 movabs $0x28f5c28f5c28f5c3,%rdx 14685 14686 if (reserve > n_free) { 0x0000000000cccdde <+2462>: 31 c9 xor %ecx,%ecx 14683 ulint reserve = 2 + ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; 0x0000000000cccde0 <+2464>: 48 c1 e8 02 shr $0x2,%rax 0x0000000000cccde4 <+2468>: 48 f7 e2 mul %rdx 14684 ulint n_free = space.free_len + n_free_up; 0x0000000000cccde7 <+2471>: 41 8b 84 24 88 00 00 00 mov 0x88(%r12),%eax 14683 ulint reserve = 2 + ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; 0x0000000000cccdef <+2479>: 48 c1 ea 02 shr $0x2,%rdx 14684 ulint n_free = space.free_len + n_free_up; 0x0000000000cccdf3 <+2483>: 49 01 c1 add %rax,%r9 14683 ulint reserve = 2 + ((size_in_header / FSP_EXTENT_SIZE) * 2) / 200; 0x0000000000cccdf6 <+2486>: 48 83 c2 02 add $0x2,%rdx 14685 14686 if (reserve > n_free) { 0x0000000000cccdfa <+2490>: 4c 39 ca cmp %r9,%rdx 0x0000000000cccdfd <+2493>: 77 28 ja 0xccce27 <_ZN11ha_innobase8info_lowEjb+2535> 14687 return(0); 14688 } 14689 14690 return(static_cast(n_free - reserve) 0x0000000000cccdff <+2495>: 49 29 d1 sub %rdx,%r9 14691 * FSP_EXTENT_SIZE * (size / 1024)); 0x0000000000ccce02 <+2498>: 48 83 fe 0d cmp $0xd,%rsi 0x0000000000ccce06 <+2502>: b8 40 00 00 00 mov $0x40,%eax 0x0000000000ccce0b <+2507>: 77 09 ja 0xccce16 <_ZN11ha_innobase8info_lowEjb+2518> 0x0000000000ccce0d <+2509>: b8 00 00 10 00 mov $0x100000,%eax 0x0000000000ccce12 <+2514>: 89 f1 mov %esi,%ecx 0x0000000000ccce14 <+2516>: d3 e8 shr %cl,%eax 0x0000000000ccce16 <+2518>: 48 89 f9 mov %rdi,%rcx 0x0000000000ccce19 <+2521>: 81 e1 00 fc ff ff and $0xfffffc00,%ecx 0x0000000000ccce1f <+2527>: 49 0f af c9 imul %r9,%rcx 0x0000000000ccce23 <+2531>: 48 0f af c8 imul %rax,%rcx 14839 space->s_lock(); 14840 stats.delete_length = 1024 14841 * fsp_get_available_space_in_free_extents( 14842 *space); 0x0000000000ccce27 <+2535>: 48 89 4b 70 mov %rcx,0x70(%rbx) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 519 if (psi_likely(pfs_psi != nullptr)) 0x0000000000ccce2b <+2539>: 49 8b bc 24 a0 00 00 00 mov 0xa0(%r12),%rdi 0x0000000000ccce33 <+2547>: 48 85 ff test %rdi,%rdi 0x0000000000ccce36 <+2550>: 74 10 je 0xccce48 <_ZN11ha_innobase8info_lowEjb+2568> 520 PSI_RWLOCK_CALL(unlock_rwlock)(pfs_psi); 0x0000000000ccce38 <+2552>: 48 8d 05 c1 17 d2 00 lea 0xd217c1(%rip),%rax # 0x19ee600 0x0000000000ccce3f <+2559>: 48 8b 00 mov (%rax),%rax 0x0000000000ccce42 <+2562>: ff 90 68 01 00 00 call *0x168(%rax) /usr/include/c++/4.8.2/bits/atomic_base.h: 624 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccce48 <+2568>: b8 ff ff ff ff mov $0xffffffff,%eax 0x0000000000ccce4d <+2573>: f0 41 0f c1 06 lock xadd %eax,(%r14) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 291 if (lk == WRITER + 1) 0x0000000000ccce52 <+2578>: 3d 01 00 00 80 cmp $0x80000001,%eax 0x0000000000ccce57 <+2583>: 0f 84 aa 01 00 00 je 0xccd007 <_ZN11ha_innobase8info_lowEjb+3015> 0x0000000000ccce5d <+2589>: 4c 8b b3 80 00 00 00 mov 0x80(%rbx),%r14 /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14846 stats.mrr_length_per_rec= (uint)ref_length + 8; // 8 = max(sizeof(void *)); 0x0000000000ccce64 <+2596>: 8b 83 a4 01 00 00 mov 0x1a4(%rbx),%eax 14845 stats.check_time = 0; 0x0000000000ccce6a <+2602>: 48 c7 83 a0 00 00 00 00 00 00 00 movq $0x0,0xa0(%rbx) 14846 stats.mrr_length_per_rec= (uint)ref_length + 8; // 8 = max(sizeof(void *)); 0x0000000000ccce75 <+2613>: 83 c0 08 add $0x8,%eax 14847 14848 if (stats.records == 0) { 0x0000000000ccce78 <+2616>: 4d 85 f6 test %r14,%r14 14846 stats.mrr_length_per_rec= (uint)ref_length + 8; // 8 = max(sizeof(void *)); 0x0000000000ccce7b <+2619>: 89 83 bc 00 00 00 mov %eax,0xbc(%rbx) 14847 14848 if (stats.records == 0) { 0x0000000000ccce81 <+2625>: 0f 85 87 00 00 00 jne 0xcccf0e <_ZN11ha_innobase8info_lowEjb+2766> 14849 stats.mean_rec_length = 0; 0x0000000000ccce87 <+2631>: 48 c7 83 90 00 00 00 00 00 00 00 movq $0x0,0x90(%rbx) 0x0000000000ccce92 <+2642>: e9 5d f7 ff ff jmp 0xccc5f4 <_ZN11ha_innobase8info_lowEjb+436> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0stats.inl: 84 ib_uint32_t stat_persistent = table->stat_persistent; 0x0000000000ccce97 <+2647>: 41 8b 87 b0 01 00 00 mov 0x1b0(%r15),%eax 154 return; 155 } 156 157 dict_stats_upd_option_t opt; 158 159 if (dict_stats_is_persistent_enabled(table)) { 160 opt = DICT_STATS_FETCH_ONLY_IF_NOT_IN_MEMORY; 0x0000000000ccce9e <+2654>: be 03 00 00 00 mov $0x3,%esi 86 if (stat_persistent & DICT_STATS_PERSISTENT_ON) { 0x0000000000cccea3 <+2659>: a8 02 test $0x2,%al 0x0000000000cccea5 <+2661>: 75 19 jne 0xcccec0 <_ZN11ha_innobase8info_lowEjb+2688> 87 ut_ad(!(stat_persistent & DICT_STATS_PERSISTENT_OFF)); 88 return(true); 89 } else if (stat_persistent & DICT_STATS_PERSISTENT_OFF) { 0x0000000000cccea7 <+2663>: a8 04 test $0x4,%al 161 } else { 162 opt = DICT_STATS_RECALC_TRANSIENT; 0x0000000000cccea9 <+2665>: 40 b6 01 mov $0x1,%sil 89 } else if (stat_persistent & DICT_STATS_PERSISTENT_OFF) { 0x0000000000ccceac <+2668>: 75 12 jne 0xcccec0 <_ZN11ha_innobase8info_lowEjb+2688> 90 return(false); 91 } else { 92 return(srv_stats_persistent); 0x0000000000ccceae <+2670>: 48 8d 05 d4 ca 63 01 lea 0x163cad4(%rip),%rax # 0x2309989 161 } else { 162 opt = DICT_STATS_RECALC_TRANSIENT; 0x0000000000ccceb5 <+2677>: 80 38 01 cmpb $0x1,(%rax) 0x0000000000ccceb8 <+2680>: 19 f6 sbb %esi,%esi 0x0000000000ccceba <+2682>: 83 e6 fe and $0xfffffffe,%esi 0x0000000000cccebd <+2685>: 83 c6 03 add $0x3,%esi 163 } 164 165 dict_stats_update(table, opt); 0x0000000000cccec0 <+2688>: 4c 89 ff mov %r15,%rdi 0x0000000000cccec3 <+2691>: e8 08 f0 1b 00 call 0xe8bed0 <_Z17dict_stats_updateP12dict_table_t23dict_stats_upd_option_t> 0x0000000000cccec8 <+2696>: e9 1a f7 ff ff jmp 0xccc5e7 <_ZN11ha_innobase8info_lowEjb+423> 92 return(srv_stats_persistent); 0x0000000000cccecd <+2701>: 48 8d 05 b5 ca 63 01 lea 0x163cab5(%rip),%rax # 0x2309989 /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14746 if (dict_stats_is_persistent_enabled(ib_table)) { 0x0000000000ccced4 <+2708>: 80 38 00 cmpb $0x0,(%rax) 0x0000000000ccced7 <+2711>: 0f 84 ae f6 ff ff je 0xccc58b <_ZN11ha_innobase8info_lowEjb+331> 14747 if (is_analyze) { 0x0000000000cccedd <+2717>: 45 84 ed test %r13b,%r13b 14753 } else { 14754 /* This is e.g. 'SHOW INDEXES', fetch 14755 the persistent stats from disk. */ 14756 opt = DICT_STATS_FETCH_ONLY_IF_NOT_IN_MEMORY; 0x0000000000cccee0 <+2720>: 41 bc 03 00 00 00 mov $0x3,%r12d 14747 if (is_analyze) { 0x0000000000cccee6 <+2726>: 0f 84 9f f6 ff ff je 0xccc58b <_ZN11ha_innobase8info_lowEjb+331> 14748 if (!srv_read_only_mode) { 0x0000000000ccceec <+2732>: 48 8d 05 dd f3 66 01 lea 0x166f3dd(%rip),%rax # 0x233c2d0 14751 } 14752 opt = DICT_STATS_RECALC_PERSISTENT; 0x0000000000cccef3 <+2739>: 45 30 e4 xor %r12b,%r12b 14748 if (!srv_read_only_mode) { 0x0000000000cccef6 <+2742>: 80 38 00 cmpb $0x0,(%rax) 0x0000000000cccef9 <+2745>: 0f 85 8c f6 ff ff jne 0xccc58b <_ZN11ha_innobase8info_lowEjb+331> 14749 dict_stats_recalc_pool_del( 14750 ib_table->id, false); 0x0000000000ccceff <+2751>: 49 8b 3f mov (%r15),%rdi 0x0000000000cccf02 <+2754>: 31 f6 xor %esi,%esi 0x0000000000cccf04 <+2756>: e8 47 0f 1c 00 call 0xe8de50 <_Z26dict_stats_recalc_pool_delmb> 0x0000000000cccf09 <+2761>: e9 7d f6 ff ff jmp 0xccc58b <_ZN11ha_innobase8info_lowEjb+331> 14850 } else { 14851 stats.mean_rec_length = (ulong) 14852 (stats.data_file_length / stats.records); 0x0000000000cccf0e <+2766>: 48 8b 43 50 mov 0x50(%rbx),%rax 0x0000000000cccf12 <+2770>: 31 d2 xor %edx,%edx 0x0000000000cccf14 <+2772>: 49 f7 f6 div %r14 0x0000000000cccf17 <+2775>: 48 89 83 90 00 00 00 mov %rax,0x90(%rbx) 0x0000000000cccf1e <+2782>: e9 d1 f6 ff ff jmp 0xccc5f4 <_ZN11ha_innobase8info_lowEjb+436> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 134 void wr_lock() { if (!wr_lock_try()) wait_and_lock(); } 0x0000000000cccf23 <+2787>: 4c 89 e7 mov %r12,%rdi /usr/include/c++/4.8.2/bits/atomic_base.h: 577 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000cccf26 <+2790>: 89 85 d0 ed ff ff mov %eax,-0x1230(%rbp) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 134 void wr_lock() { if (!wr_lock_try()) wait_and_lock(); } 0x0000000000cccf2c <+2796>: e8 2f 81 0f 00 call 0xdc5060 <_ZN14srw_mutex_implILb1EE13wait_and_lockEv> 0x0000000000cccf31 <+2801>: e9 c8 fc ff ff jmp 0xcccbfe <_ZN11ha_innobase8info_lowEjb+1982> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14826 m_prebuilt->autoinc_last_value = 0; 0x0000000000cccf36 <+2806>: 48 8b 83 80 07 00 00 mov 0x780(%rbx),%rax 14818 n_rows = 1; 0x0000000000cccf3d <+2813>: 41 be 01 00 00 00 mov $0x1,%r14d 14819 14820 /* We need to reset the m_prebuilt value too, otherwise 14821 checks for values greater than the last value written 14822 to the table will fail and the autoinc counter will 14823 not be updated. This will force write_row() into 14824 attempting an update of the table's AUTOINC counter. */ 14825 14826 m_prebuilt->autoinc_last_value = 0; 0x0000000000cccf43 <+2819>: 48 c7 80 60 01 00 00 00 00 00 00 movq $0x0,0x160(%rax) 0x0000000000cccf4e <+2830>: e9 13 fd ff ff jmp 0xcccc66 <_ZN11ha_innobase8info_lowEjb+2086> 15012 } else { 15013 errkey = (unsigned int) ( 15014 (m_prebuilt->trx->error_key_num 15015 == ULINT_UNDEFINED) 0x0000000000cccf53 <+2835>: 48 8b 90 08 09 00 00 mov 0x908(%rax),%rdx 15016 ? ~0U 15017 : m_prebuilt->trx->error_key_num); 0x0000000000cccf5a <+2842>: b8 ff ff ff ff mov $0xffffffff,%eax 0x0000000000cccf5f <+2847>: 48 83 fa ff cmp $0xffffffffffffffff,%rdx 0x0000000000cccf63 <+2851>: 0f 45 c2 cmovne %edx,%eax 0x0000000000cccf66 <+2854>: 89 83 94 01 00 00 mov %eax,0x194(%rbx) 0x0000000000cccf6c <+2860>: e9 47 fa ff ff jmp 0xccc9b8 <_ZN11ha_innobase8info_lowEjb+1400> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 751 ulint zip_ssize = FSP_FLAGS_GET_ZIP_SSIZE(flags); 0x0000000000cccf71 <+2865>: 83 e0 1e and $0x1e,%eax 752 return zip_ssize 753 ? (UNIV_ZIP_SIZE_MIN >> 1) << zip_ssize 754 : unsigned(srv_page_size); 0x0000000000cccf74 <+2868>: 48 d1 e8 shr %rax 0x0000000000cccf77 <+2871>: 48 89 c1 mov %rax,%rcx 0x0000000000cccf7a <+2874>: 0f 84 a5 00 00 00 je 0xccd025 <_ZN11ha_innobase8info_lowEjb+3045> 0x0000000000cccf80 <+2880>: be 00 02 00 00 mov $0x200,%esi 0x0000000000cccf85 <+2885>: 89 f0 mov %esi,%eax 0x0000000000cccf87 <+2887>: d3 e0 shl %cl,%eax 0x0000000000cccf89 <+2889>: 48 89 c1 mov %rax,%rcx 0x0000000000cccf8c <+2892>: 4c 89 e8 mov %r13,%rax 0x0000000000cccf8f <+2895>: 4c 8b ad c0 ed ff ff mov -0x1240(%rbp),%r13 0x0000000000cccf96 <+2902>: 48 0f af c1 imul %rcx,%rax 0x0000000000cccf9a <+2906>: 4c 0f af e9 imul %rcx,%r13 0x0000000000cccf9e <+2910>: e9 1b fd ff ff jmp 0xccccbe <_ZN11ha_innobase8info_lowEjb+2174> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 2901 trx = trx_create(); 0x0000000000cccfa3 <+2915>: e8 58 a3 12 00 call 0xdf7300 <_Z10trx_createv> 2904 2905 innobase_trx_init(thd, trx); 0x0000000000cccfa8 <+2920>: 4c 89 f7 mov %r14,%rdi 0x0000000000cccfab <+2923>: 48 89 c6 mov %rax,%rsi 2903 trx->mysql_thd = thd; 0x0000000000cccfae <+2926>: 4c 89 b0 d8 08 00 00 mov %r14,0x8d8(%rax) 2901 trx = trx_create(); 0x0000000000cccfb5 <+2933>: 49 89 c4 mov %rax,%r12 2904 2905 innobase_trx_init(thd, trx); 0x0000000000cccfb8 <+2936>: e8 a3 7d fe ff call 0xcb4d60 2923 innobase_trx_init(thd, trx); 2924 return trx; 2925 } else { 2926 trx = innobase_trx_allocate(thd); 2927 thd_set_ha_data(thd, innodb_hton_ptr, trx); 0x0000000000cccfbd <+2941>: 48 8b 35 7c ff 62 01 mov 0x162ff7c(%rip),%rsi # 0x22fcf40 0x0000000000cccfc4 <+2948>: 4c 89 e2 mov %r12,%rdx 0x0000000000cccfc7 <+2951>: 4c 89 f7 mov %r14,%rdi 0x0000000000cccfca <+2954>: e8 c1 28 a9 ff call 0x75f890 0x0000000000cccfcf <+2959>: e9 20 f5 ff ff jmp 0xccc4f4 <_ZN11ha_innobase8info_lowEjb+180> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 751 ulint zip_ssize = FSP_FLAGS_GET_ZIP_SSIZE(flags); 0x0000000000cccfd4 <+2964>: 83 e2 1e and $0x1e,%edx 752 return zip_ssize 753 ? (UNIV_ZIP_SIZE_MIN >> 1) << zip_ssize 754 : unsigned(srv_page_size); 0x0000000000cccfd7 <+2967>: 48 d1 ea shr %rdx 0x0000000000cccfda <+2970>: 48 89 d1 mov %rdx,%rcx 0x0000000000cccfdd <+2973>: 0f 84 47 01 00 00 je 0xccd12a <_ZN11ha_innobase8info_lowEjb+3306> 0x0000000000cccfe3 <+2979>: bf 00 02 00 00 mov $0x200,%edi 0x0000000000cccfe8 <+2984>: d3 e7 shl %cl,%edi 0x0000000000cccfea <+2986>: e9 92 fd ff ff jmp 0xcccd81 <_ZN11ha_innobase8info_lowEjb+2369> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14591 ut_a(index->table->stat_initialized); 0x0000000000cccfef <+2991>: 48 8d 35 aa f1 51 00 lea 0x51f1aa(%rip),%rsi # 0x11ec1a0 0x0000000000cccff6 <+2998>: 48 8d 3d 9b 0e 52 00 lea 0x520e9b(%rip),%rdi # 0x11ede98 0x0000000000cccffd <+3005>: ba ff 38 00 00 mov $0x38ff,%edx 0x0000000000ccd002 <+3010>: e8 61 4e 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 292 wake(); 0x0000000000ccd007 <+3015>: 4c 89 ef mov %r13,%rdi 0x0000000000ccd00a <+3018>: e8 41 7f 0f 00 call 0xdc4f50 <_ZN14ssux_lock_implILb0EE4wakeEv> 0x0000000000ccd00f <+3023>: e9 49 fe ff ff jmp 0xccce5d <_ZN11ha_innobase8info_lowEjb+2589> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14533 ut_a(i > 0); 0x0000000000ccd014 <+3028>: 85 c9 test %ecx,%ecx 0x0000000000ccd016 <+3030>: 0f 84 b2 01 00 00 je 0xccd1ce <_ZN11ha_innobase8info_lowEjb+3470> 0x0000000000ccd01c <+3036>: 89 d1 mov %edx,%ecx 0x0000000000ccd01e <+3038>: 66 90 xchg %ax,%ax 0x0000000000ccd020 <+3040>: e9 8d f9 ff ff jmp 0xccc9b2 <_ZN11ha_innobase8info_lowEjb+1394> 0x0000000000ccd025 <+3045>: 48 8d 05 44 f2 66 01 lea 0x166f244(%rip),%rax # 0x233c270 0x0000000000ccd02c <+3052>: 8b 08 mov (%rax),%ecx 0x0000000000ccd02e <+3054>: 4c 89 e8 mov %r13,%rax 0x0000000000ccd031 <+3057>: 4c 8b ad c0 ed ff ff mov -0x1240(%rbp),%r13 0x0000000000ccd038 <+3064>: 48 0f af c1 imul %rcx,%rax 0x0000000000ccd03c <+3068>: 4c 0f af e9 imul %rcx,%r13 0x0000000000ccd040 <+3072>: e9 79 fc ff ff jmp 0xccccbe <_ZN11ha_innobase8info_lowEjb+2174> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2048 lock_mutex.wr_unlock(); 0x0000000000ccd045 <+3077>: 48 8b bd b8 ed ff ff mov -0x1248(%rbp),%rdi 0x0000000000ccd04c <+3084>: 48 89 c3 mov %rax,%rbx 0x0000000000ccd04f <+3087>: e8 8c c2 00 00 call 0xcd92e0 <_ZN14srw_mutex_implILb1EE9wr_unlockEv> 0x0000000000ccd054 <+3092>: 48 89 df mov %rbx,%rdi 0x0000000000ccd057 <+3095>: e8 34 94 35 00 call 0x1026490 <_Unwind_Resume> 0x0000000000ccd05c <+3100>: 0f 1f 40 00 nopl 0x0(%rax) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/fil0fil.h: 711 page_ssize = FSP_FLAGS_FCRC32_GET_PAGE_SSIZE(flags); 0x0000000000ccd060 <+3104>: 45 31 ed xor %r13d,%r13d 0x0000000000ccd063 <+3107>: 31 c0 xor %eax,%eax 0x0000000000ccd065 <+3109>: e9 54 fc ff ff jmp 0xccccbe <_ZN11ha_innobase8info_lowEjb+2174> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14542 for (i = 0; i < table->s->keys; i++) { 0x0000000000ccd06a <+3114>: 49 8b 06 mov (%r14),%rax 0x0000000000ccd06d <+3117>: 45 31 ed xor %r13d,%r13d 0x0000000000ccd070 <+3120>: 8b 80 70 03 00 00 mov 0x370(%rax),%eax 0x0000000000ccd076 <+3126>: 85 c0 test %eax,%eax 0x0000000000ccd078 <+3128>: 75 1a jne 0xccd094 <_ZN11ha_innobase8info_lowEjb+3156> 0x0000000000ccd07a <+3130>: e9 b9 00 00 00 jmp 0xccd138 <_ZN11ha_innobase8info_lowEjb+3320> 0x0000000000ccd07f <+3135>: 90 nop 0x0000000000ccd080 <+3136>: 49 8b 06 mov (%r14),%rax 0x0000000000ccd083 <+3139>: 41 83 c5 01 add $0x1,%r13d 0x0000000000ccd087 <+3143>: 44 3b a8 70 03 00 00 cmp 0x370(%rax),%r13d 0x0000000000ccd08e <+3150>: 0f 83 a4 00 00 00 jae 0xccd138 <_ZN11ha_innobase8info_lowEjb+3320> 14543 ind = dict_table_get_index_on_name( 14544 ib_table, table->key_info[i].name.str); 0x0000000000ccd094 <+3156>: 44 89 e8 mov %r13d,%eax 0x0000000000ccd097 <+3159>: 4c 89 ff mov %r15,%rdi 0x0000000000ccd09a <+3162>: 48 8d 04 40 lea (%rax,%rax,2),%rax 0x0000000000ccd09e <+3166>: 48 c1 e0 06 shl $0x6,%rax 0x0000000000ccd0a2 <+3170>: 49 03 86 a8 00 00 00 add 0xa8(%r14),%rax 0x0000000000ccd0a9 <+3177>: 48 8b 70 40 mov 0x40(%rax),%rsi 0x0000000000ccd0ad <+3181>: e8 ce e0 19 00 call 0xe6b180 <_Z28dict_table_get_index_on_nameP12dict_table_tPKc> 14545 14546 if (index == ind) { 0x0000000000ccd0b2 <+3186>: 49 39 c4 cmp %rax,%r12 0x0000000000ccd0b5 <+3189>: 75 c9 jne 0xccd080 <_ZN11ha_innobase8info_lowEjb+3136> 0x0000000000ccd0b7 <+3191>: 44 89 e9 mov %r13d,%ecx 0x0000000000ccd0ba <+3194>: e9 f3 f8 ff ff jmp 0xccc9b2 <_ZN11ha_innobase8info_lowEjb+1394> 0x0000000000ccd0bf <+3199>: 90 nop /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 515 lock.rd_lock(); 0x0000000000ccd0c0 <+3200>: 4d 8d ac 24 a8 00 00 00 lea 0xa8(%r12),%r13 0x0000000000ccd0c8 <+3208>: 4d 8d b4 24 ac 00 00 00 lea 0xac(%r12),%r14 0x0000000000ccd0d0 <+3216>: 48 8d 95 d0 ed ff ff lea -0x1230(%rbp),%rdx 215 uint32_t lk= 0; 0x0000000000ccd0d7 <+3223>: c7 85 d0 ed ff ff 00 00 00 00 movl $0x0,-0x1230(%rbp) 0x0000000000ccd0e1 <+3233>: 31 c0 xor %eax,%eax 216 while (!readers.compare_exchange_weak(lk, lk + 1, 217 std::memory_order_acquire, 218 std::memory_order_relaxed)) 0x0000000000ccd0e3 <+3235>: 8d 48 01 lea 0x1(%rax),%ecx /usr/include/c++/4.8.2/bits/atomic_base.h: 534 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccd0e6 <+3238>: 8b 02 mov (%rdx),%eax 0x0000000000ccd0e8 <+3240>: f0 41 0f b1 0e lock cmpxchg %ecx,(%r14) 0x0000000000ccd0ed <+3245>: 0f 84 0b fc ff ff je 0xccccfe <_ZN11ha_innobase8info_lowEjb+2238> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 219 if (lk & WRITER) 0x0000000000ccd0f3 <+3251>: 85 c0 test %eax,%eax /usr/include/c++/4.8.2/bits/atomic_base.h: 534 /usr/include/c++/4.8.2/bits/atomic_base.h: No such file or directory. 0x0000000000ccd0f5 <+3253>: 89 02 mov %eax,(%rdx) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/srw_lock.h: 219 if (lk & WRITER) 0x0000000000ccd0f7 <+3255>: 79 ea jns 0xccd0e3 <_ZN11ha_innobase8info_lowEjb+3235> 220 return false; 221 return true; 222 } 223 224 bool u_lock_try() 225 { 226 if (!writer.wr_lock_try()) 227 return false; 228 IF_DBUG_ASSERT(uint32_t lk=,) 229 readers.fetch_add(1, std::memory_order_acquire); 230 DBUG_ASSERT(lk < WRITER - 1); 231 return true; 232 } 233 234 bool wr_lock_try() 235 { 236 if (!writer.wr_lock_try()) 237 return false; 238 uint32_t lk= 0; 239 if (readers.compare_exchange_strong(lk, WRITER, 240 std::memory_order_acquire, 241 std::memory_order_relaxed)) 242 return true; 243 writer.wr_unlock(); 244 return false; 245 } 246 247 void rd_lock() { if (!rd_lock_try()) rd_wait(); } 0x0000000000ccd0f9 <+3257>: 4c 89 ef mov %r13,%rdi 0x0000000000ccd0fc <+3260>: e8 df 81 0f 00 call 0xdc52e0 <_ZN14ssux_lock_implILb0EE7rd_waitEv> 0x0000000000ccd101 <+3265>: e9 f8 fb ff ff jmp 0xccccfe <_ZN11ha_innobase8info_lowEjb+2238> 0x0000000000ccd106 <+3270>: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0x0000000000ccd110 <+3280>: 48 8b 43 10 mov 0x10(%rbx),%rax /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14890 num_innodb_index--; 0x0000000000ccd114 <+3284>: 48 83 ad c0 ed ff ff 01 subq $0x1,-0x1240(%rbp) 0x0000000000ccd11c <+3292>: 48 8b 08 mov (%rax),%rcx 0x0000000000ccd11f <+3295>: 8b b1 70 03 00 00 mov 0x370(%rcx),%esi 0x0000000000ccd125 <+3301>: e9 69 f5 ff ff jmp 0xccc693 <_ZN11ha_innobase8info_lowEjb+595> 0x0000000000ccd12a <+3306>: 48 8d 15 3f f1 66 01 lea 0x166f13f(%rip),%rdx # 0x233c270 0x0000000000ccd131 <+3313>: 8b 3a mov (%rdx),%edi 0x0000000000ccd133 <+3315>: e9 49 fc ff ff jmp 0xcccd81 <_ZN11ha_innobase8info_lowEjb+2369> 14552 for (ind = dict_table_get_first_index(ib_table); 0x0000000000ccd138 <+3320>: 49 8b 87 98 00 00 00 mov 0x98(%r15),%rax 0x0000000000ccd13f <+3327>: 48 85 c0 test %rax,%rax 0x0000000000ccd142 <+3330>: 75 15 jne 0xccd159 <_ZN11ha_innobase8info_lowEjb+3353> 0x0000000000ccd144 <+3332>: eb 3d jmp 0xccd183 <_ZN11ha_innobase8info_lowEjb+3395> 0x0000000000ccd146 <+3334>: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0(%rax,%rax,1) 0x0000000000ccd150 <+3344>: 48 8b 40 60 mov 0x60(%rax),%rax 0x0000000000ccd154 <+3348>: 48 85 c0 test %rax,%rax 0x0000000000ccd157 <+3351>: 74 2a je 0xccd183 <_ZN11ha_innobase8info_lowEjb+3395> 14553 ind != NULL; 14554 ind = dict_table_get_next_index(ind)) { 14555 if (index == ind) { 0x0000000000ccd159 <+3353>: 49 39 c4 cmp %rax,%r12 0x0000000000ccd15c <+3356>: 75 f2 jne 0xccd150 <_ZN11ha_innobase8info_lowEjb+3344> 14556 /* Temp index is internal to InnoDB, that is 14557 not present in the MySQL index list, so no 14558 need to print such mismatch warning. */ 14559 if (index->is_committed()) { 0x0000000000ccd15e <+3358>: 41 f6 44 24 31 10 testb $0x10,0x31(%r12) 0x0000000000ccd164 <+3364>: 75 30 jne 0xccd196 <_ZN11ha_innobase8info_lowEjb+3414> 14560 sql_print_warning( 14561 "Found index %s in InnoDB index list" 14562 " but not its MariaDB index number." 14563 " It could be an InnoDB internal" 14564 " index.", 14565 index->name()); 0x0000000000ccd166 <+3366>: 49 8b 74 24 10 mov 0x10(%r12),%rsi 0x0000000000ccd16b <+3371>: 48 8d 3d 1e 19 52 00 lea 0x52191e(%rip),%rdi # 0x11eea90 0x0000000000ccd172 <+3378>: 31 c0 xor %eax,%eax 0x0000000000ccd174 <+3380>: e8 07 db df ff call 0xacac80 <_Z17sql_print_warningPKcz> 14566 } 14567 return(~0U); 0x0000000000ccd179 <+3385>: b9 ff ff ff ff mov $0xffffffff,%ecx 0x0000000000ccd17e <+3390>: e9 2f f8 ff ff jmp 0xccc9b2 <_ZN11ha_innobase8info_lowEjb+1394> 14568 } 14569 } 14570 14571 ut_error; 0x0000000000ccd183 <+3395>: 48 8d 35 16 f0 51 00 lea 0x51f016(%rip),%rsi # 0x11ec1a0 0x0000000000ccd18a <+3402>: ba eb 38 00 00 mov $0x38eb,%edx 0x0000000000ccd18f <+3407>: 31 ff xor %edi,%edi 0x0000000000ccd191 <+3409>: e8 d2 4c 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> 14567 return(~0U); 0x0000000000ccd196 <+3414>: b9 ff ff ff ff mov $0xffffffff,%ecx 0x0000000000ccd19b <+3419>: e9 12 f8 ff ff jmp 0xccc9b2 <_ZN11ha_innobase8info_lowEjb+1394> 15002 const dict_index_t* err_index; 15003 15004 ut_a(m_prebuilt->trx); 0x0000000000ccd1a0 <+3424>: 48 8d 35 f9 ef 51 00 lea 0x51eff9(%rip),%rsi # 0x11ec1a0 0x0000000000ccd1a7 <+3431>: 48 8d 3d 92 66 52 00 lea 0x526692(%rip),%rdi # 0x11f3840 0x0000000000ccd1ae <+3438>: ba 9c 3a 00 00 mov $0x3a9c,%edx 0x0000000000ccd1b3 <+3443>: e8 b0 4c 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 1204 bool is_gen_clust() const { return type == DICT_CLUSTERED; } 0x0000000000ccd1b8 <+3448>: 41 0f b7 44 24 24 movzwl 0x24(%r12),%eax /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14524 i = 0; 0x0000000000ccd1be <+3454>: 31 c9 xor %ecx,%ecx /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 1204 bool is_gen_clust() const { return type == DICT_CLUSTERED; } 0x0000000000ccd1c0 <+3456>: 66 25 c0 3f and $0x3fc0,%ax /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14532 if (dict_index_is_auto_gen_clust(index)) { 0x0000000000ccd1c4 <+3460>: 66 83 f8 40 cmp $0x40,%ax 0x0000000000ccd1c8 <+3464>: 0f 85 e4 f7 ff ff jne 0xccc9b2 <_ZN11ha_innobase8info_lowEjb+1394> 14533 ut_a(i > 0); 0x0000000000ccd1ce <+3470>: 48 8d 35 cb ef 51 00 lea 0x51efcb(%rip),%rsi # 0x11ec1a0 0x0000000000ccd1d5 <+3477>: 48 8d 3d 74 66 52 00 lea 0x526674(%rip),%rdi # 0x11f3850 0x0000000000ccd1dc <+3484>: ba c5 38 00 00 mov $0x38c5,%edx 0x0000000000ccd1e1 <+3489>: e8 82 4c 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2033 lock_mutex.wr_lock(); 0x0000000000ccd1e6 <+3494>: 4d 8d a7 f4 01 00 00 lea 0x1f4(%r15),%r12 0x0000000000ccd1ed <+3501>: 4c 89 e7 mov %r12,%rdi 0x0000000000ccd1f0 <+3504>: e8 bb c0 00 00 call 0xcd92b0 <_ZN14srw_mutex_implILb1EE7wr_lockEv> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14731 ib_table->stat_initialized = true; 0x0000000000ccd1f5 <+3509>: 41 80 8f a0 01 00 00 01 orb $0x1,0x1a0(%r15) 14732 ib_table->stat_n_rows = 0; 0x0000000000ccd1fd <+3517>: 49 c7 87 c0 01 00 00 00 00 00 00 movq $0x0,0x1c0(%r15) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2048 lock_mutex.wr_unlock(); 0x0000000000ccd208 <+3528>: 4c 89 e7 mov %r12,%rdi /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14733 ib_table->stat_clustered_index_size = 0; 0x0000000000ccd20b <+3531>: 49 c7 87 c8 01 00 00 00 00 00 00 movq $0x0,0x1c8(%r15) 14734 ib_table->stat_sum_of_other_index_sizes = 0; 0x0000000000ccd216 <+3542>: 49 c7 87 d0 01 00 00 00 00 00 00 movq $0x0,0x1d0(%r15) /usr/src/debug/MariaDB-/src_0/storage/innobase/include/dict0mem.h: 2048 lock_mutex.wr_unlock(); 0x0000000000ccd221 <+3553>: e8 ba c0 00 00 call 0xcd92e0 <_ZN14srw_mutex_implILb1EE9wr_unlockEv> 0x0000000000ccd226 <+3558>: e9 14 f3 ff ff jmp 0xccc53f <_ZN11ha_innobase8info_lowEjb+255> /usr/src/debug/MariaDB-/src_0/storage/innobase/handler/ha_innodb.cc: 14918 ut_a(ib_table->stat_initialized); 0x0000000000ccd22b <+3563>: 48 8d 35 6e ef 51 00 lea 0x51ef6e(%rip),%rsi # 0x11ec1a0 0x0000000000ccd232 <+3570>: 48 8d 3d e4 65 52 00 lea 0x5265e4(%rip),%rdi # 0x11f381d 0x0000000000ccd239 <+3577>: ba 46 3a 00 00 mov $0x3a46,%edx 0x0000000000ccd23e <+3582>: e8 25 4c 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> 15029 } 0x0000000000ccd243 <+3587>: e8 88 a1 9a ff call 0x6773d0 <__stack_chk_fail@plt> 14786 ut_a(ib_table->stat_initialized); 0x0000000000ccd248 <+3592>: 48 8d 35 51 ef 51 00 lea 0x51ef51(%rip),%rsi # 0x11ec1a0 0x0000000000ccd24f <+3599>: 48 8d 3d c7 65 52 00 lea 0x5265c7(%rip),%rdi # 0x11f381d 0x0000000000ccd256 <+3606>: ba c2 39 00 00 mov $0x39c2,%edx 0x0000000000ccd25b <+3611>: e8 08 4c 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> 15005 ut_a(m_prebuilt->trx->magic_n == TRX_MAGIC_N); 0x0000000000ccd260 <+3616>: 48 8d 35 39 ef 51 00 lea 0x51ef39(%rip),%rsi # 0x11ec1a0 0x0000000000ccd267 <+3623>: 48 8d 3d 82 f1 51 00 lea 0x51f182(%rip),%rdi # 0x11ec3f0 0x0000000000ccd26e <+3630>: ba 9d 3a 00 00 mov $0x3a9d,%edx 0x0000000000ccd273 <+3635>: e8 f0 4b 9c ff call 0x691e68 <_Z23ut_dbg_assertion_failedPKcS0_j> 0x0000000000ccd278 <+3640>: e8 7f 6d 9b ff call 0x683ffc End of assembler dump. Warning: 'set logging off', an alias for the command 'set logging enabled', is deprecated. Use 'set logging enabled off'.