Defect #1534
"Error 500" when creating a new task for a specific sprint
Description
I am dropping into an Internalerror 500 page when creating a new task, of type functionality for specific sprints. Apparently it is something related to the Scrum plugin, which is even in its latest stable version (0.18).
Files
Updated by jfrlbn jfrlbn almost 7 years ago
Hello
We get a very similar error when updating an existing issue by adding a sprint :
Started PATCH "/issues/9606" for 127.0.0.1 at 2018-02-14 08:49:46 +0100 Processing by IssuesController#update as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "form_update_triggered_by"=>"", "issue"=>{"is_private"=>"0", "project_id"=>"297", "tracker_id"=>"1", "subject"=>"...", "description"=>"...", "status_id"=>"1", "priority_id"=>"3", "assigned_to_id"=>"", "fixed_version_id"=>"", "parent_issue_id"=>"", "start_date"=>"2017-11-22", "due_date"=>"", "estimated_hours"=>"0.25", "done_ratio"=>"0", "sprint_id"=>"19", "pending_effort"=>"", "tag_list"=>"hpoo", "notes"=>"", "private_notes"=>"0", "lock_version"=>"2"}, "was_default_status"=>"1", "time_entry"=>{"hours"=>"", "activity_id"=>"", "comments"=>""}, "last_journal_id"=>"26585", "commit"=>"Submit", "prev_issue_id"=>"9621", "next_issue_id"=>"9585", "issue_position"=>"23", "issue_count"=>"36", "id"=>"9606"} Current user: ... (id=9) Completed 500 Internal Server Error in 115ms (ActiveRecord: 28.8ms) NoMethodError (undefined method `>' for nil:NilClass): plugins/scrum/lib/scrum/issue_patch.rb:564:in `block in max_position' plugins/scrum/lib/scrum/issue_patch.rb:563:in `each' plugins/scrum/lib/scrum/issue_patch.rb:563:in `max_position' plugins/scrum/lib/scrum/issue_patch.rb:576:in `move_issue_to_the_end_of_the_sprint' plugins/scrum/lib/scrum/issue_patch.rb:463:in `update_position' app/models/issue.rb:210:in `create_or_update' app/controllers/issues_controller.rb:558:in `block in save_issue_with_child_records' app/controllers/issues_controller.rb:546:in `save_issue_with_child_records' app/controllers/issues_controller.rb:168:in `update' lib/redmine/sudo_mode.rb:63:in `sudo_mode'
We use plugin version 0.18.1
Updated by Miroslw Burzynski almost 7 years ago
- File error-log-redmine.txt error-log-redmine.txt added
Hello,
We have "Internal error" when updating task (when we moving ticket to backlog).
We use plugin version 0.17.0
Updated by Yann Autissier over 6 years ago
Hi,
I got same issue with redmine v3.4.4 and scrum plugin v0.18.1.
Resolved by editing the file plugins/scrum/lib/scrum/issue_patch.rb on line 564 :
replace
max = pbi.position if max.nil? or (pbi.position > max)
by
max = pbi.position if max.nil? or (pbi.position || 0 > max)
Update the line 554 too.
PS. I cannot post a patch as I dont have git access to the repo.
Updated by Wesllen Queiroz over 6 years ago
Greetings Yann Autissier!
Thanks for the contribution. I will make the changes as mentioned and I will come back with the feedback.
Yann Autissier escribió:
Hi,
I got same issue with redmine v3.4.4 and scrum plugin v0.18.1.
Resolved by editing the file plugins/scrum/lib/scrum/issue_patch.rb on line 564 :
replace
[...]
by
[...]Update the line 554 too.
PS. I cannot post a patch as I dont have git access to the repo.
Updated by Emilio González Montaña over 6 years ago
I don't see the point of the proposed change... it seems an error, the only thing that you achieve is to disable the check...
Updated by Emilio González Montaña over 6 years ago
By the way, Wesllen GIT access is available for Patreon supporters:
Updated by Yann Autissier over 6 years ago
The error occurs when pbi.position is nil, then (pbi.position > max) throws NoMethodError (undefined method `>' for nil:NilClass) exception.
We should compare min/max with 0 when pbi.position is nil (on a parent task).
Is it better adding parenthesis : ((pbi.position || 0) > max) ?
Updated by Shreyas Moolya over 6 years ago
What happens when we use '||' operator here in this syntax? Does the 'pbi.position' render 'False' or 'True'?
Because in this case the pbi.position goes blank.
Kindly elaborate what you did here
replace
max = pbi.position if max.nil? or (pbi.position > max)
by
max = pbi.position if max.nil? or (pbi.position || 0 > max)
Updated by Emilio González Montaña over 6 years ago
- Blocked changed from No to Yes
- Target version set to Scrum v0.18.2
- Status changed from New to Resolved
- Category set to Issues list & form
Updated by Emilio González Montaña over 6 years ago
Support the plugin development at www.patreon.com/ociotec & gain access to the GIT repo! :)