git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
* merge-ort assertion failure
@ 2022-01-14 19:46 Taylor Blau
  2022-01-14 22:15 ` Elijah Newren
  0 siblings, 1 reply; 3+ messages in thread
From: Taylor Blau @ 2022-01-14 19:46 UTC (permalink / raw)
  To: Elijah Newren; +Cc: git

Elijah,

A colleague reported that they were able to hit an assertion failure in
merge-ort when rebasing a topic of their back onto upstream.

The scenario (which I have been able to reproduce on a private
repository, but haven't had time to reduce further) is:

    $ git --version
    git version 2.34.1

    $ git rebase origin/master
    warning: skipped previously applied commit 9cda243afc2a
    warning: skipped previously applied commit 882bb87a3a7c
    hint: use --reapply-cherry-picks to include skipped commits
    hint: Disable this message with "git config advice.skippedCherryPicks false"
    [some "Auto-merging" messages ...]
    CONFLICT (content): Merge conflict in
    [some file]
    warning: exhaustive rename detection was skipped due to too many files.
    warning: you may want to set your merge.renamelimit variable to at least 165 and retry the command.
    Assertion failed: (renames->cached_pairs_valid_side == 0), function
    clear_or_reinit_internal_opts, file merge-ort.c, line 546.
    Abort trap: 6

Their merge.renameLimit is set pretty low at just "1", and this
assertion goes away so long as `merge.renameLimit` is set sufficiently
high.

I haven't had a chance to look into it very deeply yet. Elijah: I figure
that this is the sort of thing that may be totally obvious to you, so
I'm sharing it here in case it is.

Otherwise, I'll continue to poke at it locally and see if I can learn
anything else.

Thanks,
Taylor

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: merge-ort assertion failure
  2022-01-14 19:46 merge-ort assertion failure Taylor Blau
@ 2022-01-14 22:15 ` Elijah Newren
  2022-01-14 22:29   ` Taylor Blau
  0 siblings, 1 reply; 3+ messages in thread
From: Elijah Newren @ 2022-01-14 22:15 UTC (permalink / raw)
  To: Taylor Blau; +Cc: Git Mailing List

On Fri, Jan 14, 2022 at 11:46 AM Taylor Blau <me@ttaylorr.com> wrote:
>
> Elijah,
>
> A colleague reported that they were able to hit an assertion failure in
> merge-ort when rebasing a topic of their back onto upstream.
>
> The scenario (which I have been able to reproduce on a private
> repository, but haven't had time to reduce further) is:
>
>     $ git --version
>     git version 2.34.1
>
>     $ git rebase origin/master
>     warning: skipped previously applied commit 9cda243afc2a
>     warning: skipped previously applied commit 882bb87a3a7c
>     hint: use --reapply-cherry-picks to include skipped commits
>     hint: Disable this message with "git config advice.skippedCherryPicks false"
>     [some "Auto-merging" messages ...]
>     CONFLICT (content): Merge conflict in
>     [some file]
>     warning: exhaustive rename detection was skipped due to too many files.
>     warning: you may want to set your merge.renamelimit variable to at least 165 and retry the command.
>     Assertion failed: (renames->cached_pairs_valid_side == 0), function
>     clear_or_reinit_internal_opts, file merge-ort.c, line 546.
>     Abort trap: 6
>
> Their merge.renameLimit is set pretty low at just "1", and this
> assertion goes away so long as `merge.renameLimit` is set sufficiently
> high.
>
> I haven't had a chance to look into it very deeply yet. Elijah: I figure
> that this is the sort of thing that may be totally obvious to you, so
> I'm sharing it here in case it is.

I don't have a testcase (though I think there is probably enough
information here for me to create one), but I think I know the
problem.  Does this fix it for you? :
https://github.com/git/git/pull/1193

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: merge-ort assertion failure
  2022-01-14 22:15 ` Elijah Newren
@ 2022-01-14 22:29   ` Taylor Blau
  0 siblings, 0 replies; 3+ messages in thread
From: Taylor Blau @ 2022-01-14 22:29 UTC (permalink / raw)
  To: Elijah Newren; +Cc: Taylor Blau, Git Mailing List

On Fri, Jan 14, 2022 at 02:15:31PM -0800, Elijah Newren wrote:
> On Fri, Jan 14, 2022 at 11:46 AM Taylor Blau <me@ttaylorr.com> wrote:
>
> > I haven't had a chance to look into it very deeply yet. Elijah: I figure
> > that this is the sort of thing that may be totally obvious to you, so
> > I'm sharing it here in case it is.
>
> I don't have a testcase (though I think there is probably enough
> information here for me to create one), but I think I know the
> problem.  Does this fix it for you? :
> https://github.com/git/git/pull/1193

Unfortunately not. With a sufficiently small value of merge.renameLimit
(in my case, just 1) I can trigger the same assertion failure:

    $ GIT_DEBUGGER=1 git.compile -c merge.renameLimit=1 rebase $onto
    [...]
    Thread 1 "git" hit Breakpoint 1, clear_or_reinit_internal_opts (opti=0x55555b0cf3f0, reinitialize=0) at merge-ort.c:546
    546				assert(renames->cached_pairs_valid_side == 0);
    (gdb) p renames->cached_pairs_valid_side
    $1 = -1

Short of providing a small, reproducible test-case, I'm happy to share
any information I can about the repository that might be useful to you.

Thanks,
Taylor

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-14 22:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 19:46 merge-ort assertion failure Taylor Blau
2022-01-14 22:15 ` Elijah Newren
2022-01-14 22:29   ` Taylor Blau

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).