huggingface / huggingface/diffusers

create_dynamic_module infinite recursion when setting HF_HOME using relative path

オープン
#8,441 コメント 6 件 リアクション 1 件 担当者 0 名 GitHub で見る
bug stale
主要言語
Python
スター
34.5k
フォーク
7.3k
平均マージ
3日 3時間
マージ済み PR(30日)
91

説明

### 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_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
backend
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。