Merge request with conflicts and not enough permissions for source project
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Summary
Project user A has a merge request with a conflict of changes. Source - Project B. If the user does not have enough rights to project B, then when the "Fix conflict automatically" button is clicked, the user receives an error: 500, without a message. At the same time, the message is displayed in the production_json.log:
"method": "POST",
"path": "/project/-/merge_requests/1/resolve_conflicts",
"format": "json",
"controller": "Projects::MergeRequests::ConflictsController",
"action": "resolve_conflicts",
"status": 500,
"time": "2021-10-26T14:12:08.373Z",
"params": [
{
"key": "commit_message",
"value": "Merge branch 'master' into 'project'"
},
{
"key": "files",
"value": [
{
"old_path": "projects",
"new_path": "projects",
"content": "[FILTERED]"
}
]
},
{
"key": "namespace_id",
"value": "project"
},
{
"key": "project_id",
"value": "project"
},
{
"key": "id",
"value": "1"
},
{
"key": "conflict",
"value": {
"commit_message": "Merge branch 'master' into 'project'",
"files": [
{
"old_path": "projects",
"new_path": "projects",
"content": "[FILTERED]"
}
]
}
}
],
"remote_ip": "****",
"user_id": 1,
"username": "d",
"meta.caller_id": "Projects::MergeRequests::ConflictsController#resolve_conflicts",
"meta.feature_category": "code_review",
"gitaly_calls": 3,
"gitaly_duration_s": 0.797206,
"redis_calls": 9,
"redis_duration_s": 0.010658,
"redis_read_bytes": 1177,
"redis_write_bytes": 1666,
"redis_cache_calls": 8,
"redis_cache_duration_s": 0.009216,
"redis_cache_read_bytes": 996,
"redis_cache_write_bytes": 904,
"redis_shared_state_calls": 1,
"redis_shared_state_duration_s": 0.001442,
"redis_shared_state_read_bytes": 181,
"redis_shared_state_write_bytes": 762,
"db_count": 22,
"db_write_count": 0,
"db_cached_count": 1,
"cpu_s": 0.256325,
"mem_objects": 25774,
"mem_bytes": 3186176,
"mem_mallocs": 6001,
"mem_total_bytes": 4217136,
"pid": 163835,
"queue_duration_s": 0.019242,
"exception.class": "Gitlab::Git::CommandError",
"exception.message": "2:GitLab: The project you were looking for could not be found or you don't have permission to view it..",
"exception.backtrace": [
"lib/gitlab/git/wraps_gitaly_errors.rb:15:in `rescue in wrapped_gitaly_errors'",
"lib/gitlab/git/wraps_gitaly_errors.rb:6:in `wrapped_gitaly_errors'",
"lib/gitlab/git/conflict/resolver.rb:30:in `resolve_conflicts'",
"lib/gitlab/conflict/file_collection.rb:25:in `resolve'",
"app/services/merge_requests/conflicts/resolve_service.rb:9:in `execute'",
"app/controllers/projects/merge_requests/conflicts_controller.rb:56:in `resolve_conflicts'",
"app/controllers/application_controller.rb:485:in `set_current_admin'",
"lib/gitlab/session.rb:11:in `with_session'",
"app/controllers/application_controller.rb:476:in `set_session_storage'",
"lib/gitlab/i18n.rb:105:in `with_locale'",
"lib/gitlab/i18n.rb:111:in `with_user_locale'",
"app/controllers/application_controller.rb:470:in `set_locale'",
"app/controllers/application_controller.rb:464:in `set_current_context'",
"lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'",
"lib/gitlab/metrics/web_transaction.rb:21:in `run'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/speedscope.rb:13:in `call'",
"lib/gitlab/request_profiler/middleware.rb:17:in `call'",
"lib/gitlab/jira/middleware.rb:19:in `call'",
"lib/gitlab/middleware/go.rb:20:in `call'",
"lib/gitlab/etag_caching/middleware.rb:21:in `call'",
"lib/gitlab/middleware/multipart.rb:172:in `call'",
"lib/gitlab/middleware/read_only/controller.rb:50:in `call'",
"lib/gitlab/middleware/read_only.rb:18:in `call'",
"lib/gitlab/middleware/same_site_cookies.rb:27:in `call'",
"lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
"lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
"lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'",
"lib/gitlab/middleware/request_context.rb:21:in `call'",
"config/initializers/fix_local_cache_middleware.rb:11:in `call'",
"lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
"lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
"lib/gitlab/metrics/requests_rack_middleware.rb:74:in `call'",
"lib/gitlab/middleware/release_env.rb:12:in `call'"
],
"db_duration_s": 0.20325,
"view_duration_s": 0,
"duration_s": 1.2108
}
What is the current bug behavior?
The user does not see the error message in the browser and does not understand what the problem is.
What is the expected correct behavior?
The user sees error messages in the browser, for example: "You don't have permissions to view project B" and goes to solve the permission issue.
Edited by 🤖 GitLab Bot 🤖