Did something changed in how handlers are called?

Did something change with how handlers are invoked?

Today’s git pull of devel and all my handlers that need to run as root are failing.

$ ansible --version

ansible 2.2.0 (devel 19e00cf160) last updated 2016/09/09 11:04:47 (GMT -500)
lib/ansible/modules/core: (detached HEAD bf5b3de83e) last updated 2016/09/09 11:04:47 (GMT -500)
lib/ansible/modules/extras: (detached HEAD f83aa9fff3) last updated 2016/09/09 11:04:47 (GMT -500)
config file = /Users/tanner/projects/ansible.git/playbooks.git/ansible.cfg
configured module search path = Default w/o overrides

  • hosts: all
    roles:
  • { role: grub2, become: yes }

grub2 handlers/main.yml

  • name: update grub2
    command: “{{ update_grub2_command }}”
    register: r
    failed_when: r.rc != 0
    changed_when: False
    tags: grub2

RUNNING HANDLER [grub2 : update grub2] *****************************************
fatal: [testing_xenial64]: FAILED! => {“changed”: false, “cmd”: [“/usr/sbin/update-grub2”], “delta”: “0:00:00.011241”, “end”: “2016-09-09 12:06:25.551493”, “failed”: true, “failed_when_result”: true, “rc”: 1, “start”: “2016-09-09 12:06:25.540252”, “stderr”: “grub-mkconfig: You must run this as root”, “stdout”: “”, “stdout_lines”: , “warnings”: }

Changing the handler to

  • name: update grub2
    command: “{{ update_grub2_command }}”
    register: r
    failed_when: r.rc != 0
    changed_when: False
    become: yes
    tags: grub2

Fixes the problem.

Yes, potentially as part of the include_role/dynamic role changes made in devel recently. Could you please open a bug in regards to this?