Problem:

Setting up custom menu item visibility for a menu item adds a row into the menu_per_role table. However, if this menu item gets deleted or the entire menu gets deleted, these entries stay in the menu_per_role table. They are not synched with the deletion and are not deleted as they should be. These entries should be deleted from the menu_per_role table if and when the corresponding menu item and/or menu is deleted. As it currently stands, these entries will end up staying in the menu_per_role table forever. There is no reason to have this unused and no longer relevant data in the table.

How to re-create:

1. Create menu
2. Add menu items
3. Configure at least one of the menu items to use the menu_per_role visibility options:
- Restrict item visibility
-- Select any checkbox and then click Save
4. Delete menu item OR menu