Make WordPress Core

Opened 2 years ago

#56688 new defect (bug)

Uncaught Requests_Exception using Requests::request_multiple

Reported by: clutch2sft's profile clutch2sft Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 6.0.2
Component: General Keywords:
Focuses: performance Cc:

Description

If a remote website does not respond to a request in Requests::request_multiple then CURL timeout is unhandled in the process.

PHP Fatal error:  Uncaught Requests_Exception: cURL error 28: Operation timed out after 10001 milliseconds with 0 out of 0 bytes received in /ggg/tg-plugin-development-local/app/public/wp-includes/Requests/Transport/cURL.php:443

Stack trace:
#0 /ggg/tg-plugin-development-local/app/public/wp-includes/Requests/Transport/cURL.php(179): Requests_Transport_cURL->process_response('', Array)
#1 /ggg/tg-plugin-development-local/app/public/wp-includes/class-requests.php(381): Requests_Transport_cURL->request('https://api.dyn...', Array, NULL, Array)
#2 /ggg/tg-plugin-development-local/app/public/wp-includes/class-requests.php(233): Requests::request('https://api.dyn...', Array, NULL, 'GET', Array)
#3 /ggg/tg-plugin-development-local/app/public/wp-content/plugins/tg-dynamic-dns-updater/public/class-tg-dynamic-dns-updater-public.php(149): Requests::get('https://api.dyn...', Array)
#4 /ggg/tg-plugin-development-local/app/public/wp-content/plugins/tg-dynamic-dns-updater/public/class-tg-dynamic-dns-updater-public.php(131): Tg_Dynamic_Dns_Updater_Public->tg_get_bearer_token('70f4>
#5 /ggg/tg-plugin-development-local/app/public/wp-includes/class-wp-hook.php(307): Tg_Dynamic_Dns_Updater_Public->tg_post_dynamic_dns('RHMgWcS1V5ybPtY...')
#6 /ggg/tg-plugin-development-local/app/public/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters('', Array)
#7 /ggg/tg-plugin-development-local/app/public/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
#8 /ggg/tg-plugin-development-local/app/public/wp-content/plugins/tg-dynamic-dns-updater/includes/class-tg-dynamic-dns-updater-async-api-task.php(34): do_action('wp_async_tg_inv...', 'RHMgWcS1V5ybPt>
#9 /ggg/tg-plugin-development-local/app/public/wp-content/plugins/tg-dynamic-dns-updater/includes/wp-async-task.php(164): tg_async_dns_api_task->run_action()
#10 /ggg/tg-plugin-development-local/app/public/wp-includes/class-wp-hook.php(307): WP_Async_Task->handle_postback('')
#11 /ggg/tg-plugin-development-local/app/public/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters('', Array)
#12 /ggg/tg-plugin-development-local/app/public/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
#13 /ggg/tg-plugin-development-local/app/public/wp-admin/admin-post.php(85): do_action('admin_post_wp_a...')
#14 {main}

To reproduce simply add non-responsive url to the requests array or reduce the timeout value to an unreasonable value to force a CURL timeout.

This issue is a bit beyond my understanding but has to do with the hook system calling other functions where the timeout occurs as best I can tell.... this creates a fault where it can't be caught by the calling code.

I also admit to not knowing what "Component" this belongs to.

Change History (0)

Note: See TracTickets for help on using tickets.