Comment 6 for bug 1079596

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

Based on the trace, the call stack is probably like: (in reverse order)

fsp_try_extend_data_file
fsp_reserve_free_extents
fseg_alloc_free_page_general
btr_page_alloc_low
btr_page_alloc
btr_page_split_and_insert

(with no NULL checking in btr_page_alloc and btr_page_split_and_insert -- atleast not for the return case, it is checked as

 if (new_block) {
  buf_block_dbg_add_level(new_block, SYNC_TREE_NODE_NEW);
 }

)

fsp_try_extend_data_file will fail if there is no space or quota limits (ENOSPC or EDQUOT respectively).

Non-innodb code -- my_write in my_write.c handles this with a loop till space is available (with special handling for EDQUOT) whereas os_file_write_func doesn't do that and fails if ENOSPC/EDQUOT.