[9.x] Prevent serializing default values of queued jobs #41348
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When a job gets dispatched to the queue, right before deploying a new version of the code that contains an updated version of the job, it’s possible to run into deserialization errors when the queue starts again after deploying. For example, when you are upgrading your code base to use typed properties instead of doc blocks:
to
Before deploying, the
$externalService
property will be included in the serialized object, withnull
as value. After deploying the change, serializing the object won’t include$externalService
, because then it is an uninitialized typed property. When you now try unserializing an object that was created before deploying (which happens when you start the queue again and the queue still contains jobs from before the deploy), you will get the following error:This pull request circumvents this error by not including the property on the serialized object.