Skip to content

Commit

Permalink
[Bugfix] store lock file in tmp directory (#3578)" (#3599)
Browse files Browse the repository at this point in the history
Co-authored-by: youkaichao <[email protected]>
  • Loading branch information
WoosukKwon and youkaichao authored Mar 25, 2024
1 parent 6d93d35 commit 56a8652
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions vllm/model_executor/weight_utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Utilities for downloading and initializing model weights."""
import filelock
import glob
import hashlib
import fnmatch
import json
import os
Expand All @@ -20,8 +21,12 @@

logger = init_logger(__name__)

_xdg_cache_home = os.getenv('XDG_CACHE_HOME', os.path.expanduser('~/.cache'))
_vllm_filelocks_path = os.path.join(_xdg_cache_home, 'vllm/locks/')
# use system-level temp directory for file locks, so that multiple users
# can share the same lock without error.
# lock files in the temp directory will be automatically deleted when the
# system reboots, so users will not complain about annoying lock files
temp_dir = os.environ.get('TMPDIR') or os.environ.get(
'TEMP') or os.environ.get('TMP') or "/tmp/"


class Disabledtqdm(tqdm):
Expand All @@ -31,10 +36,15 @@ def __init__(self, *args, **kwargs):


def get_lock(model_name_or_path: str, cache_dir: Optional[str] = None):
lock_dir = cache_dir if cache_dir is not None else _vllm_filelocks_path
lock_dir = cache_dir or temp_dir
os.makedirs(os.path.dirname(lock_dir), exist_ok=True)
lock_file_name = model_name_or_path.replace("/", "-") + ".lock"
lock = filelock.SoftFileLock(os.path.join(lock_dir, lock_file_name))
model_name = model_name_or_path.replace("/", "-")
hash_name = hashlib.sha256(model_name.encode()).hexdigest()
# add hash to avoid conflict with old users' lock files
lock_file_name = hash_name + model_name + ".lock"
# mode 0o666 is required for the filelock to be shared across users
lock = filelock.FileLock(os.path.join(lock_dir, lock_file_name),
mode=0o666)
return lock


Expand Down

0 comments on commit 56a8652

Please sign in to comment.