summaryrefslogtreecommitdiff
path: root/doc/administration/lfs/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/administration/lfs/index.md')
-rw-r--r--doc/administration/lfs/index.md72
1 files changed, 70 insertions, 2 deletions
diff --git a/doc/administration/lfs/index.md b/doc/administration/lfs/index.md
index 862c26abac8..edf0e324a5c 100644
--- a/doc/administration/lfs/index.md
+++ b/doc/administration/lfs/index.md
@@ -243,7 +243,52 @@ You can see the total storage used for LFS objects on groups and projects:
- In the administration area.
- In the [groups](../../api/groups.md) and [projects APIs](../../api/projects.md).
-## Troubleshooting: `Google::Apis::TransmissionError: execution expired`
+## Troubleshooting
+
+### Missing LFS objects
+
+An error about a missing LFS object may occur in either of these situations:
+
+- When migrating LFS objects from disk to object storage, with error messages like:
+
+ ```plaintext
+ ERROR -- : Failed to transfer LFS object
+ 006622269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7
+ with error: No such file or directory @ rb_sysopen -
+ /var/opt/gitlab/gitlab-rails/shared/lfs-objects/00/66/22269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7
+ ```
+
+ (Line breaks have been added for legibility.)
+
+- When running the
+ [integrity check for LFS objects](../raketasks/check.md#uploaded-files-integrity)
+ with the `VERBOSE=1` parameter.
+
+The database can have records for LFS objects which are not on disk. The database entry may
+[prevent a new copy of the object from being pushed](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/49241).
+To delete these references:
+
+1. [Start a rails console](../operations/rails_console.md).
+1. Query the object that's reported as missing in the rails console, to return a file path:
+
+ ```ruby
+ lfs_object = LfsObject.find_by(oid: '006622269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7')
+ lfs_object.file.path
+ ```
+
+1. Check on disk or object storage if it exists:
+
+ ```shell
+ ls -al /var/opt/gitlab/gitlab-rails/shared/lfs-objects/00/66/22269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7
+ ```
+
+1. If the file is not present, remove the database record via the rails console:
+
+ ```ruby
+ lfs_object.destroy
+ ```
+
+### `Google::Apis::TransmissionError: execution expired`
If LFS integration is configured with Google Cloud Storage and background uploads (`background_upload: true` and `direct_upload: false`),
Sidekiq workers may encounter this error. This is because the uploading timed out with very large files.
@@ -276,10 +321,33 @@ end
See more information in [!19581](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19581)
+### LFS commands fail on TLS v1.3 server
+
+If you configure GitLab to [disable TLS v1.2](https://docs.gitlab.com/omnibus/settings/nginx.md)
+and only enable TLS v1.3 connections, LFS operations require a
+[Git LFS client](https://git-lfs.github.com) version 2.11.0 or later. If you use
+a Git LFS client earlier than version 2.11.0, GitLab displays an error:
+
+```plaintext
+batch response: Post https://username:***@gitlab.example.com/tool/releases.git/info/lfs/objects/batch: remote error: tls: protocol version not supported
+error: failed to fetch some objects from 'https://username:[MASKED]@gitlab.example.com/tool/releases.git/info/lfs'
+```
+
+When using GitLab CI over a TLS v1.3 configured GitLab server, you must
+[upgrade to GitLab Runner](https://docs.gitlab.com/runner/install/index.md) 13.2.0
+or later to receive an updated Git LFS client version via
+the included [GitLab Runner Helper image](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#helper-image).
+
+To check an installed Git LFS client's version, run this command:
+
+```shell
+git lfs version
+```
+
## Known limitations
- Support for removing unreferenced LFS objects was added in 8.14 onward.
- LFS authentications via SSH was added with GitLab 8.12.
- Only compatible with the Git LFS client versions 1.1.0 and later, or 1.0.2.
-- The storage statistics count each LFS object multiple times for
+- The storage statistics count each LFS object for
every project linking to it.