Project

General

Profile

Bug #4083

git.osmocom.org: error: garbage at end of loose object

Added by osmith about 2 months ago. Updated 25 days ago.

Status:
New
Priority:
Normal
Assignee:
sysmocom
Category:
-
Target version:
-
Start date:
07/01/2019
Due date:
% Done:

0%

Spec Reference:

Description

Right now, I can't clone libosmo-sccp from https://git.osmocom.org/libosmo-sccp. It fails with:

$ git -C /home/user/code/osmo-dev/src/osmo-ci/_temp/repos clone https://git.osmocom.org/libosmo-sccp
Cloning into 'libosmo-sccp'...
error: garbage at end of loose object 'a70b4599f63b50c4d654eb9e1b1a099a7c8cdc36'
fatal: loose object a70b4599f63b50c4d654eb9e1b1a099a7c8cdc36 (stored in /home/user/code/osmo-dev/src/osmo-ci/_temp/repos/libosmo-sccp/.git/objects/a7/0b4599f63b50c4d654eb9e1b1a099a7c8cdc36) is corrupt

I have noticed this multiple times with various repositories in the past week.

A few minutes later, it is working again. So maybe this is related to some sync job?

History

#2 Updated by laforge about 1 month ago

There is a "synch job" and that's the gerrit replication job that pushes/mirrors
gerrit.osmocom.org to git.osmocom.org. We're using the built-in gerrit replication
service for this, which in turn AFAIK just does a git+ssh push, which shouldn't introduce
any races. After all, it happens quite frequently that somebody clones a public git
repo while somebody else is pushing something.

However, pulling/cloning over https means there's a nginx reverse proxy between the server
and the client, and there may be some problem introduced here.

It would be useful to have exact timestamps to check if there's anything in the log. So
maybe it's worth to modify related scripts to print a timestamp before doing the clone?

The interesting bit from our config is that the http+https access to git.osmocom.org
are actually redirected to cgit.osmocom.org

To be honest, I never really looked too deep into how git over http works, given that
in the past I've only used it with the native git protocol and with ssh. For a long
time AFAIR it was even discouraged to use http* with it.

#3 Updated by osmith about 1 month ago

Thanks for looking into it.

It would be useful to have exact timestamps to check if there's anything in the log. So
maybe it's worth to modify related scripts to print a timestamp before doing the clone?

https://gerrit.osmocom.org/c/osmo-ci/+/14894

#4 Updated by osmith 25 days ago

laforge, here is one set of timestamps:

+ date '+%Y-%m-%d %H:%M:%S'
2019-07-29 07:01:59
+ git clone https://git.osmocom.org/libosmo-sccp
Cloning into 'libosmo-sccp'...
error: garbage at end of loose object '70751fce24f989d7334cba180e34ca65840ed0f9'
fatal: loose object 70751fce24f989d7334cba180e34ca65840ed0f9 (stored in /home/osmocom-build/jenkins/workspace/Osmocom_OBS_nightly/nightly-3g_QnWQVB/repo/libosmo-sccp/.git/objects/70/751fce24f989d7334cba180e34ca65840ed0f9) is corrupt
+ date '+%Y-%m-%d %H:%M:%S'
2019-07-29 07:02:10
+ exit 1

https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_nightly/173/console

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)