buschmais / redmics

Plug-in for Redmine (http://www.redmine.org/) to export project issues and versions as ICalendar (ICS) files
41 stars 18 forks source link

Problems with sudo mode #17

Closed jankap closed 8 years ago

jankap commented 8 years ago

Hey, thank you for your work. Unfortunately redmine 3.1 does not work. When I try to open the URL following happens:

ArgumentError (wrong number of arguments (2 for 0)):
  lib/redmine/sudo_mode.rb:64:in `sudo_mode'

Processing by UsErrorsController#error_500 as ICS
  Parameters: {"key"=>"50a49df4e7998022972efe30e3321a5d6741d5bf", "project_id"=>"test-project", "assignment"=>"my"}
  Current user: jan (id=3)
  Rendered text template (0.0ms)
Completed 500 Internal Server Error in 4ms (Views: 0.5ms | ActiveRecord: 0.7ms)
Started GET "/redmine/icalendar/test-project/my/issues.ics?key=50a49df4e7998022972efe30e3321a5d6741d5bf" for 192.168.56.1 at 2015-12-18 13:03:56 +0100
Processing by ICalendarController#index as ICS
  Parameters: {"key"=>"50a49df4e7998022972efe30e3321a5d6741d5bf", "project_id"=>"test-project", "assignment"=>"my"}
  Current user: jan (id=3)
Completed 500 Internal Server Error in 35ms (ActiveRecord: 6.7ms)

ArgumentError (wrong number of arguments (2 for 0)):
  lib/redmine/sudo_mode.rb:64:in `sudo_mode'

Processing by UsErrorsController#error_500 as ICS
  Parameters: {"key"=>"50a49df4e7998022972efe30e3321a5d6741d5bf", "project_id"=>"test-project", "assignment"=>"my"}
  Current user: jan (id=3)
  Rendered text template (0.0ms)
Completed 500 Internal Server Error in 5ms (Views: 0.9ms | ActiveRecord: 0.8ms)

Do you have any ideas fixing that, or do you need further information?

Thank you!

fs5 commented 8 years ago

I have just tried HEAD of master and 3.1-stable branch of redmine. I cannot observe any issues with sudo-mode enabled. Please reopen this bug-report with a stacktrace where I can see how your error relates to the redmics plug-in.

jankap commented 8 years ago

Hi, sorry for the late response, anyways, happy new year :)

I just updated to redmine 3.2-stable, the error is still the same. How can I generate an appropiate stack trace you need? The logger_level is set to :debug, but there aren't any new information.

edit: logger_level is the wrong variable, must be log_level. Here are some more logs:

Started GET "/redmine/icalendar/testproject/all/issues.ics?key=50a49df4e7998022972efe30e3321a5d6741d5bf" for 192.168.0.4 at 2016-01-04 11:52:22 +0100
Processing by ICalendarController#index as ICS
  Parameters: {"key"=>"50a49df4e7998022972efe30e3321a5d6741d5bf", "project_id"=>"testproject", "assignment"=>"all"}
  Setting Load (0.5ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'session_lifetime'  ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.4ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'session_timeout'  ORDER BY `settings`.`id` DESC LIMIT 1
  SQL (12.3ms)  UPDATE `tokens` SET `tokens`.`updated_on` = '2016-01-04 11:52:22' WHERE `tokens`.`user_id` = 3 AND `tokens`.`value` = '9831597dd951e112576e37c46eea74749b9feb3a' AND `tokens`.`action` = 'session'
   (0.4ms)  SELECT MAX(`settings`.`updated_on`) FROM `settings`
  User Load (0.3ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`status` = 1 AND `users`.`id` = 3 LIMIT 1
  Current user: jan (id=3)
  Setting Load (0.4ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'force_default_language_for_loggedin'  ORDER BY `settings`.`id` DESC LIMIT 1
  Project Load (0.4ms)  SELECT  `projects`.* FROM `projects` WHERE `projects`.`identifier` = 'testproject' LIMIT 1
   (0.4ms)  SELECT `enabled_modules`.`name` FROM `enabled_modules` WHERE `enabled_modules`.`project_id` = 7
  Setting Load (0.5ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'plugin_redmine_ics_export'  ORDER BY `settings`.`id` DESC LIMIT 1
  UserPreference Load (0.4ms)  SELECT  `user_preferences`.* FROM `user_preferences` WHERE `user_preferences`.`user_id` = 3 LIMIT 1
  IssuePriority Load (2.8ms)  SELECT `enumerations`.* FROM `enumerations` WHERE `enumerations`.`type` IN ('IssuePriority')  ORDER BY `enumerations`.`position` ASC
  IssueCustomField Load (0.4ms)  SELECT `custom_fields`.* FROM `custom_fields` WHERE `custom_fields`.`type` IN ('IssueCustomField') AND (is_for_all = 1 OR id IN (SELECT DISTINCT cfp.custom_field_id FROM custom_fields_projects cfp WHERE cfp.project_id = 7))  ORDER BY `custom_fields`.`position` ASC
  Tracker Load (0.4ms)  SELECT DISTINCT `trackers`.* FROM `trackers` INNER JOIN `projects_trackers` ON `projects_trackers`.`tracker_id` = `trackers`.`id` INNER JOIN `projects` ON `projects`.`id` = `projects_trackers`.`project_id` JOIN enabled_modules ON enabled_modules.project_id = projects.id AND enabled_modules.name = 'issue_tracking' WHERE (projects.lft >= 7 AND projects.rgt <= 8 AND projects.status <> 9)  ORDER BY `trackers`.`position` ASC
  EnabledModule Load (0.4ms)  SELECT `enabled_modules`.* FROM `enabled_modules` WHERE `enabled_modules`.`project_id` = 7
  SQL (1.2ms)  SELECT `issues`.`id` AS t0_r0, `issues`.`tracker_id` AS t0_r1, `issues`.`project_id` AS t0_r2, `issues`.`subject` AS t0_r3, `issues`.`description` AS t0_r4, `issues`.`due_date` AS t0_r5, `issues`.`category_id` AS t0_r6, `issues`.`status_id` AS t0_r7, `issues`.`assigned_to_id` AS t0_r8, `issues`.`priority_id` AS t0_r9, `issues`.`fixed_version_id` AS t0_r10, `issues`.`author_id` AS t0_r11, `issues`.`lock_version` AS t0_r12, `issues`.`created_on` AS t0_r13, `issues`.`updated_on` AS t0_r14, `issues`.`start_date` AS t0_r15, `issues`.`done_ratio` AS t0_r16, `issues`.`estimated_hours` AS t0_r17, `issues`.`parent_id` AS t0_r18, `issues`.`root_id` AS t0_r19, `issues`.`lft` AS t0_r20, `issues`.`rgt` AS t0_r21, `issues`.`is_private` AS t0_r22, `issues`.`closed_on` AS t0_r23, `issues`.`position` AS t0_r24, `issues`.`remaining_hours` AS t0_r25, `issues`.`release_id` AS t0_r26, `issues`.`story_points` AS t0_r27, `issues`.`release_relationship` AS t0_r28, `issue_statuses`.`id` AS t1_r0, `issue_statuses`.`name` AS t1_r1, `issue_statuses`.`is_closed` AS t1_r2, `issue_statuses`.`position` AS t1_r3, `issue_statuses`.`default_done_ratio` AS t1_r4, `issue_statuses`.`us_color` AS t1_r5, `projects`.`id` AS t2_r0, `projects`.`name` AS t2_r1, `projects`.`description` AS t2_r2, `projects`.`homepage` AS t2_r3, `projects`.`is_public` AS t2_r4, `projects`.`parent_id` AS t2_r5, `projects`.`created_on` AS t2_r6, `projects`.`updated_on` AS t2_r7, `projects`.`identifier` AS t2_r8, `projects`.`status` AS t2_r9, `projects`.`lft` AS t2_r10, `projects`.`rgt` AS t2_r11, `projects`.`inherit_members` AS t2_r12, `projects`.`dmsf_description` AS t2_r13, `projects`.`dmsf_notification` AS t2_r14, `projects`.`default_version_id` AS t2_r15, `trackers`.`id` AS t3_r0, `trackers`.`name` AS t3_r1, `trackers`.`is_in_chlog` AS t3_r2, `trackers`.`position` AS t3_r3, `trackers`.`is_in_roadmap` AS t3_r4, `trackers`.`fields_bits` AS t3_r5, `trackers`.`default_status_id` AS t3_r6, `users`.`id` AS t4_r0, `users`.`login` AS t4_r1, `users`.`hashed_password` AS t4_r2, `users`.`firstname` AS t4_r3, `users`.`lastname` AS t4_r4, `users`.`admin` AS t4_r5, `users`.`status` AS t4_r6, `users`.`last_login_on` AS t4_r7, `users`.`language` AS t4_r8, `users`.`auth_source_id` AS t4_r9, `users`.`created_on` AS t4_r10, `users`.`updated_on` AS t4_r11, `users`.`type` AS t4_r12, `users`.`identity_url` AS t4_r13, `users`.`mail_notification` AS t4_r14, `users`.`salt` AS t4_r15, `users`.`must_change_passwd` AS t4_r16, `users`.`passwd_changed_on` AS t4_r17, `enumerations`.`id` AS t5_r0, `enumerations`.`name` AS t5_r1, `enumerations`.`position` AS t5_r2, `enumerations`.`is_default` AS t5_r3, `enumerations`.`type` AS t5_r4, `enumerations`.`active` AS t5_r5, `enumerations`.`project_id` AS t5_r6, `enumerations`.`parent_id` AS t5_r7, `enumerations`.`position_name` AS t5_r8, `versions`.`id` AS t6_r0, `versions`.`project_id` AS t6_r1, `versions`.`name` AS t6_r2, `versions`.`description` AS t6_r3, `versions`.`effective_date` AS t6_r4, `versions`.`created_on` AS t6_r5, `versions`.`updated_on` AS t6_r6, `versions`.`wiki_page_title` AS t6_r7, `versions`.`status` AS t6_r8, `versions`.`sharing` AS t6_r9, `versions`.`sprint_start_date` AS t6_r10, `authors_issues`.`id` AS t7_r0, `authors_issues`.`login` AS t7_r1, `authors_issues`.`hashed_password` AS t7_r2, `authors_issues`.`firstname` AS t7_r3, `authors_issues`.`lastname` AS t7_r4, `authors_issues`.`admin` AS t7_r5, `authors_issues`.`status` AS t7_r6, `authors_issues`.`last_login_on` AS t7_r7, `authors_issues`.`language` AS t7_r8, `authors_issues`.`auth_source_id` AS t7_r9, `authors_issues`.`created_on` AS t7_r10, `authors_issues`.`updated_on` AS t7_r11, `authors_issues`.`type` AS t7_r12, `authors_issues`.`identity_url` AS t7_r13, `authors_issues`.`mail_notification` AS t7_r14, `authors_issues`.`salt` AS t7_r15, `authors_issues`.`must_change_passwd` AS t7_r16, `authors_issues`.`passwd_changed_on` AS t7_r17 FROM `issues` INNER JOIN `projects` ON `projects`.`id` = `issues`.`project_id` INNER JOIN `issue_statuses` ON `issue_statuses`.`id` = `issues`.`status_id` LEFT OUTER JOIN `trackers` ON `trackers`.`id` = `issues`.`tracker_id` LEFT OUTER JOIN `users` ON `users`.`id` = `issues`.`assigned_to_id` LEFT OUTER JOIN `enumerations` ON `enumerations`.`id` = `issues`.`priority_id` AND `enumerations`.`type` IN ('IssuePriority') LEFT OUTER JOIN `versions` ON `versions`.`id` = `issues`.`fixed_version_id` LEFT OUTER JOIN `users` `authors_issues` ON `authors_issues`.`id` = `issues`.`author_id` AND `authors_issues`.`type` IN ('User', 'AnonymousUser') WHERE (projects.status <> 9 AND projects.id IN (SELECT em.project_id FROM enabled_modules em WHERE em.name='issue_tracking')) AND (projects.id = 7) AND (1=1)
  SQL (0.4ms)  SELECT `custom_values`.*, `custom_values`.`id` AS t0_r0, `custom_values`.`customized_type` AS t0_r1, `custom_values`.`customized_id` AS t0_r2, `custom_values`.`custom_field_id` AS t0_r3, `custom_values`.`value` AS t0_r4, `custom_fields`.`id` AS t1_r0, `custom_fields`.`type` AS t1_r1, `custom_fields`.`name` AS t1_r2, `custom_fields`.`field_format` AS t1_r3, `custom_fields`.`possible_values` AS t1_r4, `custom_fields`.`regexp` AS t1_r5, `custom_fields`.`min_length` AS t1_r6, `custom_fields`.`max_length` AS t1_r7, `custom_fields`.`is_required` AS t1_r8, `custom_fields`.`is_for_all` AS t1_r9, `custom_fields`.`is_filter` AS t1_r10, `custom_fields`.`position` AS t1_r11, `custom_fields`.`searchable` AS t1_r12, `custom_fields`.`default_value` AS t1_r13, `custom_fields`.`editable` AS t1_r14, `custom_fields`.`visible` AS t1_r15, `custom_fields`.`multiple` AS t1_r16, `custom_fields`.`format_store` AS t1_r17, `custom_fields`.`description` AS t1_r18 FROM `custom_values` LEFT OUTER JOIN `custom_fields` ON `custom_fields`.`id` = `custom_values`.`custom_field_id` WHERE `custom_values`.`customized_type` = 'Issue' AND `custom_values`.`customized_id` IN (22, 52, 53, 60, 62, 64, 65, 69, 70, 71, 73, 74, 75, 76, 77, 78, 48, 50, 54, 59, 63, 66, 80, 84, 49, 68, 40, 41, 51, 57, 61, 67, 72)  ORDER BY custom_fields.position
  SQL (0.4ms)  SELECT `versions`.`id` AS t0_r0, `versions`.`project_id` AS t0_r1, `versions`.`name` AS t0_r2, `versions`.`description` AS t0_r3, `versions`.`effective_date` AS t0_r4, `versions`.`created_on` AS t0_r5, `versions`.`updated_on` AS t0_r6, `versions`.`wiki_page_title` AS t0_r7, `versions`.`status` AS t0_r8, `versions`.`sharing` AS t0_r9, `versions`.`sprint_start_date` AS t0_r10, `projects`.`id` AS t1_r0, `projects`.`name` AS t1_r1, `projects`.`description` AS t1_r2, `projects`.`homepage` AS t1_r3, `projects`.`is_public` AS t1_r4, `projects`.`parent_id` AS t1_r5, `projects`.`created_on` AS t1_r6, `projects`.`updated_on` AS t1_r7, `projects`.`identifier` AS t1_r8, `projects`.`status` AS t1_r9, `projects`.`lft` AS t1_r10, `projects`.`rgt` AS t1_r11, `projects`.`inherit_members` AS t1_r12, `projects`.`dmsf_description` AS t1_r13, `projects`.`dmsf_notification` AS t1_r14, `projects`.`default_version_id` AS t1_r15 FROM `versions` INNER JOIN `projects` ON `projects`.`id` = `versions`.`project_id` WHERE (projects.status <> 9 AND projects.id IN (SELECT em.project_id FROM enabled_modules em WHERE em.name='issue_tracking')) AND (projects.id = 7) AND (1=1)
  SQL (0.5ms)  SELECT `versions`.`id` AS t0_r0, `versions`.`project_id` AS t0_r1, `versions`.`name` AS t0_r2, `versions`.`description` AS t0_r3, `versions`.`effective_date` AS t0_r4, `versions`.`created_on` AS t0_r5, `versions`.`updated_on` AS t0_r6, `versions`.`wiki_page_title` AS t0_r7, `versions`.`status` AS t0_r8, `versions`.`sharing` AS t0_r9, `versions`.`sprint_start_date` AS t0_r10, `projects`.`id` AS t1_r0, `projects`.`name` AS t1_r1, `projects`.`description` AS t1_r2, `projects`.`homepage` AS t1_r3, `projects`.`is_public` AS t1_r4, `projects`.`parent_id` AS t1_r5, `projects`.`created_on` AS t1_r6, `projects`.`updated_on` AS t1_r7, `projects`.`identifier` AS t1_r8, `projects`.`status` AS t1_r9, `projects`.`lft` AS t1_r10, `projects`.`rgt` AS t1_r11, `projects`.`inherit_members` AS t1_r12, `projects`.`dmsf_description` AS t1_r13, `projects`.`dmsf_notification` AS t1_r14, `projects`.`default_version_id` AS t1_r15 FROM `versions` INNER JOIN `projects` ON `projects`.`id` = `versions`.`project_id` WHERE (projects.status <> 9 AND projects.id IN (SELECT em.project_id FROM enabled_modules em WHERE em.name='issue_tracking')) AND (projects.id = 7) AND (1=1 AND (versions.sharing = 'system'))
Completed 500 Internal Server Error in 430ms (ActiveRecord: 57.1ms)

ArgumentError (wrong number of arguments (2 for 0)):
  lib/redmine/sudo_mode.rb:64:in `sudo_mode'

Processing by UsErrorsController#error_500 as ICS
  Parameters: {"key"=>"50a49df4e7998022972efe30e3321a5d6741d5bf", "project_id"=>"testproject", "assignment"=>"all"}
  SQL (4.4ms)  UPDATE `tokens` SET `tokens`.`updated_on` = '2016-01-04 11:52:23' WHERE `tokens`.`user_id` = 3 AND `tokens`.`value` = '9831597dd951e112576e37c46eea74749b9feb3a' AND `tokens`.`action` = 'session'
   (0.3ms)  SELECT MAX(`settings`.`updated_on`) FROM `settings`
  User Load (0.3ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('User', 'AnonymousUser') AND `users`.`status` = 1 AND `users`.`id` = 3 LIMIT 1
  Current user: jan (id=3)
  Setting Load (0.3ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'plugin_usability'  ORDER BY `settings`.`id` DESC LIMIT 1
  Rendered text template (0.0ms)
Completed 500 Internal Server Error in 18ms (Views: 4.8ms | ActiveRecord: 5.3ms)

Thanks

fs5 commented 8 years ago

The SQL statements look pretty much OK, the api-key was identified to belong to user 3 and the "testproject" has id 7. Then there are the expected queries "FROM issues" "and FROM versions"

What puzzles me is "UsErrorsController" and "plugin_usability". It looks like you also have enabled some "Usability" plugin. Could you please specify where I can get this from to further test for possible incompatibilities?

jankap commented 8 years ago

Hi,

the Usability plugin is from here https://www.redmine.org/plugins/usability or http://rmplus.pro/en/redmine/plugins/usability. I think UsErrorsController belongs to this plugin. It's useful to hide the sidebar and modify the estimated times a bit.

fs5 commented 8 years ago

It is not the usability plugin - I cannot see an issue with that plugin enabled. Probably some other plugin that does something weird after calling ICalendarController#index. I suggest you disable all other plugins and then re-enable them one by one until the error occurs.