after updating my phpBB installation from 3.3.5 to 3.3.6 (without any visible issues or errors), guest users can't access the forum anymore and are greeted with "This board has no forums".
After logging in with a user account, the forums suddenly appear.
The quickest solution as always is to help yourself, so I'm investigating:
The "diff" of the database before and after update (luckily I'm making snapshots) shows that multiple roles have been deleted in ACL_GROUPS_TABLE (bb_acl_groups in my case)! But why?
I'm seeing /forum/phpbb/db/migration/data/v33x/remove_orphaned_roles.php and I think that's the culprit!
Apparently this migration routine has deleted the entries in ACL_GROUPS_TABLE for some reason!
Looking at the code in remove_orphaned_roles.php:
It calculates the "array_diff" from ACL_GROUPS_TABLE and ACL_ROLES_TABLE and then deletes the corresponding "auth_role_id"s from ACL_USERS_TABLE and ACL_GROUPS_TABLE. Okay, but
$sql = 'SELECT auth_role_id
FROM ' . ACL_GROUPS_TABLE . '
WHERE auth_role_id <> 0
AND forum_id = 0';
What's this "AND forum_id = 0'"? I'm not using a forum with ID 0!, but (2, 7, and 8 instead). I don't think this part belongs there and is likely what has caused "This board has no forums".
And indeed: After manually inserting the deleted values into ACL_GROUPS_TABLE and clearing the cache, the forum is working again for guest users.