Modifying Project required approvals causes existing MR with fewer required approvals to "re-open" when merged
Summary
Changing a Project's "Approvals required" to greater than the approvals required on an open Merge Request causes a bug after merging the MR. After merging, the MR appears to "open", while the branch is successfully merged.
Steps to reproduce
- With a Project that requires N approvals (eg. 1 approval).
- Create a merge request, changing no defaults.
- Modify the Project to require >N approvals (eg. 2 approvals).
- Obtain the required N (eg. 1) approval on the merge request.
- Select "Merge" on the merge request.
Observe the branch has been merged to the target, and the merge request has been "opened", now with no changes or commits (as the target branch already has those commits)
Also, when attempting to delete the now empty merge request, an error is shown, and the merge request cannot be closed without editing the required approvals:
Validate approvals before merge Number of approvals must be at least that of approvals on the target project
Example Project
I was unable to reproduce on gitlab.com due to the requirement for merge request approvals
What is the current bug behavior?
When merging the merge request, the merge request is not closed as expected. This is confusing as it is not clear if the changes were merged into the target branch.
The merge request is then left in an open state, and cannot be closed without modification.
The merge request also still shows under the "Open" tab for the list of all merge requests.
I do not know what the expected behavior is when changing the required approvals on a Project to higher than that on existing Merge Requests.
What is the expected correct behavior?
When merging a merge request, it should go into the "merged" state.
Relevant logs and/or screenshots
The MR timeline shows two approvals and then a simultaneous "opened" and "mentioned in commit" from the branch being merged.
When attempting to close the re-opened MR, the user is sent to the Edit Merge Request screen and shown the following error:
Output of checks
N/A
Results of GitLab environment info
Expand for output related to GitLab environment info
System information System: Ubuntu 16.04 Proxy: no Current User: git Using RVM: no Ruby Version: 2.5.3p105 Gem Version: 2.7.6 Bundler Version:1.16.6 Rake Version: 12.3.2 Redis Version: 3.2.12 Git Version: 2.18.1 Sidekiq Version:5.2.5 Go Version: unknown
GitLab information Version: 11.8.0-ee Revision: 002a282 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql DB Version: 9.6.11 URL: https://gitlab.REDACTED.lan HTTP Clone URL: https://gitlab.REDACTED.lan/some-group/some-project.git SSH Clone URL: git@gitlab.REDACTED.lan:some-group/some-project.git Elasticsearch: yes Geo: no Using LDAP: no Using Omniauth: yes Omniauth Providers:
GitLab Shell Version: 8.4.4 Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks Git: /opt/gitlab/embedded/bin/git
Results of GitLab application Check
Expand for output related to the GitLab application check
Checking GitLab subtasks ...
Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 8.4.4 ? ... OK (8.4.4) Running /opt/gitlab/embedded/service/gitlab-shell/bin/check Check GitLab API access: OK Redis available via internal API: OK
Access to /var/opt/gitlab/.ssh/authorized_keys: OK gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... yes Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab App ...
Git configured correctly? ... yes Database config exists? ... yes All migrations up? ... yes Database contains orphaned GroupMembers? ... no GitLab config exists? ... yes GitLab config up to date? ... yes Log directory writable? ... yes Tmp directory writable? ... yes Uploads directory exists? ... yes Uploads directory has correct permissions? ... yes Uploads directory tmp has correct permissions? ... yes Init script exists? ... skipped (omnibus-gitlab has no init script) Init script up-to-date? ... skipped (omnibus-gitlab has no init script) Projects have namespace: ... 4/2 ... yes 4/3 ... yes 4/4 ... yes 69/5 ... yes 4/6 ... yes 4/8 ... yes 4/9 ... yes 4/10 ... yes 6/11 ... yes 4/12 ... yes 4/13 ... yes 9/14 ... yes 13/15 ... yes 9/16 ... yes 4/17 ... yes 15/18 ... yes 4/19 ... yes 4/20 ... yes 16/21 ... yes 4/22 ... yes 19/24 ... yes 13/26 ... yes 15/27 ... yes 69/28 ... yes 69/29 ... yes 69/30 ... yes 4/31 ... yes 19/33 ... yes 19/34 ... yes 19/35 ... yes 19/36 ... yes 19/37 ... yes 19/38 ... yes 19/39 ... yes 19/40 ... yes 19/41 ... yes 39/43 ... yes 19/44 ... yes 19/45 ... yes 125/46 ... yes 41/47 ... yes 42/48 ... yes 42/51 ... yes 19/56 ... yes 31/57 ... yes 49/58 ... yes 49/59 ... yes 39/61 ... yes 13/62 ... yes 19/63 ... yes 50/64 ... yes 19/65 ... yes 4/66 ... yes 50/67 ... yes 50/68 ... yes 50/69 ... yes 64/70 ... yes 20/72 ... yes 20/73 ... yes 20/74 ... yes 20/75 ... yes 50/76 ... yes 20/77 ... yes 20/78 ... yes 18/79 ... yes 20/80 ... yes 50/81 ... yes 125/82 ... yes 18/83 ... yes 20/84 ... yes 50/85 ... yes 19/87 ... yes 20/88 ... yes 18/89 ... yes 20/90 ... yes 50/91 ... yes 50/92 ... yes 65/95 ... yes 64/96 ... yes 49/97 ... yes 49/98 ... yes 69/100 ... yes 74/101 ... yes 13/102 ... yes 51/103 ... yes 49/104 ... yes 65/105 ... yes 64/106 ... yes 65/107 ... yes 64/109 ... yes 64/110 ... yes 50/111 ... yes 92/112 ... yes 92/113 ... yes 92/114 ... yes 92/115 ... yes 65/117 ... yes 64/120 ... yes 64/121 ... yes 64/122 ... yes 65/124 ... yes 92/125 ... yes 64/126 ... yes 64/127 ... yes 65/128 ... yes 64/129 ... yes 59/130 ... yes 66/131 ... yes 66/132 ... yes 69/133 ... yes 48/134 ... yes 48/135 ... yes 48/136 ... yes 48/137 ... yes 48/138 ... yes 64/139 ... yes 64/140 ... yes 51/141 ... yes 80/142 ... yes 67/143 ... yes 69/144 ... yes 66/145 ... yes 65/147 ... yes 49/148 ... yes 50/149 ... yes 66/150 ... yes 69/151 ... yes 63/152 ... yes 63/153 ... yes 66/154 ... yes 66/155 ... yes 80/156 ... yes 63/157 ... yes 63/158 ... yes 48/159 ... yes 69/160 ... yes 69/161 ... yes 143/162 ... yes 69/163 ... yes 85/164 ... yes 70/165 ... yes 70/166 ... yes 71/167 ... yes 72/168 ... yes 58/169 ... yes 74/170 ... yes 143/171 ... yes 79/172 ... yes 78/174 ... yes 19/175 ... yes 4/176 ... yes 69/177 ... yes 51/182 ... yes 80/183 ... yes 80/184 ... yes 80/185 ... yes 81/186 ... yes 79/188 ... yes 93/189 ... yes 20/191 ... yes 19/192 ... yes 74/193 ... yes 74/194 ... yes 64/197 ... yes 64/199 ... yes 4/201 ... yes 4/202 ... yes 38/203 ... yes 20/204 ... yes 93/206 ... yes 69/207 ... yes 4/210 ... yes 42/211 ... yes 10/213 ... yes 4/214 ... yes 4/215 ... yes 39/216 ... yes 2/217 ... yes 81/218 ... yes 20/219 ... yes 19/220 ... yes 20/221 ... yes 83/222 ... yes 83/223 ... yes 81/224 ... yes 84/225 ... yes 85/226 ... yes 85/227 ... yes 84/228 ... yes 2/229 ... yes 85/230 ... yes 85/231 ... yes 7/232 ... yes 76/233 ... yes 6/234 ... yes 85/235 ... yes 10/236 ... yes 10/237 ... yes 19/238 ... yes 85/239 ... yes 85/240 ... yes 4/241 ... yes 82/242 ... yes 59/243 ... yes 82/244 ... yes 2/245 ... yes 4/246 ... yes 79/247 ... yes 65/248 ... yes 31/249 ... yes 86/251 ... yes 4/252 ... yes 69/253 ... yes 69/255 ... yes 79/256 ... yes 58/257 ... yes 4/258 ... yes 80/259 ... yes 80/260 ... yes 58/261 ... yes 64/262 ... yes 4/264 ... yes 76/266 ... yes 39/267 ... yes 4/268 ... yes 80/269 ... yes 69/271 ... yes 87/272 ... yes 87/273 ... yes 87/274 ... yes 74/275 ... yes 87/276 ... yes 87/277 ... yes 51/278 ... yes 74/279 ... yes 65/283 ... yes 69/284 ... yes 93/285 ... yes 92/286 ... yes 92/287 ... yes 92/288 ... yes 13/289 ... yes 13/290 ... yes 13/291 ... yes 69/293 ... yes 87/294 ... yes 13/295 ... yes 81/296 ... yes 87/297 ... yes 13/298 ... yes 89/300 ... yes 6/303 ... yes 13/304 ... yes 65/306 ... yes 88/307 ... yes 13/308 ... yes 4/309 ... yes 13/310 ... yes 69/312 ... yes 76/313 ... yes 4/314 ... yes 4/315 ... yes 88/316 ... yes 69/317 ... yes 69/319 ... yes 41/320 ... yes 41/322 ... yes 19/323 ... yes 84/325 ... yes 18/326 ... yes 37/327 ... yes 69/328 ... yes 41/329 ... yes 69/330 ... yes 79/332 ... yes 87/333 ... yes 6/334 ... yes 76/335 ... yes 93/336 ... yes 20/337 ... yes 93/338 ... yes 95/339 ... yes 76/340 ... yes 6/344 ... yes 48/345 ... yes 96/346 ... yes 97/348 ... yes 97/349 ... yes 48/350 ... yes 79/351 ... yes 41/352 ... yes 13/353 ... yes 97/354 ... yes 98/356 ... yes 96/360 ... yes 96/361 ... yes 96/362 ... yes 96/363 ... yes 96/366 ... yes 96/368 ... yes 96/369 ... yes 101/371 ... yes 101/372 ... yes 74/373 ... yes 20/374 ... yes 4/375 ... yes 6/376 ... yes 19/377 ... yes 69/378 ... yes 96/379 ... yes 98/381 ... yes 96/382 ... yes 96/383 ... yes 74/384 ... yes 101/385 ... yes 100/386 ... yes 100/387 ... yes 100/388 ... yes 87/390 ... yes 76/391 ... yes 87/392 ... yes 4/393 ... yes 81/394 ... yes 76/396 ... yes 34/397 ... yes 100/398 ... yes 100/401 ... yes 6/402 ... yes 76/403 ... yes 109/405 ... yes 96/406 ... yes 9/407 ... yes 87/408 ... yes 65/409 ... yes 106/411 ... yes 51/412 ... yes 111/414 ... yes 105/416 ... yes 87/417 ... yes 7/418 ... yes 6/420 ... yes 89/421 ... yes 91/422 ... yes 87/423 ... yes 6/424 ... yes 6/426 ... yes 6/427 ... yes 93/428 ... yes 93/429 ... yes 93/430 ... yes 93/431 ... yes 93/432 ... yes 105/433 ... yes 98/434 ... yes 96/435 ... yes 91/441 ... yes 91/442 ... yes 91/443 ... yes 91/444 ... yes 91/445 ... yes 91/446 ... yes 91/447 ... yes 91/448 ... yes 91/449 ... yes 91/450 ... yes 91/451 ... yes 91/452 ... yes 91/453 ... yes 91/454 ... yes 91/455 ... yes 91/456 ... yes 91/457 ... yes 91/458 ... yes 91/459 ... yes 91/460 ... yes 91/461 ... yes 91/462 ... yes 91/463 ... yes 91/464 ... yes 91/465 ... yes 91/466 ... yes 91/467 ... yes 91/468 ... yes 91/469 ... yes 91/470 ... yes 91/471 ... yes 91/472 ... yes 91/473 ... yes 91/474 ... yes 91/475 ... yes 91/476 ... yes 91/477 ... yes 91/478 ... yes 91/479 ... yes 91/480 ... yes 91/481 ... yes 91/482 ... yes 91/483 ... yes 91/484 ... yes 91/485 ... yes 91/486 ... yes 91/487 ... yes 91/488 ... yes 91/489 ... yes 91/490 ... yes 91/491 ... yes 91/494 ... yes 91/496 ... yes 91/497 ... yes 91/498 ... yes 91/499 ... yes 91/500 ... yes 91/501 ... yes 91/502 ... yes 91/503 ... yes 91/504 ... yes 91/505 ... yes 91/506 ... yes 91/507 ... yes 91/508 ... yes 91/509 ... yes 91/510 ... yes 91/511 ... yes 6/512 ... yes 91/513 ... yes 91/514 ... yes 96/515 ... yes 114/516 ... yes 7/518 ... yes 113/519 ... yes 91/520 ... yes 91/521 ... yes 119/522 ... yes 60/523 ... yes 91/524 ... yes 6/525 ... yes 6/526 ... yes 6/527 ... yes 109/528 ... yes 152/529 ... yes 91/530 ... yes 96/531 ... yes 20/532 ... yes 96/533 ... yes 96/534 ... yes 96/535 ... yes 96/536 ... yes 121/537 ... yes 96/538 ... yes 96/539 ... yes 96/540 ... yes 96/541 ... yes 96/542 ... yes 122/543 ... yes 121/544 ... yes 98/545 ... yes 96/546 ... yes 96/547 ... yes 6/548 ... yes 121/549 ... yes 98/550 ... yes 96/551 ... yes 98/552 ... yes 96/553 ... yes 51/554 ... yes 114/555 ... yes 121/556 ... yes 123/557 ... yes 119/558 ... yes 6/559 ... yes 121/560 ... yes 59/561 ... yes 114/562 ... yes 96/563 ... yes 96/564 ... yes 69/565 ... yes 121/566 ... yes 4/567 ... yes 6/568 ... yes 111/569 ... yes 51/570 ... yes 121/571 ... yes 69/572 ... yes 48/574 ... yes 119/575 ... yes 96/576 ... yes 96/577 ... yes 69/578 ... yes 113/579 ... yes 128/580 ... yes 6/583 ... yes 96/584 ... yes 93/585 ... yes 96/586 ... yes 18/587 ... yes 6/588 ... yes 96/589 ... yes 4/590 ... yes 96/591 ... yes 103/592 ... yes 129/593 ... yes 51/595 ... yes 106/596 ... yes 69/597 ... yes 69/598 ... yes 18/599 ... yes 96/600 ... yes 96/601 ... yes 109/602 ... yes 119/603 ... yes 69/605 ... yes 100/606 ... yes 80/607 ... yes 20/608 ... yes 121/609 ... yes 129/610 ... yes 96/611 ... yes 76/612 ... yes 96/613 ... yes 76/614 ... yes 128/615 ... yes 134/617 ... yes 121/618 ... yes 121/619 ... yes 96/621 ... yes 134/622 ... yes 134/623 ... yes 105/624 ... yes 111/625 ... yes 80/626 ... yes 76/627 ... yes 19/628 ... yes 39/629 ... yes 121/630 ... yes 121/631 ... yes 121/632 ... yes 121/633 ... yes 121/635 ... yes 121/636 ... yes 121/637 ... yes 76/638 ... yes 119/639 ... yes 20/640 ... yes 69/641 ... yes 96/642 ... yes 114/643 ... yes 61/644 ... yes 109/645 ... yes 135/646 ... yes 96/647 ... yes 135/648 ... yes 96/649 ... yes 135/650 ... yes 91/652 ... yes 93/653 ... yes 39/654 ... yes 87/655 ... yes 19/656 ... yes 69/657 ... yes 128/658 ... yes 69/659 ... yes 105/660 ... yes 138/661 ... yes 105/663 ... yes 119/664 ... yes 105/665 ... yes 139/666 ... yes 139/667 ... yes 139/668 ... yes 89/669 ... yes 105/670 ... yes 134/671 ... yes 89/672 ... yes 63/673 ... yes 65/674 ... yes 89/675 ... yes 119/676 ... yes 91/677 ... yes 96/678 ... yes 111/679 ... yes 50/680 ... yes 141/681 ... yes 19/682 ... yes 105/683 ... yes 147/684 ... yes 111/685 ... yes 51/686 ... yes 19/689 ... yes 96/691 ... yes 96/692 ... yes 114/693 ... yes 143/694 ... yes 76/695 ... yes 143/696 ... yes 143/697 ... yes 2/698 ... yes 69/700 ... yes 144/701 ... yes 145/702 ... yes 69/703 ... yes 111/704 ... yes 96/706 ... yes 145/707 ... yes 145/709 ... yes 145/710 ... yes 145/711 ... yes 51/712 ... yes 51/713 ... yes 111/714 ... yes 51/715 ... yes 88/716 ... yes 96/718 ... yes 146/719 ... yes 119/721 ... yes 59/722 ... yes 96/724 ... yes 148/725 ... yes 96/726 ... yes 37/727 ... yes 76/728 ... yes 4/729 ... yes 96/730 ... yes 149/731 ... yes 66/732 ... yes 69/733 ... yes 111/734 ... yes 96/735 ... yes 150/736 ... yes 150/737 ... yes 150/738 ... yes 48/739 ... yes 80/740 ... yes 121/741 ... yes 141/742 ... yes 6/744 ... yes 96/745 ... yes 51/746 ... yes 113/747 ... yes 114/748 ... yes 123/749 ... yes 4/750 ... yes 150/751 ... yes 93/752 ... yes 37/753 ... yes 37/754 ... yes 143/755 ... yes 146/756 ... yes 65/757 ... yes 146/758 ... yes 146/759 ... yes 96/760 ... yes 5/761 ... yes 51/762 ... yes 64/763 ... yes 65/764 ... yes 76/765 ... yes 59/766 ... yes 4/767 ... yes 34/768 ... yes 96/769 ... yes 20/770 ... yes 31/771 ... yes 84/772 ... yes 119/773 ... yes 87/774 ... yes 31/775 ... yes 74/776 ... yes 121/777 ... yes 121/778 ... yes 157/779 ... yes 121/780 ... yes 121/781 ... yes 51/782 ... yes 96/783 ... yes 144/784 ... yes 69/785 ... yes 158/786 ... yes 119/787 ... yes 37/790 ... yes 20/791 ... yes 93/792 ... yes 93/793 ... yes 51/794 ... yes 93/795 ... yes 74/796 ... yes 74/797 ... yes 66/799 ... yes 159/800 ... yes 4/801 ... yes 76/802 ... yes Redis version >= 2.8.0? ... yes Ruby version >= 2.3.5 ? ... yes (2.5.3) Git version >= 2.18.0 ? ... yes (2.18.1) Git user has default SSH configuration? ... yes Active users: ... 66 Elasticsearch version 5.6 - 6.x? ... yes (5.6.13)
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
Possible fixes
N/A