Content
View differences
Updated by Christophe Bliard 11 months ago
Bug similar to <mention class="mention" data-id="64973" data-type="work_package" data-text="##64973">##64973</mention>
### Steps to reproduce
1. Create a hierarchy of 3 work packages: grand parent, parent and child.
1. grand parent and parent are automatically scheduled
2. In work packages list view, drag grand parent between parent and child so that grand parent becomes a child of parent.
### What is the buggy behavior?
* Error 500
### What is the expected behavior?
1. Display a legible error indicating Not sure if that it's should be allowed or forbidden, but it should not possible to be linked to one of its subtasks. produce an error 500.
### **Logs**
[https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1177](https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1177)
[https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1176](https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1176)
```text
app/services/work_packages/schedule_dependency.rb:108 WorkPackages::ScheduleDependency#automatically_scheduled_ancestors
app/services/work_packages/schedule_dependency.rb:108 WorkPackages::ScheduleDependency#automatically_scheduled_ancestors ×7534
app/services/work_packages/schedule_dependency.rb:156 WorkPackages::ScheduleDependency#all_direct_and_indirect_follows_relations_for
app/services/work_packages/schedule_dependency.rb:147 WorkPackages::ScheduleDependency#follows_relations
app/services/work_packages/schedule_dependency/dependency.rb:89 WorkPackages::ScheduleDependency::Dependency#follows_relations
app/services/work_packages/schedule_dependency/dependency.rb:49 WorkPackages::ScheduleDependency::Dependency#moving_predecessors
app/services/work_packages/schedule_dependency/dependency.rb:45 WorkPackages::ScheduleDependency::Dependency#dependent_ids
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 block in WorkPackages::ScheduleDependency::DependencyGraph#dependent_ids_for_work_package_id
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 Array#to_h
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 WorkPackages::ScheduleDependency::DependencyGraph#dependent_ids_for_work_package_id
app/services/work_packages/schedule_dependency/dependency_graph.rb:65 WorkPackages::ScheduleDependency::DependencyGraph#full_dependencies_of
app/services/work_packages/schedule_dependency/dependency_graph.rb:57 WorkPackages::ScheduleDependency::DependencyGraph#depends_on?
app/services/work_packages/schedule_dependency/dependency_graph.rb:41 block (2 levels) in WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency/dependency_graph.rb:40 Array#rindex
app/services/work_packages/schedule_dependency/dependency_graph.rb:40 block in WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency/dependency_graph.rb:38 Array#each
app/services/work_packages/schedule_dependency/dependency_graph.rb:38 WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency.rb:61 WorkPackages::ScheduleDependency#in_schedule_order
app/services/work_packages/set_schedule_service.rb:85 WorkPackages::SetScheduleService#schedule_following
app/services/work_packages/set_schedule_service.rb:43 WorkPackages::SetScheduleService#call
app/services/work_packages/set_attributes_service.rb:292 WorkPackages::SetAttributesService#update_dates_from_rescheduled_children
app/services/work_packages/set_attributes_service.rb:275 WorkPackages::SetAttributesService#update_dates
app/services/work_packages/set_attributes_service.rb:70 WorkPackages::SetAttributesService#set_calculated_attributes
app/services/work_packages/set_attributes_service.rb:44 block in WorkPackages::SetAttributesService#set_attributes
lib/open_project/changed_by_system.rb:87 OpenProject::ChangedBySystem#change_by_system
app/services/work_packages/set_attributes_service.rb:43 WorkPackages::SetAttributesService#set_attributes
modules/backlogs/lib/open_project/backlogs/patches/set_attributes_service_patch.rb:36 OpenProject::Backlogs::Patches::SetAttributesServicePatch::InstanceMethods#set_attributes
app/services/base_services/set_attributes.rb:44 BaseServices::SetAttributes#perform
app/services/base_services/base_callable.rb:42 block in BaseServices::BaseCallable#call
app/services/base_services/base_callable.rb:70 BaseServices::BaseCallable#assign_state
app/services/base_services/base_callable.rb:41 BaseServices::BaseCallable#call
app/services/base_services/write.rb:60 BaseServices::Write#set_attributes
app/services/attachments/replace_attachments.rb:37 WorkPackages::UpdateService#set_attributes
app/services/base_services/write.rb:51 BaseServices::Write#before_perform
app/services/base_services/base_contracted.rb:61 block in BaseServices::BaseContracted#perform
app/models/journal/notification_configuration.rb:62 Journal::NotificationConfiguration.with_first
app/models/journal/notification_configuration.rb:45 Journal::NotificationConfiguration.with
app/services/shared/service_context.rb:67 block in Shared::ServiceContext#without_context_transaction
lib/open_project/locale_helper.rb:36 OpenProject::LocaleHelper.with_locale_for
app/models/user.rb:538 User.execute_as
app/services/shared/service_context.rb:66 Shared::ServiceContext#without_context_transaction
app/services/shared/service_context.rb:45 block in Shared::ServiceContext#in_mutex_context
lib/open_project/mutex.rb:71 block in OpenProject::Mutex.with_advisory_lock
lib/open_project/mutex.rb:69 OpenProject::Mutex.with_advisory_lock
vendor/plugins/openproject-multitenancy/app/extenders/lib/open_project/namespaced_advisory_lock_names.rb:4 Multitenancy::NamespacedAdvisoryLockNames#with_advisory_lock
lib/open_project/mutex.rb:63 block in OpenProject::Mutex.with_advisory_lock_transaction
lib/open_project/mutex.rb:62 OpenProject::Mutex.with_advisory_lock_transaction
app/services/shared/service_context.rb:44 Shared::ServiceContext#in_mutex_context
app/services/shared/service_context.rb:35 Shared::ServiceContext#in_context
app/services/base_services/base_contracted.rb:54 BaseServices::BaseContracted#service_context
app/services/base_services/base_contracted.rb:59 BaseServices::BaseContracted#perform
app/services/base_services/base_callable.rb:42 block in BaseServices::BaseCallable#call
app/services/base_services/base_callable.rb:70 BaseServices::BaseCallable#assign_state
app/services/base_services/base_callable.rb:41 BaseServices::BaseCallable#call
lib/api/utilities/endpoints/bodied.rb:117 API::Utilities::Endpoints::Bodied#process
lib/api/utilities/endpoints/bodied.rb:90 block in mount
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:106 block in Multitenancy::Elevators::MappedDomainElevator#call_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:103 Multitenancy::Elevators::MappedDomainElevator#call_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:69 Multitenancy::Elevators::MappedDomainElevator#try_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:39 Multitenancy::Elevators::MappedDomainElevator#call
```
### Steps to reproduce
1. Create a hierarchy of 3 work packages: grand parent, parent and child.
1. grand parent and parent are automatically scheduled
2. In work packages list view, drag grand parent between parent and child so that grand parent becomes a child of parent.
### What is the buggy behavior?
* Error 500
### What is the expected behavior?
1. Display a legible error indicating
### **Logs**
[https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1177](https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1177)
[https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1176](https://appsignal.com/openproject-gmbh/sites/673c8be183eb67dcd6c4e75d/exceptions/incidents/1176)
```text
app/services/work_packages/schedule_dependency.rb:108 WorkPackages::ScheduleDependency#automatically_scheduled_ancestors
app/services/work_packages/schedule_dependency.rb:108 WorkPackages::ScheduleDependency#automatically_scheduled_ancestors ×7534
app/services/work_packages/schedule_dependency.rb:156 WorkPackages::ScheduleDependency#all_direct_and_indirect_follows_relations_for
app/services/work_packages/schedule_dependency.rb:147 WorkPackages::ScheduleDependency#follows_relations
app/services/work_packages/schedule_dependency/dependency.rb:89 WorkPackages::ScheduleDependency::Dependency#follows_relations
app/services/work_packages/schedule_dependency/dependency.rb:49 WorkPackages::ScheduleDependency::Dependency#moving_predecessors
app/services/work_packages/schedule_dependency/dependency.rb:45 WorkPackages::ScheduleDependency::Dependency#dependent_ids
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 block in WorkPackages::ScheduleDependency::DependencyGraph#dependent_ids_for_work_package_id
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 Array#to_h
app/services/work_packages/schedule_dependency/dependency_graph.rb:72 WorkPackages::ScheduleDependency::DependencyGraph#dependent_ids_for_work_package_id
app/services/work_packages/schedule_dependency/dependency_graph.rb:65 WorkPackages::ScheduleDependency::DependencyGraph#full_dependencies_of
app/services/work_packages/schedule_dependency/dependency_graph.rb:57 WorkPackages::ScheduleDependency::DependencyGraph#depends_on?
app/services/work_packages/schedule_dependency/dependency_graph.rb:41 block (2 levels) in WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency/dependency_graph.rb:40 Array#rindex
app/services/work_packages/schedule_dependency/dependency_graph.rb:40 block in WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency/dependency_graph.rb:38 Array#each
app/services/work_packages/schedule_dependency/dependency_graph.rb:38 WorkPackages::ScheduleDependency::DependencyGraph#schedule_order
app/services/work_packages/schedule_dependency.rb:61 WorkPackages::ScheduleDependency#in_schedule_order
app/services/work_packages/set_schedule_service.rb:85 WorkPackages::SetScheduleService#schedule_following
app/services/work_packages/set_schedule_service.rb:43 WorkPackages::SetScheduleService#call
app/services/work_packages/set_attributes_service.rb:292 WorkPackages::SetAttributesService#update_dates_from_rescheduled_children
app/services/work_packages/set_attributes_service.rb:275 WorkPackages::SetAttributesService#update_dates
app/services/work_packages/set_attributes_service.rb:70 WorkPackages::SetAttributesService#set_calculated_attributes
app/services/work_packages/set_attributes_service.rb:44 block in WorkPackages::SetAttributesService#set_attributes
lib/open_project/changed_by_system.rb:87 OpenProject::ChangedBySystem#change_by_system
app/services/work_packages/set_attributes_service.rb:43 WorkPackages::SetAttributesService#set_attributes
modules/backlogs/lib/open_project/backlogs/patches/set_attributes_service_patch.rb:36 OpenProject::Backlogs::Patches::SetAttributesServicePatch::InstanceMethods#set_attributes
app/services/base_services/set_attributes.rb:44 BaseServices::SetAttributes#perform
app/services/base_services/base_callable.rb:42 block in BaseServices::BaseCallable#call
app/services/base_services/base_callable.rb:70 BaseServices::BaseCallable#assign_state
app/services/base_services/base_callable.rb:41 BaseServices::BaseCallable#call
app/services/base_services/write.rb:60 BaseServices::Write#set_attributes
app/services/attachments/replace_attachments.rb:37 WorkPackages::UpdateService#set_attributes
app/services/base_services/write.rb:51 BaseServices::Write#before_perform
app/services/base_services/base_contracted.rb:61 block in BaseServices::BaseContracted#perform
app/models/journal/notification_configuration.rb:62 Journal::NotificationConfiguration.with_first
app/models/journal/notification_configuration.rb:45 Journal::NotificationConfiguration.with
app/services/shared/service_context.rb:67 block in Shared::ServiceContext#without_context_transaction
lib/open_project/locale_helper.rb:36 OpenProject::LocaleHelper.with_locale_for
app/models/user.rb:538 User.execute_as
app/services/shared/service_context.rb:66 Shared::ServiceContext#without_context_transaction
app/services/shared/service_context.rb:45 block in Shared::ServiceContext#in_mutex_context
lib/open_project/mutex.rb:71 block in OpenProject::Mutex.with_advisory_lock
lib/open_project/mutex.rb:69 OpenProject::Mutex.with_advisory_lock
vendor/plugins/openproject-multitenancy/app/extenders/lib/open_project/namespaced_advisory_lock_names.rb:4 Multitenancy::NamespacedAdvisoryLockNames#with_advisory_lock
lib/open_project/mutex.rb:63 block in OpenProject::Mutex.with_advisory_lock_transaction
lib/open_project/mutex.rb:62 OpenProject::Mutex.with_advisory_lock_transaction
app/services/shared/service_context.rb:44 Shared::ServiceContext#in_mutex_context
app/services/shared/service_context.rb:35 Shared::ServiceContext#in_context
app/services/base_services/base_contracted.rb:54 BaseServices::BaseContracted#service_context
app/services/base_services/base_contracted.rb:59 BaseServices::BaseContracted#perform
app/services/base_services/base_callable.rb:42 block in BaseServices::BaseCallable#call
app/services/base_services/base_callable.rb:70 BaseServices::BaseCallable#assign_state
app/services/base_services/base_callable.rb:41 BaseServices::BaseCallable#call
lib/api/utilities/endpoints/bodied.rb:117 API::Utilities::Endpoints::Bodied#process
lib/api/utilities/endpoints/bodied.rb:90 block in mount
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:106 block in Multitenancy::Elevators::MappedDomainElevator#call_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:103 Multitenancy::Elevators::MappedDomainElevator#call_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:69 Multitenancy::Elevators::MappedDomainElevator#try_tenant
vendor/plugins/openproject-multitenancy/lib/multitenancy/elevators/mapped_domain_elevator.rb:39 Multitenancy::Elevators::MappedDomainElevator#call
```