nonebot-plugin-access-control
nonebot-plugin-access-control copied to clipboard
SQLite连接错误导致插件报错
如题,该报错发生在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)