Skip to content

SQLite连接错误导致插件报错 #53

Description

@CN171-1

如题,该报错发生在Bot服务刚刚启动时,不知道是因为我装插件的时候搞错了,还是因为什么,不过该报错貌似并不影响插件的正常使用

track:

07-11 09:09:49 [ERROR] nonebot | Error when running RunPreProcessors. Running cancelled!
Traceback (most recent call last):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\repository\utils.py", line 14, in use_ac_session
    yield _ac_current_session.get()
LookupError: <ContextVar name='ac_current_session' at 0x000001C120ACAA20>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\repository\utils.py", line 21, in use_ac_session
    yield session
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\service\_impl\patcher.py", line 105, in check
    await service.check(bot, event, throw_on_fail=True)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control_api\service\interface\service_base.py", line 66, in check
    return await self.check_by_subject(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control_api\service\service.py", line 55, in check_by_subject
    allow = await self.check_permission(*subjects)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control_api\service\service.py", line 108, in check_permission
    return await self._permission_impl.check_permission(*subject)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\service\_impl\permission.py", line 163, in check_permission
    p = await self.get_permission_by_subject(*subject)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\service\_impl\permission.py", line 57, in get_permission_by_subject
    async for p in self.repo.get_permissions(node, sub):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\repository\permission\impl.py", line 29, in get_permissions
    async for x in await session.stream_scalars(stmt):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\ext\asyncio\session.py", line 750, in stream_scalars
    result = await self.stream(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\ext\asyncio\session.py", line 695, in stream
    result = await greenlet_spawn(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 201, in greenlet_spawn
    result = context.throw(*sys.exc_info())
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\session.py", line 2365, in execute
    return self._execute_internal(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\session.py", line 2251, in _execute_internal
    result: Result[Any] = compile_state_cls.orm_execute_statement(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\context.py", line 306, in orm_execute_statement
    result = conn.execute(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1415, in execute
    return meth(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\sql\elements.py", line 523, in _execute_on_connection
    return connection._execute_clauseelement(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1637, in _execute_clauseelement
    ret = self._execute_context(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1842, in _execute_context
    return self._exec_single_context(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1982, in _exec_single_context
    self._handle_dbapi_exception(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2364, in _handle_dbapi_exception
    self.invalidate(e)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 749, in invalidate
    pool_proxied_connection.invalidate(exception)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\pool\base.py", line 1475, in invalidate
    self._connection_record.invalidate(e=e, soft=soft)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\pool\base.py", line 817, in invalidate
    self.__close(terminate=True)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\pool\base.py", line 884, in __close
    self.__pool._close_connection(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
    self._dialect.do_terminate(connection)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\default.py", line 709, in do_terminate
    self.do_close(dbapi_connection)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\default.py", line 712, in do_close
    dbapi_connection.close()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 277, in close
    self.await_(self._connection.close())
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\aiosqlite\core.py", line 168, in close
    await self._execute(self._conn.close)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\aiosqlite\core.py", line 122, in _execute
    return await future
asyncio.exceptions.CancelledError: Cancelled by cancel scope 1c12108f540

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 265, in rollback
    self.await_(self._connection.rollback())
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\aiosqlite\core.py", line 159, in rollback
    await self._execute(self._conn.rollback)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\aiosqlite\core.py", line 73, in _conn
    raise ValueError("no active connection")
ValueError: no active connection

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1124, in _rollback_impl
    self.engine.dialect.do_rollback(self.connection)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\default.py", line 703, in do_rollback
    dbapi_connection.rollback()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 267, in rollback
    self._handle_exception(error)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 296, in _handle_exception
    raise self.dbapi.sqlite.OperationalError(
sqlite3.OperationalError: no active connection

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\Bot\cn171bot\nb2\bot.py", line 47, in <module>
    nonebot.run(app="__mp_main__:app")
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot\__init__.py", line 337, in run
    get_driver().run(*args, **kwargs)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot\drivers\fastapi.py", line 187, in run
    uvicorn.run(
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\uvicorn\main.py", line 580, in run
    server.run()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\uvicorn\server.py", line 67, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Program Files\Python313\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
  File "C:\Program Files\Python313\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
  File "C:\Program Files\Python313\Lib\asyncio\base_events.py", line 708, in run_until_complete
    self.run_forever()
  File "C:\Program Files\Python313\Lib\asyncio\base_events.py", line 679, in run_forever
    self._run_once()
  File "C:\Program Files\Python313\Lib\asyncio\base_events.py", line 2028, in _run_once
    handle = None  # Needed to break cycles when an exception occurs.
  File "C:\Program Files\Python313\Lib\asyncio\events.py", line 105, in _run
    self = None  # Needed to break cycles when an exception occurs.
> File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot\utils.py", line 238, in run_coro_with_catch
    return await coro
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot\dependencies\__init__.py", line 113, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\service\_impl\patcher.py", line 104, in check
    async with use_ac_session():
  File "C:\Program Files\Python313\Lib\contextlib.py", line 235, in __aexit__
    await self.gen.athrow(value)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\nonebot_plugin_access_control\repository\utils.py", line 23, in use_ac_session
    await session.close()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\ext\asyncio\session.py", line 1030, in close
    await greenlet_spawn(self.sync_session.close)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\session.py", line 2521, in close
    self._close_impl(invalidate=False)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\session.py", line 2590, in _close_impl
    transaction.close(invalidate)
  File "<string>", line 2, in close
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\state_changes.py", line 139, in _go
    ret_value = fn(self, *arg, **kw)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\orm\session.py", line 1419, in close
    transaction.close()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2585, in close
    self._do_close()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2723, in _do_close
    self._close_impl()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2709, in _close_impl
    self._connection_rollback_impl()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2701, in _connection_rollback_impl
    self.connection._rollback_impl()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1126, in _rollback_impl
    self._handle_dbapi_exception(e, None, None, None, None)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 2351, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\base.py", line 1124, in _rollback_impl
    self.engine.dialect.do_rollback(self.connection)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\engine\default.py", line 703, in do_rollback
    dbapi_connection.rollback()
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 267, in rollback
    self._handle_exception(error)
  File "C:\Users\LLS\AppData\Roaming\Python\Python313\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 296, in _handle_exception
    raise self.dbapi.sqlite.OperationalError(
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no active connection
(Background on this error at: https://sqlalche.me/e/20/e3q8)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions