Skip to content

bug: 错误的 metadata 会导致运行出错 #166

@he0119

Description

@he0119

插件加载过程中,不会验证 metadata 格式是否正确。如果一个错误的格式传递给 NoneFlow 会导致其启动报错。

08-20 10:57:33 [SUCCESS] nonebot | NoneBot is initializing...
08-20 10:57:33 [INFO] nonebot | Current Env: prod
08-20 10:57:33 [ERROR] nonebot | Failed to import "publish"
Traceback (most recent call last):
  File "/app/bot.py", line 90, in <module>
    nonebot.load_plugins("src/plugins")
  File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 48, in load_plugins
    return manager.load_all_plugins()
  File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 175, in load_all_plugins
    return set(
  File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 176, in <genexpr>
    filter(None, (self.load_plugin(name) for name in self.available_plugins))
> File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 145, in load_plugin
    module = importlib.import_module(
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 241, in exec_module
    super().exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/app/src/plugins/publish/__init__.py", line 13, in <module>
    from .config import plugin_config
  File "/app/src/plugins/publish/config.py", line 49, in <module>
    plugin_config = Config.parse_obj(get_driver().config)
  File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj
    return cls(**obj)
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
    raise validation_error
pydantic.error_wrappers.ValidationError: 1 validation error for Config
plugin_test_metadata -> supported_adapters
  value is not a valid set (type=type_error.set)
08-20 10:57:33 [SUCCESS] nonebot | Running NoneBot...
08-20 10:57:34 [INFO] nonebot | Application startup completed.
08-20 10:57:34 [SUCCESS] nonebot | GitHub *** | [issue_comment.created]: IssueCommentCreated 59150229[32](https://github.com/nonebot/nonebot2/actions/runs/5915022932/job/16040888938#step:6:33) from sender yanyongyu in repository nonebot/nonebot2
08-20 10:57:34 [INFO] nonebot | Shutting down
08-20 10:57:34 [INFO] nonebot | Waiting for application shutdown.
08-20 10:57:[34](https://github.com/nonebot/nonebot2/actions/runs/5915022932/job/16040888938#step:6:35) [INFO] nonebot | Application shutdown complete.

https://github.com/nonebot/nonebot2/actions/runs/5915022932/job/16040888938

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions