Search code examples
git-rebasegit-resetgitk

How to fix gitk that suddenly has got broken with error: can't read "arcnos()": no such element in array


gitk used to work fine until recently, when it started showing an error like:

can't read "arcnos()": no such element in array

and stopped showing the diffs etc. normally.

This happened with gitk-1:2.25.1-1ubuntu3.2 on Ubuntu 20.04.

Before this happened, I've been doing several git rebase and git reset --hard in my repo, which also has some git replace set up, if that could be important for the problem. (Although the history that I rebased doesn't intersect with the graft point.)

I've run git fsck, and it shows some dangling objects of different types. (I believe that a dangling object might cause some problems for gitk when it is trying to determine which objects like refs and tags refer to the shown commits...)

$ git fsck --name-objects
Checking object directories: 100% (256/256), done.
error in tag b2e1ebf3230672ae96d6c1c8f19cb023c8193f89: missingSpaceBeforeDate: invalid author/committer line - missing space before date
error in tag 56faa4371fc7a58f55c2700f652c1ba6384f3ffa: missingSpaceBeforeDate: invalid author/committer line - missing space before date
error in tag 221697dd45dfa25596feace71ab42d66aab67ff3: missingSpaceBeforeDate: invalid author/committer line - missing space before date
error in tag 033c847da41536d2acc74589c4a8494269d963f9: missingSpaceBeforeDate: invalid author/committer line - missing space before date
error in tag 1d048a4e4f1d303935db15e84ebd51951a4a03c4: missingSpaceBeforeDate: invalid author/committer line - missing space before date
Checking objects: 100% (143557/143557), done.
dangling blob 9f15c893db30e315f0688616faf4c57cac8d1dba
dangling blob d534a8fb5af2b7e2779a002828dd136078a35a4d
dangling blob e55478377eb2eb36fb782afa2a1614eac717a39b
dangling blob 21569023cc87b564c62e9dae2dc11abd7ed5ba49
dangling blob d35658eb27a2299b9f3f4ee5a91b450797f63bc5
dangling blob ac81c820e66afb3214d6dd934c88d1b02fbced5d
dangling blob ebbaa0d018d951882a6c083fa8c964fc912862d5
dangling blob ebc7e034b382ed525801eeac6d60fe0de08d0873
dangling blob 8bcca8b98f7d29a26b7e31db971617173e1b21a0
dangling blob 10e980a83644dab2ece20244837698ee50b6f823
dangling tag 61eb48fd6c81c40b1b29232b589f92e41734d3f4
dangling blob c913716dbc6651b87328289aab25340e0aadb8f3
dangling blob a414f19d695fbf64af81797a02a78d89f5537a6c
dangling blob 972539908d2b5f352a17ffff1870c89f870b5fe6
dangling commit 0f6b71242e4d49b3c47c9372eec400e38f480824
dangling tag e5ad513bb6f509f072fdf2a65acb3d1724d37d20
dangling blob 7ebfb1f1286c7e89647bb89cec2f600041474c44
dangling blob 4ce2f109be2c5de12c5d902b029c845b401ab813
dangling commit c9e3398b162a9a98f1c250ebc26974e961369192
dangling blob 0c23ba96d1be5f3fcac3c6d5b8977c6a07e19a89
dangling blob ac3cca70f44a0948be2c52024acda86789943320
dangling blob 434f9aa6b055bbb0069a2ae3bfa48c7a23f06794
dangling blob 9e567a4cb4fd493eaa163b88acec4873a3a58969
dangling blob 435f6a4b4456d2ec9b18155a7a348e4e2b6dbeae
dangling blob 4379ea6c75fdcca2eb6bd9858e01fd903f98a278
dangling blob e7873a34e1bf4a5ea0de7255d9b364081b3fa48d
dangling blob 8d8e6af8cbb360e5a33e36bcf48070e245d19490
dangling blob 6fa6f2cf2145f1108be5fc89c3b3c7e0494c82bb
dangling blob 19dafa14577dc7f15c25dd2e07de1fc861be77f3
dangling blob 7ae03af12390e4bb88c26d8c2a3bbd8037937f2f
dangling blob 9fe1aa411884fbbf33a456b9103e30fa819e316d
dangling blob 8ffd7a55ded446764f2bf2b8341bd5947cda8583
dangling blob 13008bf6146adf5d20ce63e62559c2db9c5ba122
dangling commit 3d2c5b7b3a09f3d21c5022e6e1491b9e10261b39
dangling blob 924463b9a67149fbf08bfe217c20a10b0ac69dbe
dangling commit 665733b438e268f691931647dfe1f418df16a72f
dangling blob 496f4b1d561962fa290f643bb27dba587bb9af55
dangling blob daa1e37be4d5ee34eac9d656c4da94f27a03a566
dangling blob 2ab37b0cfd90b4d3219d730162eb9b5cab4b24c2
dangling blob 7ccaebe839839a6024a33390509b7c8683714404
dangling blob 87d5a37c09593fe5633ff5228cd74af0f76f3581
dangling blob 681ab4995e851cb18cc6783db72e3856554b16ca
dangling blob d9748ca489073ebd1918a2da9fddcbbac8873611
dangling blob e980a417dc952b95c13adafdc7b06c1c8f8f4e53
dangling blob aa9394042e7e6f62598ca70d38033b4e92d5e498
dangling commit 71c92c28532148f98af0ba27ed06be7c59a2d343
dangling blob 4ff4f495f4d90329d0728500aafe1137ab26b8bf
dangling blob 162ebdcf785ba358ba9617f094e176754860dab5
dangling blob 39335522559ca3fb4e96f0eb8be81cb874d4ed6e
dangling blob 443b2d0c3faaf697dc3c4590d947b8f381232a76
dangling blob 79731d72367733730555b897d2f7d67c2fcd03bf
dangling blob ba77653bf80de6bea7b3f02befd4f7f13829fb58
dangling commit 2ed4751177d4a43e620759d512683cd26e3fa3cf
dangling blob 57d65d31d8ef4edd3159fa67e126eb2c5aed5225
dangling blob ca1166149c473a7e8dba419559af12cbea89f1fe
dangling blob 7f167ef137df333cba57323aab05abe3c6752926
dangling blob 631e1667578df65fe615c6027dd003fa4bed2df5
dangling blob 0dac3e4e4d3de589af4f425d24608f6cd80a7fb8
dangling blob 3ebcb673bcde734c71d07def507c5331280120c1
dangling blob 48c916ebf4d8c04eee55afe8cb651abf456f8240
dangling blob 71d4ae7368676e9d5067d9d7d14d7eab86bbcfd8
dangling blob 5bde4e96820d5eae42e6127315ffc1522d625a86
dangling blob d34e17b61d60eea42f6f35cee48dc3fef686a84a
dangling blob ed524fbf55d5fbf7eedb8c4c006f0c2133e191c0
dangling blob c95e472d07ebe4b2bce03c4c52821005786a00f0
dangling tree ff5fdfe988d1e286e3452c25abac2a725da42690
dangling blob ae8bbf993c674eabeee2ffea3628f691b8317955
dangling blob 06985761bb9deceb42098477e10d0ed64c03134b

Solution

  • A similar problem was reported in https://www.spinics.net/lists/git/msg407227.html with gitk 1:2.31.1-0ppa1~ubuntu18.04.1.

    They suggested in https://www.spinics.net/lists/git/msg409774.html that git gc would fix the problem.

    I ran git gc, too, and after it, the problem with gitk is gone.