Rename project allows reserved words
Summary
It appears a regression exists for blocking project renaming to a reserved word.
I have a user that was complaining about getting a 404 error on a project that he had renamed to update
. Sure enough when I investigate it, the project surely had been renamed to update
, both the name and path of the project.
Steps to reproduce
I attempted to reproduce the situation on my testing server. My testing server was GitLab 9.1.3 to start with:
- Create a project called
update
. This fails, complaining about the path using a reserved word. - Create a project called
my_update
. This is successful. - Access the project settings, scroll down to the rename project section.
- Enter in
update
as the project name and the project path. This fails..also complaining about using a reserved word. - Upgrade GitLab to the latest version, 9.2.5, which is the version the user was complaining about.
- Retry renaming the project to
update
using the settings page. - No error, and now I'm greeted with a 404 error page.
What is the current bug behavior?
Allows renaming of the project to a reserved word, specifically update
.
What is the expected correct behavior?
An error message should be displayed and the project not renamed, as it did in GitLab 9.1.
Relevant logs and/or screenshots
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
sudo gitlab-rake gitlab:env:info
System information System: CentOS 6.8 Current User: git Using RVM: no Ruby Version: 2.3.3p222 Gem Version: 2.6.6 Bundler Version:1.13.7 Rake Version: 10.5.0 Redis Version: 3.2.5 Git Version: 2.11.1 Sidekiq Version:5.0.0
GitLab information Version: 9.2.5 Revision: 6f2e590 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: http://dev-git.mascorp.com HTTP Clone URL: http://dev-git.mascorp.com/some-group/some-project.git SSH Clone URL: git@dev-git.mascorp.com:some-group/some-project.git Using LDAP: yes Using Omniauth: no
GitLab Shell Version: 5.0.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 ...
Git configured with autocrlf=input? ... yes Database config exists? ... yes All migrations up? ... yes Database contains orphaned GroupMembers? ... no GitLab config exists? ... yes GitLab config outdated? ... no Log directory writable? ... yes Tmp directory writable? ... yes Uploads directory setup correctly? ... no Try fixing it: sudo chown -R git /var/opt/gitlab/gitlab-rails/uploads sudo find /var/opt/gitlab/gitlab-rails/uploads -type f -exec chmod 0644 {} ; sudo find /var/opt/gitlab/gitlab-rails/uploads -type d -not -path /var/opt/gitlab/gitlab-rails/uploads -exec chmod 0700 {} ; For more information see: doc/install/installation.md in section "GitLab" Please fix the error above and rerun the checks. 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: ... 27/1 ... yes 91/2 ... yes 27/3 ... yes 5/4 ... yes 27/5 ... yes 20/6 ... yes 27/7 ... yes 31/8 ... yes 25/9 ... yes 28/12 ... yes 33/13 ... yes 29/14 ... yes 38/15 ... yes 38/16 ... yes 38/17 ... yes 38/18 ... yes 38/19 ... yes 38/20 ... yes 38/21 ... yes 38/22 ... yes 38/23 ... yes 38/24 ... yes 38/25 ... yes 243/26 ... yes 38/27 ... yes 38/28 ... yes 243/29 ... yes 243/30 ... yes 38/31 ... yes 35/32 ... yes 38/34 ... yes 38/35 ... yes 38/36 ... yes 38/37 ... yes 38/38 ... yes 38/39 ... yes 38/40 ... yes 17/42 ... yes 10/45 ... yes 10/46 ... yes 10/47 ... yes 38/48 ... yes 38/49 ... yes 38/50 ... yes 35/52 ... yes 38/53 ... yes 35/54 ... yes 42/55 ... yes 42/56 ... yes 47/57 ... yes 47/58 ... yes 47/60 ... yes 134/61 ... yes 47/62 ... yes 47/63 ... yes 42/64 ... yes 29/65 ... yes 8/66 ... yes 27/67 ... yes 27/70 ... yes 42/71 ... yes 42/78 ... yes 68/80 ... yes 68/81 ... yes 56/83 ... yes 27/86 ... yes 3/87 ... yes 70/89 ... yes 31/91 ... yes 79/93 ... yes 27/94 ... yes 85/96 ... yes 26/100 ... yes 85/102 ... yes 86/103 ... yes 21/104 ... yes 80/105 ... yes 21/106 ... yes 81/107 ... yes 88/108 ... yes 89/109 ... yes 89/110 ... yes 89/111 ... yes 19/113 ... yes 81/114 ... yes 90/115 ... yes 85/116 ... yes 90/117 ... yes 47/118 ... yes 68/119 ... yes 68/120 ... yes 81/121 ... yes 68/122 ... yes 68/123 ... yes 68/124 ... yes 68/125 ... yes 91/126 ... yes 68/127 ... yes 68/128 ... yes 81/129 ... yes 68/130 ... yes 17/131 ... yes 68/132 ... yes 68/133 ... yes 68/134 ... yes 68/135 ... yes 68/136 ... yes 68/137 ... yes 68/138 ... yes 68/139 ... yes 68/140 ... yes 70/141 ... yes 17/142 ... yes 68/143 ... yes 71/144 ... yes 68/146 ... yes 68/147 ... yes 90/148 ... yes 68/150 ... yes 17/151 ... yes 31/152 ... yes 7/153 ... yes 71/154 ... yes 81/157 ... yes 114/158 ... yes 114/159 ... yes 68/160 ... yes 47/161 ... yes 27/162 ... yes 114/166 ... yes 47/168 ... yes 31/170 ... yes 91/171 ... yes 47/172 ... yes 47/173 ... yes 47/174 ... yes 47/175 ... yes 47/176 ... yes 89/178 ... yes 27/179 ... yes 3/180 ... yes 21/183 ... yes 47/186 ... yes 47/187 ... yes 47/188 ... yes 47/189 ... yes 47/191 ... yes 47/192 ... yes 47/193 ... yes 17/194 ... yes 68/195 ... yes 27/196 ... yes 21/199 ... yes 109/200 ... yes 109/201 ... yes 109/202 ... yes 109/203 ... yes 109/204 ... yes 109/205 ... yes 109/206 ... yes 70/208 ... yes 109/209 ... yes 109/210 ... yes 109/211 ... yes 109/212 ... yes 109/213 ... yes 109/214 ... yes 109/215 ... yes 109/216 ... yes 109/217 ... yes 109/218 ... yes 38/219 ... yes 75/220 ... yes 47/221 ... yes 31/222 ... yes 81/223 ... yes 27/224 ... yes 81/225 ... yes 70/226 ... yes 70/227 ... yes 47/228 ... yes 68/229 ... yes 21/230 ... yes 45/231 ... yes 46/232 ... yes 47/233 ... yes 65/234 ... yes 118/236 ... yes 47/237 ... yes 109/238 ... yes 121/239 ... yes 121/240 ... yes 122/241 ... yes 118/243 ... yes 121/244 ... yes 70/245 ... yes 70/246 ... yes 70/247 ... yes 47/252 ... yes 44/254 ... yes 46/255 ... yes 46/257 ... yes 81/258 ... yes 47/259 ... yes 46/261 ... yes 65/263 ... yes 134/264 ... yes 134/265 ... yes 37/267 ... yes 135/268 ... yes 243/269 ... yes 31/270 ... yes 121/271 ... yes 89/272 ... yes 41/273 ... yes 89/274 ... yes 147/276 ... yes 147/277 ... yes 17/278 ... yes 27/279 ... yes 68/280 ... yes 148/281 ... yes 150/282 ... yes 47/283 ... yes 90/284 ... yes 47/285 ... yes 38/287 ... yes 27/288 ... yes 38/290 ... yes 71/291 ... yes 65/292 ... yes 90/294 ... yes 27/296 ... yes 27/297 ... yes 27/298 ... yes 21/299 ... yes 27/300 ... yes 114/301 ... yes 42/302 ... yes 38/303 ... yes 68/305 ... yes 31/306 ... yes 135/307 ... yes 135/308 ... yes 31/309 ... yes 3/310 ... yes 27/311 ... yes 68/314 ... yes 47/315 ... yes 165/316 ... yes 27/320 ... yes 27/321 ... yes 47/322 ... yes 27/323 ... yes 170/324 ... yes 171/325 ... yes 40/326 ... yes 27/327 ... yes 40/328 ... yes 68/329 ... yes 243/331 ... yes 90/332 ... yes 174/333 ... yes 31/334 ... yes 27/335 ... yes 27/336 ... yes 27/337 ... yes 141/338 ... yes 174/339 ... yes 243/340 ... yes 31/342 ... yes 47/344 ... yes 10/345 ... yes 90/346 ... yes 27/348 ... yes 40/349 ... yes 90/350 ... yes 89/351 ... yes 198/352 ... yes 174/353 ... yes 85/354 ... yes 89/355 ... yes 47/356 ... yes 47/357 ... yes 90/358 ... yes 31/359 ... yes 19/360 ... yes 38/361 ... yes 27/364 ... yes 3/365 ... yes 89/366 ... yes 85/367 ... yes 38/368 ... yes 47/369 ... yes 210/370 ... yes 47/371 ... yes 90/374 ... yes 85/375 ... yes 89/376 ... yes 200/377 ... yes 89/378 ... yes 91/379 ... yes 31/381 ... yes 208/382 ... yes 148/383 ... yes 180/384 ... yes 27/385 ... yes 65/387 ... yes 31/390 ... yes 243/391 ... yes 47/392 ... yes 27/393 ... yes 209/395 ... yes 210/396 ... yes 212/397 ... yes 91/398 ... yes 109/399 ... yes 109/400 ... yes 109/401 ... yes 109/402 ... yes 109/403 ... yes 141/404 ... yes 90/405 ... yes 47/406 ... yes 31/407 ... yes 214/408 ... yes 31/410 ... yes 38/411 ... yes 198/412 ... yes 47/413 ... yes 47/414 ... yes 27/415 ... yes 90/416 ... yes 27/417 ... yes 210/418 ... yes 17/419 ... yes 210/420 ... yes 21/421 ... yes 42/422 ... yes 65/424 ... yes 90/425 ... yes 90/426 ... yes 21/427 ... yes 115/428 ... yes 21/429 ... yes 69/430 ... yes 47/431 ... yes 68/432 ... yes 89/433 ... yes 35/434 ... yes 226/435 ... yes 135/436 ... yes 89/437 ... yes 243/438 ... yes 27/439 ... yes 226/440 ... yes 90/441 ... yes 207/442 ... yes 10/443 ... yes 68/444 ... yes 47/445 ... yes 47/446 ... yes 135/447 ... yes 42/448 ... yes 135/449 ... yes 135/450 ... yes 89/451 ... yes 231/452 ... yes 232/453 ... yes 42/454 ... yes 90/455 ... yes 141/456 ... yes 17/458 ... yes 89/459 ... yes 71/460 ... yes 47/461 ... yes 3/462 ... yes 85/463 ... yes 27/464 ... yes 31/465 ... yes 243/466 ... yes 127/467 ... yes 127/468 ... yes 27/469 ... yes 247/470 ... yes 141/473 ... yes 247/474 ... yes 230/475 ... yes 44/476 ... yes 249/479 ... yes 232/480 ... yes 250/481 ... yes 141/482 ... yes 90/484 ... yes 47/485 ... yes 45/486 ... yes 89/487 ... yes 254/488 ... yes 68/489 ... yes 210/490 ... yes 29/491 ... yes 135/492 ... yes 90/493 ... yes 47/495 ... yes 89/496 ... yes 89/497 ... yes 47/499 ... yes 31/500 ... yes 47/502 ... yes 89/503 ... yes 29/505 ... yes 251/506 ... yes 243/508 ... yes 259/509 ... yes 251/510 ... yes 68/511 ... yes 90/512 ... yes 262/513 ... yes 155/514 ... yes 47/516 ... yes 266/519 ... yes 17/520 ... yes 232/521 ... yes 65/523 ... yes 262/525 ... yes 270/526 ... yes 248/527 ... yes 89/529 ... yes 262/531 ... yes 65/533 ... yes 243/534 ... yes 27/535 ... yes 262/536 ... yes 225/537 ... yes 225/538 ... yes 258/539 ... yes 245/540 ... yes 226/541 ... yes 90/544 ... yes 62/545 ... yes 275/546 ... yes 275/547 ... yes 62/548 ... yes 27/549 ... yes 262/551 ... yes 27/552 ... yes 27/553 ... yes 27/554 ... yes 68/555 ... yes 29/556 ... yes 237/557 ... yes 47/558 ... yes 280/566 ... yes 47/569 ... yes 269/570 ... yes 269/571 ... yes 281/572 ... yes 237/573 ... yes 283/575 ... yes 269/576 ... yes 269/577 ... yes 283/578 ... yes 269/579 ... yes 45/580 ... yes 45/581 ... yes 45/582 ... yes 91/583 ... yes 91/584 ... yes 91/585 ... yes 91/586 ... yes 91/587 ... yes 91/588 ... yes 89/591 ... yes 290/592 ... yes 290/593 ... yes 290/594 ... yes 290/595 ... yes 91/597 ... yes 91/598 ... yes 90/599 ... yes 27/600 ... yes 91/601 ... yes 91/602 ... yes 91/603 ... yes 91/604 ... yes 91/605 ... yes 91/606 ... yes 275/608 ... yes 91/609 ... yes 45/610 ... yes 27/611 ... yes 27/612 ... yes 300/613 ... yes 127/615 ... yes 243/616 ... yes 247/617 ... yes 305/618 ... yes 230/619 ... yes 68/620 ... yes 243/621 ... yes 245/622 ... yes 90/623 ... yes 47/624 ... yes 305/626 ... yes 305/627 ... yes 305/628 ... yes 305/629 ... yes 89/630 ... yes 247/631 ... yes 27/633 ... yes 141/634 ... yes 27/635 ... yes 210/636 ... yes 17/637 ... yes 211/638 ... yes 27/639 ... yes 210/640 ... yes 247/642 ... yes 247/643 ... yes 259/644 ... yes 315/645 ... yes 29/646 ... yes 69/647 ... yes 310/648 ... yes 91/649 ... yes 283/651 ... yes 91/653 ... yes 90/659 ... yes 27/662 ... yes 243/663 ... yes 315/664 ... yes 243/665 ... yes 230/666 ... yes 230/668 ... yes 47/670 ... yes 68/671 ... yes 89/672 ... yes 27/673 ... yes 89/674 ... yes 251/676 ... yes 267/677 ... yes 91/678 ... yes 91/679 ... yes 135/680 ... yes 305/681 ... yes 47/682 ... yes 127/683 ... yes 91/684 ... yes 243/685 ... yes 91/686 ... yes 230/688 ... yes 91/689 ... yes 127/690 ... yes 127/691 ... yes 243/692 ... yes 304/696 ... yes 259/697 ... yes 282/699 ... yes 47/700 ... yes 47/701 ... yes 47/702 ... yes 139/703 ... yes 91/704 ... yes 91/705 ... yes 282/706 ... yes 332/707 ... yes 281/708 ... yes 127/709 ... yes 298/710 ... yes 127/711 ... yes 44/712 ... yes 47/713 ... yes 89/714 ... yes 338/716 ... yes 338/717 ... yes 335/718 ... yes 47/719 ... yes 230/720 ... yes 320/721 ... yes 230/723 ... yes 141/724 ... yes 127/725 ... yes 90/726 ... yes 237/727 ... yes 31/728 ... yes 281/729 ... yes 47/730 ... yes 335/731 ... yes 237/733 ... yes 47/734 ... yes 283/736 ... yes 89/737 ... yes 90/738 ... yes 66/740 ... yes 91/741 ... yes 237/742 ... yes 310/743 ... yes 347/744 ... yes 31/745 ... yes 13/746 ... yes 27/747 ... yes 47/748 ... yes 345/749 ... yes 345/750 ... yes 89/752 ... yes 90/754 ... yes 159/755 ... yes 27/756 ... yes 31/758 ... yes 47/759 ... yes 304/761 ... yes 44/762 ... yes 132/763 ... yes 31/764 ... yes 31/765 ... yes 47/766 ... yes 21/767 ... yes 31/768 ... yes 243/769 ... yes 304/770 ... yes 31/771 ... yes 283/772 ... yes 210/773 ... yes 283/774 ... yes 27/775 ... yes 91/776 ... yes 127/777 ... yes 71/778 ... yes 280/779 ... yes 47/780 ... yes 29/781 ... yes 230/782 ... yes 47/783 ... yes 274/784 ... yes 30/785 ... yes 283/786 ... yes 283/788 ... yes 283/789 ... yes 27/790 ... yes Redis version >= 2.8.0? ... yes Ruby version >= 2.1.0 ? ... yes (2.3.3) Your git bin path is "/opt/gitlab/embedded/bin/git" Git version >= 2.7.3 ? ... yes (2.11.1) Active users: 303
Checking GitLab ... Finished
Possible fixes
So the one thing that I think could fix it is one of the db:migrate scripts. There are a few that look like they could rename bad project names. I'm not sure how to execute these scripts, or specifically the ones that rename bad project names. Attempt to run gitlab-rake db:migrate
doesn't fix the issue.