Drupal doesn't check whether function_exists() for action callbacks. This means that if an action is assigned to a trigger and then the module that provides that action is disabled, Drupal still tries to run the action's callback, resulting in a fatal error because the callback function does not exist:
Fatal error: Call to undefined function action_email_role_send_email_action() in /path/to/my/site/includes/actions.inc on line 100
To duplicate:
- Enable a 3rd party module that provides an action (like Action Email Role)
- Assign the action to a trigger at admin/build/trigger (for example, assign 'action email role' to trigger 'after saving a new post')
- Disable the 3rd party module
- Do whatever it is you need to do to trip the trigger (in above, save a new post)
The attached patch fixes the issue, though there may be a more elegant way to do it.
| Comment | File | Size | Author |
|---|---|---|---|
| actions_exist.patch | 1.72 KB | becw |
Comments
Comment #1
becw commentedComment #2
dave reidDuplicate of #306540: Orphaned assigned actions still triggered and cannot be removed