• Stan Hu's avatar
    Fix LFS timeouts when trying to save large files · 37dd0737
    Stan Hu authored
    The following was happening:
    
    1. Workhorse stores an LFS file in /var/opt/gitlab/gitlab-rails/shared/lfs-objects
    2. CarrierWave then renames the file to a temporary directory (e.g. /opt/gitlab/embedded/service/gitlab-rails/tmp)
    3. CarrierWave then renames the file to its final location (e.g. /var/opt/gitlab/gitlab-rails/shared/lfs-objects)
    
    When the LFS upload path was on a different filesystem than the Rails
    installation, step 2 could take a longer than 10 seconds, at which point Workhorse
    would time out with "badgateway: failed after 10s: context canceled".
    
    This change makes the work path in the same root as the LFS storage path, preventing moves
    across filesystems.
    
    Closes #33218
    37dd0737
lfs_object_uploader.rb 879 Bytes