• Resolved alx359

    (@alx359)


    Translated a bunch of woo products (about 370) assigned to a temp language and later trashed them. When trying to delete the temp language itself the nginx server crashed and got the stack below. The products where already in the trash when the issue started to happen. Emptying the trash didn’t help either.

    PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in D:\localwp\evitaworks.eu\app\public\wp-includes\functions.php on line 7244
    PHP Stack trace:
    PHP 1. {main}() D:\localwp\domain.com\app\public\wp-admin\admin.php:0
    PHP 2. do_action($hook_name = 'toplevel_page_lmat') D:\localwp\domain.com\app\public\wp-admin\admin.php:264
    PHP 3. WP_Hook->do_action($args = [0 => '']) D:\localwp\domain.com\app\public\wp-includes\plugin.php:522
    PHP 4. WP_Hook->apply_filters($value = '', $args = [0 => '']) D:\localwp\domain.com\app\public\wp-includes\class-wp-hook.php:365
    PHP 5. Linguator\Settings\Controllers\LMAT_Settings->languages_page('') D:\localwp\domain.com\app\public\wp-includes\class-wp-hook.php:341
    PHP 6. Linguator\Settings\Controllers\LMAT_Settings->handle_actions($action = 'delete') D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\admin\settings\controllers\settings.php:498
    PHP 7. Linguator\Includes\Other\LMAT_Model->__call($name = 'delete_language', $arguments = [0 => 20776]) D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\admin\settings\controllers\settings.php:357
    PHP 8. call_user_func_array:{D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\includes\other\model.php:184}($callback = [0 => class Linguator\Includes\Models\Languages { private $options = class Linguator\Includes\Options\Options { ... }; private $translatable_objects = class Linguator\Includes\Models\Translatable\LMAT_Translatable_Objects { ... }; private $cache = class Linguator\Includes\Helpers\LMAT_Cache { ... }; private $is_creating_list = FALSE; private $languages_ready = TRUE; private $language_proxies = [...] }, 1 => 'delete'], $args = [0 => 20776]) D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\includes\other\model.php:184
    PHP 9. Linguator\Includes\Models\Languages->delete($lang_id = 20776) D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\includes\other\model.php:184
    PHP 10. Linguator\Includes\Models\Languages->update_translations($old_slug = 'en_gb', $new_slug = *uninitialized*) D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\includes\models\languages.php:470
    PHP 11. wp_remove_object_terms($object_id = 21297, $terms = 18407, $taxonomy = 'lmat_term_translations') D:\localwp\domain.com\app\public\wp-content\plugins\translate-words\includes\models\languages.php:1067
    PHP 12. wp_update_term_count($terms = [0 => '18407'], $taxonomy = 'lmat_term_translations', $do_deferred = *uninitialized*) D:\localwp\domain.com\app\public\wp-includes\taxonomy.php:3070
    PHP 13. wp_update_term_count_now($terms = [0 => '18407'], $taxonomy = 'lmat_term_translations') D:\localwp\domain.com\app\public\wp-includes\taxonomy.php:3567
    PHP 14. _update_generic_term_count($terms = [0 => 18407], $taxonomy = class WP_Taxonomy { public $name = 'lmat_term_translations'; public $label = FALSE; public $labels = class stdClass { public $name = FALSE; public $singular_name = FALSE; public $search_items = 'Search Tags'; public $popular_items = 'Popular Tags'; public $all_items = FALSE; public $parent_item = NULL; public $parent_item_colon = NULL; public $name_field_description = 'The name is how it appears on your site.'; public $slug_field_description = 'The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'; public $parent_field_description = NULL; public $desc_field_description = 'The description is not prominent by default; however, some themes may show it.'; public $edit_item = 'Edit Tag'; public $view_item = 'View Tag'; public $update_item = 'Update Tag'; public $add_new_item = 'Add Tag'; public $new_item_name = 'New Tag Name'; public $separate_items_with_commas = 'Separate tags with commas'; public $add_or_remove_items = 'Add or remove tags'; public $choose_from_most_used = 'Choose from the most used tags'; public $not_found = 'No tags found.'; public $no_terms = 'No tags'; public $filter_by_item = NULL; public $items_list_navigation = 'Tags list navigation'; public $items_list = 'Tags list'; public $most_used = 'Most Used'; public $back_to_items = '← Go to Tags'; public $item_link = 'Tag Link'; public $item_link_description = 'A link to a tag.'; public $menu_name = FALSE; public $name_admin_bar = FALSE; public $archives = FALSE; public $template_name = ' Archives' }; public $description = ''; public $public = FALSE; public $publicly_queryable = FALSE; public $hierarchical = FALSE; public $show_ui = FALSE; public $show_in_menu = FALSE; public $show_in_nav_menus = FALSE; public $show_tagcloud = FALSE; public $show_in_quick_edit = FALSE; public $show_admin_column = FALSE; public $meta_box_cb = 'post_tags_meta_box'; public $meta_box_sanitize_cb = 'taxonomy_meta_box_sanitize_cb_input'; public $object_type = [0 => 'term']; public $cap = class stdClass { public $manage_terms = 'manage_categories'; public $edit_terms = 'manage_categories'; public $delete_terms = 'manage_categories'; public $assign_terms = 'edit_posts' }; public $rewrite = FALSE; public $query_var = FALSE; public $update_count_callback = '_update_generic_term_count'; public $show_in_rest = FALSE; public $rest_base = FALSE; public $rest_namespace = FALSE; public $rest_controller_class = FALSE; public $rest_controller = NULL; public $default_term = NULL; public $sort = NULL; public $args = NULL; public $_builtin = FALSE; public $_lmat = TRUE }) D:\localwp\domain.com\app\public\wp-includes\taxonomy.php:3584
    PHP 15. wpdb->update($table = 'wp_term_taxonomy', $data = ['count' => '3'], $where = ['term_taxonomy_id' => 18407], $format = *uninitialized*, $where_format = *uninitialized*) D:\localwp\domain.com\app\public\wp-includes\taxonomy.php:4237
    PHP 16. wpdb->query($query = 'UPDATE
    wp_term_taxonomy SET count = 3 WHERE term_taxonomy_id = 18407') D:\localwp\domain.com\app\public\wp-includes\class-wpdb.php:2726
    PHP 17. wpdb->_do_query($query = 'UPDATE wp_term_taxonomy SET count = 3 WHERE term_taxonomy_id = 18407') D:\localwp\domain.com\app\public\wp-includes\class-wpdb.php:2271
    PHP 18. wpdb->get_caller() D:\localwp\domain.com\app\public\wp-includes\class-wpdb.php:2366
    PHP 19. wp_debug_backtrace_summary($ignore_class = 'wpdb', $skip_frames = *uninitialized*, $pretty = *uninitialized*) D:\localwp\domain.com\app\public\wp-includes\class-wpdb.php:4127
    PHP 20. debug_backtrace($options = FALSE) D:\localwp\domain.com\app\public\wp-includes\functions.php:7244
    PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 131072 bytes) in D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\admin\class-wc-admin-settings.php on line 530
    PHP Stack trace:
    PHP 1. WooCommerce->log_errors() D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-woocommerce.php:0
    PHP 2. WC_Logger->critical($message = 'Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)', $context = ['source' => 'fatal-errors', 'error' => ['type' => 1, 'file' => 'D:\\localwp\\domain.com\\app\\public\\wp-includes\\functions.php', 'line' => 7244], 'remote-logging' => TRUE, 'backtrace' => TRUE]) D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-woocommerce.php:453
    PHP 3. WC_Logger->log($level = 'critical', $message = 'Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes)', $context = ['source' => 'fatal-errors', 'error' => ['type' => 1, 'file' => 'D:\\localwp\\domain.com\\app\\public\\wp-includes\\functions.php', 'line' => 7244], 'remote-logging' => TRUE, 'backtrace' => TRUE]) D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-wc-logger.php:236
    PHP 4. WC_Logger->should_handle($level = 'critical') D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-wc-logger.php:173
    PHP 5. Automattic\WooCommerce\Utilities\LoggingUtil::logging_is_enabled() D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-wc-logger.php:116
    PHP 6. Automattic\WooCommerce\Internal\Admin\Logging\Settings->logging_is_enabled() D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\src\Utilities\LoggingUtil.php:28
    PHP 7. WC_Autoloader->autoload($class = 'WC_Admin_Settings') D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\src\Internal\Admin\Logging\Settings.php:449
    PHP 8. WC_Autoloader->load_file($path = 'D:\\localwp\\domain.com\\app\\public\\wp-content\\plugins\\woocommerce/includes/admin/class-wc-admin-settings.php') D:\localwp\domain.com\app\public\wp-content\plugins\woocommerce\includes\class-wc-autoloader.php:148
Viewing 3 replies - 1 through 3 (of 3 total)
  • Hi @alx359,

    Thank you for reporting this and for sharing the error details.

    In this case, the issue is likely related to the taxonomy data and translation-related cleanup process that runs when a language is deleted. Even if the WooCommerce products were already moved to the trash, the plugin still needs to remove associated translation records and taxonomy relationships, which can be heavy when a large number of items (like ~370 products) are involved and may result in high server load.

    We’ll review this scenario from our side and verify the cleanup logic. If the issue is confirmed to be coming from our plugin, we’ll optimize the taxonomy and translation cleanup process to reduce memory and server usage and address this in an upcoming update.

    Thank you for bringing this to our attention — it’s very helpful for improving the plugin. We’ll keep you informed once we have an update.

    Best regards,
    Aniket Dogra

    Hi @alx359,

    Thank you for your patience.

    We’ve reviewed this behavior on our end and optimized the cleanup logic to reduce server load and memory usage during the language deletion process. This improvement will be included in our upcoming plugin update, which we’ll release as soon as possible.

    Thanks again for reporting this — it really helps us improve the plugin experience.

    Best regards,
    Aniket Dogra

    Hi @alx359,

    Thank you for your patience.

    We’ve identified the issue and fixed it in the latest version of our plugin v2.0.6.
    Please update the plugin to this version and try again.

    After updating, kindly check if the issue still occurs. If you continue to face the same problem, feel free to let us know — we’ll be happy to look into it further.

    Looking forward to your update.

    Best regards,
    Aniket Dogra

Viewing 3 replies - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.