Page MenuHomePhabricator

Tag links giving 404s
Closed, DuplicatePublic

Description

Looking at T360627 I clicked on the Scribunto tag, which takes me to https://phabricator.wikimedia.org/tag/scribunto/ which is a 404...

Screenshot 2024-03-21 at 16.09.09.png (327×1 px, 32 KB)

Event Timeline

Similarly, Scribunto is not linking anymore, even though I selected it from the pop up...

brennen triaged this task as High priority.Mar 21 2024, 4:17 PM
brennen subscribed.

Hmm, yeah. As an example of one that works fine:

https://phabricator.wikimedia.org/tag/gitlab/

Note that Scribunto does not even autolink anymore and shows as plain text when writing it in a comment.
Direct link to project tag (though absolutely not helpful here:) https://phabricator.wikimedia.org/project/manage/558/

I tried a few changes to the gitlab properties to see if anything there would trigger this: Extra tags, setting repo URL, mentioning rELUA extension-Scribunto in the description. No obvious effect. View policy etc. seem identical, as I would expect.

I think the 404 lives around here in PhabricatorProjectController.php:

$policy_exception = null;
try {
  $project = $query->executeOne();
} catch (PhabricatorPolicyException $ex) {
  $policy_exception = $ex;
  $project = null;
}

if (!$project) {
  // This project legitimately does not exist, so just 404 the user.
  if (!$policy_exception) {
    return new Aphront404Response();
  }

  // Here, the project exists but the user can't see it. If they are
  // using a non-canonical slug to view the project, redirect to the
  // canonical slug. If they're already using the canonical slug, rethrow
  // the exception to give them the policy error.
  if ($is_abnormal) {
    return id(new AphrontRedirectResponse())->setURI($normal_uri);
  } else {
    throw $policy_exception;
  }
}

So maybe a phlog($policy_exception) before return new Aphront404Response(); would tell us something.

Note we also deployed https://we.phorge.it/rP887e344c19af9ee6f4855227f8a215a491974794 for T224662: After renaming a project in Phabricator, its /tag/projectname URL ends up as a 404.
DB looks fine though when running select * from phabricator_project.project where name = "Scribunto"; and select * from phabricator_project.project_slug where projectPHID = "PHID-PROJ-7dztgho5a3dd4jiuvcj2";

Together with T360530 these are the two paths to explore I guess.

I've also tried a few things both locally and on our production instance but have not been successful in reproducing.

Note we also deployed https://we.phorge.it/rP887e344c19af9ee6f4855227f8a215a491974794 for T224662: After renaming a project in Phabricator, its /tag/projectname URL ends up as a 404

That sure does seem like a promising lead - check this out:

Scribunto

I noticed that #scribunto wasn't in the displayed list of tags on the manage page, and it no longer 404s after adding scribunto to the list of additional tags. Is this just a pre-existing situation with the state of the data?

See the rename in Feb2024 in https://phabricator.wikimedia.org/project/manage/558/#104250 removing the original hashtag Scribunto before we deployed https://we.phorge.it/rP887e344c19af9ee6f4855227f8a215a491974794 in Mar2024 to (hopefully) fix exactly this situation.

Is this just a pre-existing situation with the state of the data?

I believe so now and propose to resolve this ticket as a duplicate of T224662 until we see this happening after a rename that took place after 2024-03-19.

it no longer 404s after adding scribunto to the list of additional tags.

Before brennen performed that action:

mysql:phstats@m3-slave.eqiad.wmnet [phabricator_project]> select * from phabricator_project.project_slug where projectPHID = "PHID-PROJ-7dztgho5a3dd4jiuvcj2";
+------+--------------------------------+--------------------------------+-------------+--------------+
| id   | projectPHID                    | slug                           | dateCreated | dateModified |
+------+--------------------------------+--------------------------------+-------------+--------------+
|  632 | PHID-PROJ-7dztgho5a3dd4jiuvcj2 | mediawiki-extensions-scribunto |  1416615933 |   1416615933 |
| 8551 | PHID-PROJ-7dztgho5a3dd4jiuvcj2 | lua                            |  1607907717 |   1607907717 |
+------+--------------------------------+--------------------------------+-------------+--------------+

After brennen performed that action:

mysql:phstats@m3-slave.eqiad.wmnet [phabricator_project]> select * from phabricator_project.project_slug where projectPHID = "PHID-PROJ-7dztgho5a3dd4jiuvcj2";
+-------+--------------------------------+--------------------------------+-------------+--------------+
| id    | projectPHID                    | slug                           | dateCreated | dateModified |
+-------+--------------------------------+--------------------------------+-------------+--------------+
|   632 | PHID-PROJ-7dztgho5a3dd4jiuvcj2 | mediawiki-extensions-scribunto |  1416615933 |   1416615933 |
|  8551 | PHID-PROJ-7dztgho5a3dd4jiuvcj2 | lua                            |  1607907717 |   1607907717 |
| 11386 | PHID-PROJ-7dztgho5a3dd4jiuvcj2 | scribunto                      |  1711043677 |   1711043677 |
+-------+--------------------------------+--------------------------------+-------------+--------------+