Page MenuHomePhabricator

DiffusionProject
ActivePublic

Milestones

    • Milestone

Watchers

  • This project does not have any watchers.
  • View All

Details

Description

Source code thing.

Recent Activity

Dec 14 2021

epriestley added a comment to T13670: When a repository remote URI has a username in the URI and a different credential username, fail in an obvious way.

...possibly, but not conclusively, a result of an SSH version upgrade...

Dec 14 2021, 8:02 PM · Passphrase, Diffusion
epriestley triaged T13670: When a repository remote URI has a username in the URI and a different credential username, fail in an obvious way as Wishlist priority.
Dec 14 2021, 5:58 PM · Passphrase, Diffusion

Sep 5 2021

cspeckmim added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

So that part is correct, but swapping the commit and branch was incidental, and I overlooked it because we usually get the same result: in common cases, this is moot because ancestors(<branch name>) is equivalent to ancestors(<heads of that branch>), and branch(<commit hash>) is equivalent to branch(<branch of that commit>). The latter is always equivalent; the former is equivalent when commit is the single head of branch, which it almost always is in regular use.

But this behavior (on this install) is unambiguously wrong:

Screen Shot 2021-09-04 at 5.28.41 PM.png (1×2 px, 407 KB)

...since b7be5c961297 (the parameter) is an ancestor of 162a9c1e8e44 (the first commit in the result set). I'll send you a diff.

Sep 5 2021, 1:21 AM · Diffusion
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21722: Correct a parameter order swap in "diffusion.historyquery" for Mercurial.
Sep 5 2021, 12:47 AM · Diffusion
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

Good catch!

Sep 5 2021, 12:30 AM · Diffusion

Sep 4 2021

cspeckmim closed T13634: Support marking commits as UNREACHABLE in Mercurial as Resolved.
Sep 4 2021, 11:55 PM · Diffusion
cspeckmim added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

One tangential thing I noticed from the error messages in these cases, in DiffusionHistoryQueryConduitAPIMethod the getMercurialResult() function executes this hg command

$path_args = array();
if (strlen($path)) {
  $path_args[] = $path;
  $revset_arg = hgsprintf(
    'reverse(ancestors(%s))',
    $commit_hash);
} else {
  $revset_arg = hgsprintf(
    'reverse(ancestors(%s)) and branch(%s)',
    $drequest->getBranch(),
    $commit_hash);
}
Sep 4 2021, 11:03 PM · Diffusion
cspeckmim closed T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations as Resolved.
Sep 4 2021, 10:51 PM · Diffusion
cspeckmim added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

With just the updates to the future handling this is now the landing page I see with missing commits:

Screen Shot 2021-09-04 at 6.33.54 PM.png (948×3 px, 180 KB)

Sep 4 2021, 10:50 PM · Diffusion
cspeckmim renamed T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations from Improve error-handling behavior of Diffusion repository landing page to Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.
Sep 4 2021, 9:29 PM · Diffusion
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21721: Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time.
Sep 4 2021, 9:13 PM · Diffusion
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21720: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts.
Sep 4 2021, 8:40 PM · Diffusion
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

Ah, that's helpful. I found a repro, it's specific to the behavior of the ImmediateFuture pathway for non-clustered resolution of Conduit "calls". This should force it from any configuration/state, I think:

Sep 4 2021, 7:46 PM · Diffusion
cspeckmim added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

I'm able to reproduce this but I'll investigate further

Sep 4 2021, 7:40 PM · Diffusion
cspeckmim added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

I think I did conflate this partially - namely that this isn't directly caused by the issue discussed in T13365. Where this issue came up for me is while testing out D21715, I removed the head commit from the on-disk repo which caused the landing page to not render properly:

Sep 4 2021, 7:20 PM · Diffusion
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

I'll have some more detail in D21717 in a minute, but I can't immediately reproduce this, I think? If I intentionally break diffusion.historyquery like this:

Sep 4 2021, 7:06 PM · Diffusion
cspeckmim added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21717: Remove history query from DiffusionRepositoryController as it is unused.
Sep 4 2021, 6:07 AM · Diffusion
cspeckmim updated the task description for T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.
Sep 4 2021, 5:49 AM · Diffusion

Sep 3 2021

cspeckmim claimed T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.
Sep 3 2021, 10:26 PM · Diffusion
cspeckmim updated the task description for T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.
Sep 3 2021, 10:26 PM · Diffusion
cspeckmim renamed T13365: Conduit API method "diffusion.historyquery" fatals under Git/Mercurial if passed a bad "commit" from Conduit API method "diffusion.historyquery" fatals if passed a bad "commit" to Conduit API method "diffusion.historyquery" fatals under Git/Mercurial if passed a bad "commit".
Sep 3 2021, 10:24 PM · Diffusion
cspeckmim renamed T13365: Conduit API method "diffusion.historyquery" fatals under Git/Mercurial if passed a bad "commit" from Conduit API method "diffusion.historyquery" fatals under Git if passed a bad "commit" to Conduit API method "diffusion.historyquery" fatals if passed a bad "commit".
Sep 3 2021, 10:24 PM · Diffusion
cspeckmim triaged T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations as Low priority.
Sep 3 2021, 10:23 PM · Diffusion
cspeckmim added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

In Mercurial, I'm not exactly sure how wide this window is. Since you normally can't strip commits in the remote by pushing (AFAIK?)

This is true, though it does change a bit if we enable evolve server-side. Then when commits/branches are pruned when pushing/pulling those obsolete markers will also be transferred, allowing similar disappearing commits (retrievable via —hidden). However I believe by default mercurial does not allow pruning public changesets (would require forcibly changing phases on client/server, or running a server/branch in non-publishing mode). Supporting evolve/topics server-side is probably large enough that it would be its own big project. So I think this assumption holds up well.

Sep 3 2021, 3:57 AM · Diffusion
epriestley added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

(D21715 is still a draft, but I left a couple of more specific comments there.)

Sep 3 2021, 3:39 AM · Diffusion
epriestley added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

Does this refer to when multiple dependent commits are pushed and then stripped from the on-disk state?

Sep 3 2021, 3:35 AM · Diffusion
cspeckmim added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

Another caveat here is that if you destroy commits directly in Phabricator's working copy in certain states, it's possible it won't be able to trace ancestry to find all the commits you destroyed in order to mark them unreachable. However, this window is narrow. For Git, you can bin/repository mark-reachable to rebuild reachability if you know you've done a bunch of dangerous mutations to the on-disk state.

Sep 3 2021, 3:02 AM · Diffusion
cspeckmim updated the task description for T13634: Support marking commits as UNREACHABLE in Mercurial.
Sep 3 2021, 2:58 AM · Diffusion
cspeckmim added a revision to T13634: Support marking commits as UNREACHABLE in Mercurial: D21715: Add support to marking commits as UNREACHABLE for Mercurial.
Sep 3 2021, 2:55 AM · Diffusion

Jun 1 2021

epriestley added a revision to T13614: Provide a write-free, non-locking maintenance window for repositories: D21671: Provide an ad-hoc maintenance lock for clustered repositories.
Jun 1 2021, 3:17 PM · Clusters, Diffusion
epriestley added a comment to T13614: Provide a write-free, non-locking maintenance window for repositories.

Since observed repositories version differently today, this strategy won't work -- but I can't come up with any valid reason to ever put a repository into a "write maintenance" mode anyway. I do imagine making observed repositories "replay" fetches into the push log (as though they were pushes) in the future, but that still won't make "write maintenance" on an observed repository meaningful, so it seems fine to just prevent putting non-hosted repositories into this mode.

Jun 1 2021, 1:58 PM · Clusters, Diffusion
epriestley added a revision to T13614: Provide a write-free, non-locking maintenance window for repositories: D21670: Allow maintenance scripts to write synthetic events to the push log that act as repository updates.
Jun 1 2021, 1:50 PM · Clusters, Diffusion
epriestley added a revision to T13614: Provide a write-free, non-locking maintenance window for repositories: D21669: Improve display behavior for write locks held by omnipotent users.
Jun 1 2021, 1:13 PM · Clusters, Diffusion
epriestley added a comment to T13614: Provide a write-free, non-locking maintenance window for repositories.

A minor issue on the way to this is that calling synchronizeWorkingCopyBeforeWrite() with an omnipotent viewer will write to the WorkingCopyVersion table with a null userPHID, which shows as "Unknown Object" in the UI.

Jun 1 2021, 1:08 PM · Clusters, Diffusion
epriestley added a comment to T13614: Provide a write-free, non-locking maintenance window for repositories.

A useful maintenance operation for staging area repositories is to remove out-of-date staging refs: old diffs which have already landed. This is of some particular importance for large installs, since Git has a significant per-ref overhead for many operations until protocol v2: by the time a repository has ~50K refs, interacting with it in basically any way has become slow and cumbersome.

Jun 1 2021, 12:41 PM · Clusters, Diffusion

Apr 13 2021

davidgiga1993 added a comment to T7000: 404 when accessing repo via http.

This issue is still occurring.. the root cause is related to phabricator being set to allow-public. My fix still works and it would be nice if anyone here would support me bringing this upstream.

Apr 13 2021, 6:42 AM · Diffusion

Mar 28 2021

epriestley added a revision to T13647: Reduce repository update cost for repositories with large numbers of refs: D21658: Skip "git for-each-ref" when identifying deleted commits.
Mar 28 2021, 5:58 PM · Diffusion
epriestley added a comment to T13647: Reduce repository update cost for repositories with large numbers of refs.

One call to for-each-ref comes from resolving a list of commit hashes, to test if they still exist. This is accomplished with DiffusionLowLevelResolveRefsQuery, which calls git for-each-ref first and falls back to git cat-file --batch-check.

Mar 28 2021, 5:44 PM · Diffusion
epriestley added a comment to T13647: Reduce repository update cost for repositories with large numbers of refs.

Has this repository changed?

Mar 28 2021, 5:25 PM · Diffusion

Mar 26 2021

epriestley triaged T13647: Reduce repository update cost for repositories with large numbers of refs as Normal priority.
Mar 26 2021, 11:09 PM · Diffusion

Mar 17 2021

epriestley added a comment to T13290: Clean up remaining "Autoclose" behaviors related to "One Revision, Many Commits".

A general concern with "batch processing" is that it's quite bad if one commit failing to import can stall the entire repository forever.

Mar 17 2021, 11:18 PM · Diffusion, Differential
epriestley added a comment to T13290: Clean up remaining "Autoclose" behaviors related to "One Revision, Many Commits".

See also T13552, which modifies the above discussion. The "Update" steps now happen after the "Publish" step.

Mar 17 2021, 11:12 PM · Diffusion, Differential
epriestley closed T13513: Make schema changes to inlines to prepare for new inline features as Resolved.

When you are viewing a document with engine X, and comments originally made with engine Y are present, this should be indicated ("This comment was made while looking at this change as a Q document."). They should probably also be moved to the top/bottom of the file, at least by default, since "Jupyter line number 9 = raw source line number 9" is an exceptionally bad and confusing guess at how to map line numbers.

Mar 17 2021, 10:59 PM · Inline Comments, Diffusion, Differential
epriestley triaged T13645: In Diffusion "Tags" view, improve behavior for tags that point at tag objects as Low priority.
Mar 17 2021, 10:45 PM · Diffusion

Mar 15 2021

epriestley moved T13105: Plans: Rich presentation and diff rendering pipelines for various file types from Backlog to Next on the Differential board.
Mar 15 2021, 5:11 PM · Plans, Files, Differential, Diffusion
epriestley moved T13290: Clean up remaining "Autoclose" behaviors related to "One Revision, Many Commits" from Backlog to Next on the Differential board.
Mar 15 2021, 5:10 PM · Diffusion, Differential
epriestley moved T13513: Make schema changes to inlines to prepare for new inline features from Backlog to Next on the Differential board.
Mar 15 2021, 5:10 PM · Inline Comments, Diffusion, Differential

Mar 12 2021

epriestley closed T13631: Support an "auditors" attachment for "diffusion.commit.search" as Resolved.

For now, I fixed the explicit misinformation in audit.can-author-close-audit, at least.

Mar 12 2021, 5:27 PM · Diffusion
epriestley added a revision to T13631: Support an "auditors" attachment for "diffusion.commit.search": D21610: Clarify the behavior of "audit.can-author-close-audit".
Mar 12 2021, 5:13 PM · Diffusion

Mar 11 2021

epriestley triaged T13634: Support marking commits as UNREACHABLE in Mercurial as Low priority.
Mar 11 2021, 6:15 PM · Diffusion