threads / bug / 55614

[BUG] gitk error - can't read "arcnos()": no such element in array

Subject: [BUG] gitk error - can't read "arcnos()": no such element in array

## tl;dr

5 messages between May 3, 2021 and Jun 1, 2021.

replies: 4people: 2as markdown or json

Chris Packham· May 3, 2021, 21:16 UTC · lore
Hi,

I'm hitting an error with gitk (gitk 1:2.31.1-0ppa1~ubuntu18.04.1) on a specific git repository.

The repository is slightly odd in that it has some replace refs configured and multiple root commits. Although another similarly configured repo doesn't hit the error.

The text from the application error pop-up is:
can't read "arcnos()": no such element in array
can't read "arcnos()": no such element in array
    while executing
"lsearch -exact $arcnos($l) $a"
    (procedure "splitarc" line 21)
    invoked from within
"splitarc $olds"
    (procedure "getallclines" line 33)
     invoked from within
"getallclines file11"
     ("eval" body line 1)
     invoked from within
"eval $script"
    (procedure "dorunq" line 11)
    invoked from within
"dorunq"
    ("after" script)
I've not been able to narrow down a specific reproduction method yet.

Thanks, Chris

Chris Packham· May 31, 2021, 03:11 UTC · re: Chris Packham · lore

Re: [BUG] gitk error - can't read "arcnos()": no such element in array

On Tue, May 4, 2021 at 9:16 AM Chris Packham <judge.packham@gmail.com> wrote:
Show 31 quoted lines
>
> Hi,
>
> I'm hitting an error with gitk (gitk 1:2.31.1-0ppa1~ubuntu18.04.1) on
> a specific git repository.
>
> The repository is slightly odd in that it has some replace refs
> configured and multiple root commits. Although another similarly
> configured repo doesn't hit the error.
>
> The text from the application error pop-up is:
>
> can't read "arcnos()": no such element in array
> can't read "arcnos()": no such element in array
>     while executing
> "lsearch -exact $arcnos($l) $a"
>     (procedure "splitarc" line 21)
>     invoked from within
> "splitarc $olds"
>     (procedure "getallclines" line 33)
>      invoked from within
> "getallclines file11"
>      ("eval" body line 1)
>      invoked from within
> "eval $script"
>     (procedure "dorunq" line 11)
>     invoked from within
> "dorunq"
>     ("after" script)
>
> I've not been able to narrow down a specific reproduction method yet.

This seems to have fallen on the floor (so I pick memorial weekend in the US to give it a ping).

I have tried building gitk from source (git://ozlabs.org/~paulus/gitk) and still see the same problem. Still haven't reproduced it on anything other than my one repository.

Bagas Sanjaya· May 31, 2021, 03:24 UTC · re: Chris Packham · lore

Re: [BUG] gitk error - can't read "arcnos()": no such element in array

On 31/05/21 10.11, Chris Packham wrote:
Show 7 quoted lines
> This seems to have fallen on the floor (so I pick memorial weekend in
> the US to give it a ping).
> 
> I have tried building gitk from source (git://ozlabs.org/~paulus/gitk)
> and still see the same problem. Still haven't reproduced it on
> anything other than my one repository.
> 
So this issue is repo-specific, right?
Is your problematic repo public? If so, we can test against that.
-- 
An old man doll... just what I always wanted! - Clara
Bagas Sanjaya· May 31, 2021, 07:53 UTC · lore

Re: [BUG] gitk error - can't read "arcnos()": no such element in array

On 31/05/21 14.38, Chris Packham wrote:
Show 9 quoted lines
>> Is your problematic repo public? If so, we can test against that.
>>
> 
> Unfortunately not. It's actually an internal kernel tree which has a
> different root to upstream (hence using git replace to attach upstream).
> All of which make the history a bit funky.
> 
> I don't know if the problem will survive anonymisation but I can try.
> 

Did you mean vendor kernel tree based on Linux kernel? I think you can try reproducing the issue with either Linus' tree [1] (mainline only) or Greg's stable tree [2] (mainline + release branches and tags).

[1]: https://github.com/torvalds/linux [2]: https://github.com/gregkh/linux

-- 
An old man doll... just what I always wanted! - Clara
Chris Packham· Jun 1, 2021, 00:29 UTC · re: Bagas Sanjaya · lore

Re: [BUG] gitk error - can't read "arcnos()": no such element in array

On Mon, May 31, 2021 at 7:53 PM Bagas Sanjaya <bagasdotme@gmail.com> wrote:
Show 13 quoted lines
>
> On 31/05/21 14.38, Chris Packham wrote:
> >> Is your problematic repo public? If so, we can test against that.
> >>
> >
> > Unfortunately not. It's actually an internal kernel tree which has a
> > different root to upstream (hence using git replace to attach upstream).
> > All of which make the history a bit funky.
> >
> > I don't know if the problem will survive anonymisation but I can try.
> >
>
> Did you mean vendor kernel tree based on Linux kernel?

Kind of. A repo that was created in 2007 before we were using git properly by extracting the kernel tarballs and adding our code. So although it's a kernel tree it shares no common history with Linus' tree.

git fast-export/fast-import doesn't seem to like the affected repo so I'm not having much luck with making anything publicly available.

Show 7 quoted lines
> I think you can
> try reproducing the issue with either Linus' tree [1] (mainline only) or
> Greg's stable tree [2] (mainline + release branches and tags).
>
> [1]: https://github.com/torvalds/linux
> [2]: https://github.com/gregkh/linux
>
I've tried a few experiments
- cloning the "bad" repo -> no problem seen in clone
- cloning the "bad" repo with --mirror -> no problem seen in clone
- copying the "bad" repo -> same problem seen in copy
So now that I have a copy that shows the problem I can do a few more things.
- copy repo, remove replace refs (git replace -l | xargs git replace
-d) -> problem remains
- copy repo, remove replace refs and all remotes except origin ->
problem remains
- copy repo, run git gc -> no problem

So the git gc seems to have done the trick. I'm happy enough to leave it there and hope that this thread is useful for future mailing list searchers. I'll keep a copy of the affected repo around if there is anything someone wants me to try.

← back to recent threads