Git LFS Push of large files results in a failure with i/o timeout
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
要約
When pushing large objects with Git LFS, the push fails with an i/o timeout error.
環境
- Bitbucket Server & Data Center
- Git LFS
診断
The git client displays the following:
~ username > git push
Uploading LFS objects: 0% (0/1), 2 GB | 104 MB/s, done.
LFS: Put "https://example.com/rest/git-lfs/storage/EXAMPLE/example-repo/d1786cec9c0d23b42e088b57b425f9f9fcfcad53": read tcp 192.168.0.1:1046->192.168.1.1:443: i/o timeout
error: failed to push some refs to 'https://example.com/rest/git-lfs/storage/EXAMPLE/example-repo.git'~ username >
The key part of the message above is: read tcp 192.168.0.1:1046->192.168.1.1:443: i/o timeout
原因
LFS is timing out waiting for the next TCP read or write. This is generally seen when pushing larger objects or a large commit, containing multiple large objects.
ソリューション
To resolve, the user will need to increase the lfs.activitytimeout value
for their git client. Depending on the version of your client, recent versions have a default value of 30 seconds. In the below command, we will increase to 60 seconds.
git config lfs.activitytimeout 60
Resource: Git LFS config manual