Defect #26376
closedWrong issue counts and spent time on project overview
0%
Description
After switching to 3.4.0 from 3.3.3 got the problem on project overview page. With non-admin user issue table is empty and total spent time is 0.0, even though "all issues" page and time report show correct data.
I saw related issues posted here but open new one because another version is affected and also because it seems to me that I found the reason.
I was able to trace the bug to the method User#project_ids_by_role
, which returned wrong data. The actual reason lives in :visible scope of Project:
scope :visible, lambda {|*args| where(Project.visible_condition(args.shift || User.current, *args)) }
Because of this method chain, any query to Project from
User#project_ids_by_role
adds condition for parent id. So even if you place break point inside that method and call Project.first, you will get something likeSELECT * FROM Project WHERE project.id = ? LIMIT 1
Looks like it's a bug affecting ActiveRecord 4.2.8, discussed here:
https://github.com/rails/rails/issues/29445
https://github.com/rails/rails/issues/29338
The actual problem with missing issues and time can be solved commenting first line in User#project_ids_by_role
(result caching) but it's not a valid solution. Also 3.3.3 and 3.3.4 seem to do same things but the bug is not reproduced on our data so we stick with 3.3.4 for now.
Related issues