You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ProcessorExceptionExtensionInterface::onProcessorException is called only for Exceptions, not for Errors
Expected
The QueueConsumer should catch all PHP \Throwable to allow for explicit error handling and controlled failure.
Actual
Only \Exceptions are catched and passed to any extension implementing ProcessorExceptionExtensionInterface
Context
I have an Extension for pushing poisoneous/failed messages to a dedicated failed jobs queue (the transport in use, beanstalkd, has no out of box support for so called dead letter queues) and realized that in case of PHP \Errors the Extension does not get called and the consume command exits without controlled message handling. This might be a serious problem not in suche way that the consumer exits (we use supervisord) but that the poisonous message gets stuck on top of the queue thus blocking all further message processing.
The problematic code is in \Enqueue\Consumption\QueueConsumerline 198 where it catches only \Exception, not \Throwable
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
ProcessorExceptionExtensionInterface::onProcessorException is called only for Exceptions, not for Errors
Expected
The QueueConsumer should catch all PHP
\Throwable
to allow for explicit error handling and controlled failure.Actual
Only \Exceptions are catched and passed to any extension implementing
ProcessorExceptionExtensionInterface
Context
I have an Extension for pushing poisoneous/failed messages to a dedicated failed jobs queue (the transport in use, beanstalkd, has no out of box support for so called dead letter queues) and realized that in case of PHP \Errors the Extension does not get called and the consume command exits without controlled message handling. This might be a serious problem not in suche way that the consumer exits (we use supervisord) but that the poisonous message gets stuck on top of the queue thus blocking all further message processing.
The problematic code is in
\Enqueue\Consumption\QueueConsumer
line 198 where it catches only\Exception
, not\Throwable
The text was updated successfully, but these errors were encountered: