Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Action Scheduler async queue crashes on WordPress 5.3 with `wpdb::db_server_info()` error

Đang mở
#1,361 5 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@girishpanchal30 đang làm issue này rồi.

Từ ngày 12/8/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

bug-report bug-report-triage crash-report

Summary

Visualizer's background Action Scheduler queue can terminate with an uncaught Call to undefined method wpdb::db_server_info() error during an AJAX request on WordPress 5.3.

Expected behavior: Scheduled actions are claimed and processed without a fatal error on supported WordPress environments.

Actual behavior: The async queue runner reaches the database claim path and throws before processing the batch.

Impact: Automatic background processing is interrupted for the affected site and request.

Customer context

  • Product / area: Visualizer background auto-sync / bundled Action Scheduler
  • Version: 4.0.7
  • Environment: WordPress 5.3.21, PHP 7.4.33
  • Integration / third party: Bundled woocommerce/action-scheduler 3.9.3
  • Reported error / symptom: Error: Call to undefined method wpdb::db_server_info() during an AJAX queue-runner request
  • Impact: 14 telemetry occurrences across one distinct site between 2026-07-31 20:01 UTC and 23:35 UTC.

Reproduction notes

  1. Install Visualizer 4.0.7 on WordPress 5.3.21 with PHP 7.4.33.
  2. Trigger the Action Scheduler async queue runner through its AJAX request path.
  3. When ActionScheduler_DBStore::claim_actions() checks database locking support, the reported production run throws Call to undefined method wpdb::db_server_info().

Reproduction is supported by the production stack trace; no local runtime reproduction was performed because the bundled vendor/ directory is absent from this checkout.

Diagnosis

Conclusion

Production telemetry provides a direct stack trace from Visualizer's bundled Action Scheduler path: ActionScheduler_DBStore::db_supports_skip_locked() throws because it calls wpdb::db_server_info() on WordPress 5.3.21. The Visualizer 4.0.7 release locks Action Scheduler 3.9.3, and an inspected copy of that exact dependency version contains the unconditional call. This is a confirmed compatibility defect in the shipped dependency path, not Themeisle SDK code.

Where this likely occurs
  • vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php — ActionScheduler_DBStore::db_supports_skip_locked() lines 1038-1042 in the inspected Action Scheduler 3.9.3 copy; it obtains $wpdb->db_version() and then unconditionally calls $wpdb->db_server_info(). Telemetry identifies the equivalent bundled Visualizer file at line 1041.
  • composer.lock — Action Scheduler package record lines 181-221 locks version 3.9.3 at reference c58cdbab17651303d406cd3b22cf9d75c71c986c; v4.0.7 contains the same lock entry.
  • index.php — Visualizer bootstrap lines 148-157 loads vendor/autoload.php and the bundled Action Scheduler entry point when present.
  • classes/Visualizer/Plugin.php — Visualizer_Plugin::VERSION line 31 identifies the checked release as 4.0.7.
  • Git commit bc14d4b8acebefc167ef51601a4898fb302d0b71 introduced the Action Scheduler dependency and bootstrap under “Replace WP-Cron with Action Scheduler for reliable auto-sync”; the telemetry is from the later v4.0.7 tag.
Engineering notes
  • The error occurs while ActionScheduler_DBStore::claim_actions() evaluates whether SKIP LOCKED is supported, before the queue batch is processed.
  • The reported request context is AJAX and the stack continues through ActionScheduler_AsyncRequest_QueueRunner, matching Visualizer's bundled async dependency loading path.
  • WordPress core source was not present in the inspected workspace, so the absence of wpdb::db_server_info() on WordPress 5.3.21 is established by the production exception rather than a local core-source check.
  • The telemetry names no Themeisle SDK frame and explicitly marks the crash as outside SDK code.
Test coverage status

tests/test-schedule.php covers Visualizer scheduled/background import behavior, including an unauthenticated background invocation, but does not exercise Action Scheduler queue claiming or the db_supports_skip_locked() compatibility branch. No relevant Action Scheduler compatibility coverage was found during inspection.

What to verify or explore next
  • Reproduce the async queue-runner request with Visualizer 4.0.7, WordPress 5.3.x, and the bundled dependency.
  • Check the Action Scheduler version range supported by Visualizer's released WordPress compatibility policy.
  • Run the existing scheduler test suite and a queue-claim integration scenario against WordPress 5.3.x and currently supported WordPress versions.
Unknowns / follow-up
  • Telemetry covers one site, so the prevalence across other WordPress 5.3 installations is unknown.
  • The customer site's database engine and version were not included in the crash report.

Confidence

Confidence: 98/100

Production telemetry records 14 AJAX crashes in Visualizer 4.0.7 on WordPress 5.3.21, and the release locks the stack frame's Action Scheduler 3.9.3 dependency whose inspected db_supports_skip_locked() implementation directly calls the unavailable wpdb::db_server_info() method.

Crash telemetry

Occurrences 14
Distinct sites 1
First seen 2026-07-31 20:01 UTC
Last seen 2026-07-31 23:35 UTC
Crash location product:vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php:1041
Request context ajax
Inside Themeisle SDK no
Product versions 4.0.7
WP versions 5.3.21
PHP versions 7.4.33
SDK versions 3.3.57

Source: automated crash report — visualizer, fingerprint 28da1fdfc9908565fa3b3beaadc83288
Generated by bug-report-triage (ID: bug-report-triage_6a6d8b7c4b6548.22981080)

Ngôn ngữ chính
PHP
Star
108
Fork
29
Merge trung bình
1 ngày 5 giờ
Pull request đã merge (30 ngày)
8

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Codeinwp/visualizer

Tất cả issue của Codeinwp/visualizer

Issue tương tự

Thêm issue về PHP

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.