# SWI-Prolog github repository ("bench" submodule) is currently borked

**URL:** <https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770>\
**Category:** SWI-Prolog web site and services\
**Tags:** bug\
**Created:** [August 10, 2020, 11:41am UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770 "2020-08-10T11:41:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dtonhofer](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/dtonhofer/32/902_2.png) [@dtonhofer](https://swi-prolog.discourse.group/u/dtonhofer)\
**Post date:** [August 10, 2020, 11:41am UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/1 "2020-08-10T11:41:16Z")

</div>

The SWI-Prolog github repository is currently borked, more precisely, the `bench` submoduile seems to have a problem:

When trying to clone the submodules (I have added line breaks):

```plaintext
Cloning into 'tmp.V2HYd2beHX/swipl-devel_original/packages/zlib'...
fatal: remote error: upload-pack: 
not our ref 3fd9cb5301f3667b82d4c505c8ab60b59e855eec
e-band side-band-64k ofs-delta shallow deepen-since
deepen-not deepen-relative no-progress include-tag
multi_ack_detailed allow-tip-sha1-in-want
allow-reachable-sha1-in-want no-done 
symref=HEAD:refs/heads/master filter agent=git/github-gd72361c7e766
fatal: the remote end hung up unexpectedly
Fetched in submodule path 'bench', but it did not contain
3fd9cb5301f3667b82d4c505c8ab60b59e855eec. 
Direct fetching of that commit failed.
Error while cloning submodules in 'tmp.V2HYd2beHX/swipl-devel_original' -- exiting

```

See also this discussion: [Why does git submodule update fail with “fatal: remote error: upload-pack: not our ref”?](https://stackoverflow.com/questions/61163082/why-does-git-submodule-update-fail-with-fatal-remote-error-upload-pack-not-o)

> Your superproject is asking for the hash ID `[elided]` in the Git repository you can clone from [some repo]. That commit _simply does not exist_ in that repository, so it’s not in any clone you make either.
> 
> Do you know why your superproject lists this commit hash ID, even though it does not exist? (I certainly don’t.) You cannot get it from their Git, because they don’t have it. That’s what all these error messages are telling you.

The log says `bench` was changed this very morning, there was probably a problem at that point.

Shouldn’t happen, but, eh, computers, networking and all that.

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [August 10, 2020, 11:53am UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/2 "2020-08-10T11:53:17Z")

</div>

While Jan W. does check this site, the proper way to report this would be to open a GitHub issue for swipl-devl ([https://github.com/SWI-Prolog/swipl-devel/issues](https://github.com/SWI-Prolog/swipl-devel/issues)). This way others who pull the code from GitHub and do not read this forum with see the issue. 😃

---

<div class="post-metadata">

**Author:** ![dtonhofer](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/dtonhofer/32/902_2.png) [@dtonhofer](https://swi-prolog.discourse.group/u/dtonhofer)\
**Post date:** [August 10, 2020, 11:54am UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/3 "2020-08-10T11:54:43Z")

</div>

You are right. Reported now as [https://github.com/SWI-Prolog/swipl-devel/issues/649](https://github.com/SWI-Prolog/swipl-devel/issues/649)

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [August 10, 2020, 12:03pm UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/4 "2020-08-10T12:03:57Z")

</div>

Fixed. I appreciate the warning (should find a way to automate this check). I don’t care too much about where it is reported, but please avoid reporting twice 🙂

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [August 10, 2020, 12:07pm UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/5 "2020-08-10T12:07:44Z")

</div>

> [@jan](#):
>
> I don’t care too much about where it is reported

OK

I would like to give such post a new category or a subcategory; any suggestions before I create one.

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [August 10, 2020, 12:11pm UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/6 "2020-08-10T12:11:34Z")

</div>

We have [SWI-Prolog web site and services](https://swi-prolog.discourse.group/c/services/9) for that. This one should be avoided by an automatic check.

---

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [August 10, 2020, 12:17pm UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/7 "2020-08-10T12:17:30Z")

</div>

> [@jan](#):
>
> This one should be avoided by an automatic check.

I am lost on that statement.

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [August 10, 2020, 12:32pm UTC](https://swi-prolog.discourse.group/t/swi-prolog-github-repository-bench-submodule-is-currently-borked/2770/8 "2020-08-10T12:32:02Z")

</div>

It turns out adding this to `~/.gitconfig` simply makes it impossible to push the master repo if one of the submodules is not pushed.

```prolog
[push]
        recurseSubmodules = check

```

Added and this problem can no longer happen (well, unless I push from another machine on which I didn’t add this configuration ☹ )

See [https://stackoverflow.com/questions/25925414/how-to-prevent-unpushed-submodules-in-git](https://stackoverflow.com/questions/25925414/how-to-prevent-unpushed-submodules-in-git)
