huggingface / huggingface/diffusers

create_dynamic_module infinite recursion when setting HF_HOME using relative path

Ouverte
#8,441 6 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
bug stale
Langage dominant
Python
Étoiles
34.5k
Forks
7.3k
Merge moyen
3 j 3 h
PR mergées (30 j)
91

Description

### Describe the bug

create_dynamic_module infinite recursion when setting HF_HOME using relative path

### Reproduction

```py
import os
os.environ["HF_HOME"] = ".cache/huggingface"

from diffusers.utils.dynamic_modules_utils import DIFFUSERS_DYNAMIC_MODULE_NAME, create_dynamic_module
from diffusers.utils.constants import HF_HOME

if __name__ == "__main__":
print(f"HF_HOME: {HF_HOME}")
full_submodule = DIFFUSERS_DYNAMIC_MODULE_NAME + os.path.sep + "local"
create_dynamic_module(full_submodule)
```

### Logs

```shell
HF_HOME: .cache/huggingface
Traceback (most recent call last):
File "/Users/luochaofan/projects/diffusers/_dynamic_modules.py", line 10, in
create_dynamic_module(full_submodule)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
[Previous line repeated 52 more times]
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 70, in create_dynamic_module
if not dynamic_module_path.parent.exists():
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py", line 1414, in exists
self.stat()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py", line 1222, in stat
return self._accessor.stat(self)
OSError: [Errno 63] File name too long: '.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules'
```

### System Info

diffusers 0.28.0

### Who can help?

_No response_

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start in src/diffusers/utils/dynamic_modules_utils.py at create_dynamic_module, then run the reproduction with a relative HF_HOME value. Done means the function no longer recurses while constructing the dynamic module path and the reported file-name-too-long error does not occur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
backend
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.