Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review and update the Net_Gearman package in AtoM 2.8.x #1814

Open
sunnywd opened this issue May 10, 2024 · 0 comments
Open

Review and update the Net_Gearman package in AtoM 2.8.x #1814

sunnywd opened this issue May 10, 2024 · 0 comments
Labels
Type: bug A flaw in the code that causes the software to produce an incorrect or unexpected result.

Comments

@sunnywd
Copy link
Contributor

sunnywd commented May 10, 2024

Current Behavior

Steps to reproduce the behavior
Issues with job process management have been present in older versions but have become more frequent since versions 2.7 and in 2.8.1. The problem is replicable in both development and test environments, though it occurs more frequently in our test environment.

When generating or deleting a FindingAid using the UI, requests are randomly ignored. A job is stored in the AtoM database with a 'Running' status, but the log remains empty, with no informational or error logs in Gearman. As a result, these 'Running' jobs accumulate, preventing further actions on the same job or processing of other jobs. This issue does not appear to be related to memory usage, as a successful request completes the FindingAid generation/deletion within a few seconds. The fonds I tested contains five subseries with fewer than 100 descendant files.

Reproducing the issue is challenging because it occurs randomly when generating and deleting a FindingAid multiple times with intervals using the AtoM UI. Additionally, I observed instances where an Atom worker completes its job, but AtoM does not receive the status update, leaving the job status as 'Running'.

Expected Behavior

Background jobs, such as FindingAid generation and deletion, should properly create a job request, with workers performing the job and providing status responses without any issues. Consequently, there should be no orphaned jobs remaining that could interrupt other job requests. Alternatively, it should at least throw an appropriate error.

Possible Solution

AtoM 2.8.1 include the Net_Gearman version 0.2.3, which was released in 2009. There's no further updates on the official package site. However, I found a GitHub repository maintained by the original authors that includes additional exception handling for PHP 7/8 and some improvements. The latest version, 2.2.2, was updated on February 9.

I suggest it may be beneficial to update the package. Could someone review the latest updates and consider updating the Net_Gearman package in AtoM?

Context and Notes

The instantiation of a job request using the Gearman client in AtoM looks to be problematic: Lines 342-343 in QubitJob.php. Although AtoM generates the necessary parameters, including servers, and passes them to the Net_Gearman_Client, it fails to handle them effectively, leaving no logs.

Version used

AtoM 2.8.1

Operating System and version

No response

Default installation culture

en, fr, ta, zh

PHP version

PHP 7.4

@sunnywd sunnywd added the Type: bug A flaw in the code that causes the software to produce an incorrect or unexpected result. label May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: bug A flaw in the code that causes the software to produce an incorrect or unexpected result.
Projects
None yet
Development

No branches or pull requests

1 participant