Vote #78612
完了Wrong issue counts and spent time on project overview
0%
説明
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 like
SELECT * 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.
journals
UPD: 3.3.4 is probably fine as it uses rails 4.2.7.1
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Screenshots from #26084:
!/attachments/download/18436/Selection_017.png!
!/attachments/download/18437/Selection_018.png!
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I was able to fix the problem on the project overview by loading visible subprojects (which poisons project_ids cache) at the end. I'll see if we can workaround this Rails bug with a more general solution.
--------------------------------------------------------------------------------
Isn't disabling cache safer? Or rolling back to rails 4.2.7, didn't have time to check if that version works but one of that github issues says it does.
--------------------------------------------------------------------------------
Serhiy Yefremenko wrote:
> Isn't disabling cache safer? Or rolling back to rails 4.2.7
We can't stick to 4.2.7 for ever and the issue does not seem to be addressed in Rails 5.
I've committed a better fix in r16767 that ensures that @User#project_ids_by_role@ always returns correct results.
--------------------------------------------------------------------------------
I think we have to release a 3.4.1 ASAP.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I just want to mention that I have the same problem with the following environment (on Ubuntu 16.04.2 LTS):
<pre>
Environment:
Redmine version 3.2.1.stable
Ruby version 2.3.1-p112 (2016-04-26) [x86_64-linux-gnu]
Rails version 4.2.9
Environment production
Database adapter Mysql2
</pre>
I have solved the problem with the empty list in the issue tracking table by a patch described in #25828, but the problem with the "Spent time" of 0.0 hours remains. Admin accounts see the correct time, the other users do not. It would be nice if there was a patch for 3.2.1 too!
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,New,25828,Issue visibility problems on 3.3.1
duplicates,Closed,26084,In my Overview column didn't show bugs count
duplicates,Closed,26389,summary issue list disappeared from project overview page