There is a filter loop caused by \WC_Product_Variable_Data_Store_CPT::read_attributes and \WC_Product_Tables_Backwards_Compatibility::get_product_attributes/ the BC hooks need to either check the filter level (I used array_count_values($GLOBALS['wp_current_filter'])['get_post_metadata'] > 1 in debug) or unhook itself in get_product_attributes
There is a filter loop caused by
\WC_Product_Variable_Data_Store_CPT::read_attributes
and\WC_Product_Tables_Backwards_Compatibility::get_product_attributes
/ the BC hooks need to either check the filter level (I usedarray_count_values($GLOBALS['wp_current_filter'])['get_post_metadata'] > 1
in debug) or unhook itself inget_product_attributes