Index: handler/ha_innodb.cc =================================================================== --- handler/ha_innodb.cc (revision 2541) +++ handler/ha_innodb.cc (working copy) @@ -5832,15 +5832,25 @@ ha_innobase::info( stats.data_file_length = ((ulonglong) ib_table->stat_clustered_index_size) * UNIV_PAGE_SIZE; stats.index_file_length = ((ulonglong) ib_table->stat_sum_of_other_index_sizes) * UNIV_PAGE_SIZE; - stats.delete_length = - fsp_get_available_space_in_free_extents( - ib_table->space) * 1024; + + /* Since fsp_get_available_space_in_free_extents() is + acquiring locks, we only call it if we are not asked + to avoid locking. See Bug#38185. + We do not update delete_length if no locking is requested + so the "old" value can remain. delete_length is initialized + to 0 in the ha_statistics' constructor. */ + if (!(flag & HA_STATUS_NO_LOCK)) { + stats.delete_length = + fsp_get_available_space_in_free_extents( + ib_table->space) * 1024; + } + stats.check_time = 0; if (stats.records == 0) { stats.mean_rec_length = 0; } else { stats.mean_rec_length = (ulong) (stats.data_file_length / stats.records);