间歇性的“事件循环在 Future 完成之前停止。”

2024-04-28

我一直在为这个问题抓狂

有问题的代码是此处开源项目的一部分:aiosmtpd https://github.com/pepoluan/aiosmtpd(我的实际 FOSS 项目的分支,here https://github.com/aio-libs/aiosmtpd)

有问题的文件是这个:main.py https://github.com/pepoluan/aiosmtpd/blob/a0aa0e25bbb013bc03df8b0de98974bfdf67e305/aiosmtpd/main.py

出现问题的那段代码位于main.py 的第 139 行 https://github.com/pepoluan/aiosmtpd/blob/a0aa0e25bbb013bc03df8b0de98974bfdf67e305/aiosmtpd/main.py#L139

这是一个片段:

...
from aiosmtpd.smtp import DATA_SIZE_DEFAULT, SMTP, __version__
...

...

    # args is the result of ArgumentParser.parse_args

    factory = partial(
        SMTP, args.handler,
        data_size_limit=args.size, enable_SMTPUTF8=args.smtputf8)

    ...

    server = loop.run_until_complete(
        loop.create_server(factory, host=args.host, port=args.port))

    ...

有时- 那是,不总是-- 代码此时失败了RuntimeError: Event loop stopped before Future completed.

我的问题:

  1. 可能是什么原因造成的间歇性的失败?

    在测试过程中,大约有 10% 的时间会失败(使用 tox + nostest2),但 90% 的时间都进展顺利。

  2. 我应该如何检测和/或检查和/或断言以防止这种情况发生?

  3. “恢复”错误并重做操作的最佳策略是什么?


我第n次强调错误间歇性发生。虽然不常见,但经常发生,所以我觉得有必要追查根本原因。发生错误后,如果我立即或延迟后再次重新运行代码,则几乎总是不会发生相同的错误。


除非 asyncio 中存在错误,否则该问题可能是由调用引起的loop.stop()隐藏在代码库的某个地方。您可能想要删除或禁用它们,因为它们从根本上与run_until_complete,以及更现代的asyncio.run.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

间歇性的“事件循环在 Future 完成之前停止。” 的相关文章

  • 如何查找另一列的不同行中具有多个值的列值的总长度

    有没有办法找到同时有Apple和Strawberry的ID 然后求总长度 和只有苹果的ID 和只有草莓的IDS df ID Fruit 0 ABC Apple lt ABC has Apple and Strawberry 1 ABC St
  • Python ttk.combobox 强制发布/打开

    我正在尝试扩展 ttk 组合框类以允许自动建议 我到目前为止的代码运行良好 但我想让它在输入一些文本后显示下拉列表 而不从小部件的输入部分移除焦点 我正在努力解决的部分是找到一种强制下拉的方法 在 python 文档中我找不到任何提及这一点
  • 多行 x 刻度标签

    我正在尝试制作类似于此 Excel 示例的图 我想知道 x 刻度标签上是否有第二层 例如 5 年统计摘要 我知道我可以使用制作多行刻度标签 n但我希望能够独立地转换这两个级别 这很接近 fig plt figure figsize 8 4
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • 在 Python 3 中动态导入模块的问题

    我遇到的情况是 在我的 Python 3 项目中 在运行时必须包含某些模块 我在用着importlib import module为了这 第二次更新 我确实找到了一种方法来做一些接近我想要的事情 一些额外的代码可能会使我的一些链接稍微偏离一
  • 在openjdk:7-jre-alpine docker上如何安装python 3.6

    直到大约一周前 我才在 java 图像上成功使用 python 3 6 脚本 如下所示 FROM openjdk 7 jre alpine RUN apk update apk upgrade apk add no cache bash a
  • 从 Python 中编译的正则表达式中提取命名组正则表达式模式

    我有一个 Python 正则表达式 其中包含多个命名组 但是 如果先前的组已匹配 则可能会错过与一组匹配的模式 因为似乎不允许重叠 举个例子 import re myText sgasgAAAaoasgosaegnsBBBausgisego
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 查找“与我共享”文件夹 ID(驱动器 ID)和文件 - OneDrive、Microsoft Graph、Python

    我的客户与我共享了一些onedrive文件夹 其中包含5个文件 我想找到drive Id File Id 以便我可以使用python脚本下载 脚本参考 无法从内部文件夹 OneDrive Microsoft Graph Python 下载文
  • Python 3 - 编码/解码与字节/Str [重复]

    这个问题在这里已经有答案了 我是 python3 的新手 来自 python2 我对 unicode 基础知识有点困惑 我读过一些很好的帖子 这让一切变得更加清晰 但是我看到 python 3 上有两种方法可以处理编码和解码 但我不确定使用
  • 将 Python 中创建的 pandas 数据框插入 SQL Server

    如前所述 我在 Python 中创建了一个数据集合 40k 行 5 列 我想将其插入 SQL Server 表中 通常 在 SQL 中我会做一个 select into myTable from dataTable 调用来执行插入 但是 p
  • 如何导入Python文件?

    抱歉 这绝对是重复的 但我找不到答案 我正在使用 Python 3 这是我的应用程序的结构 home common py australia new south wales fetch py 我在home 目录 运行fetch py 我如何
  • 如何在Python中完美地将单元素列表转换为元组? [复制]

    这个问题在这里已经有答案了 所以我正在尝试这样做 tuple 1 我期望的输出是 1 但是 我得到了这个 1 但如果我这样做 tuple 1 2 它工作完美 像这样 1 2 这太奇怪了 我不知道为什么元组函数会导致这个结果 请帮我解决它 这
  • 如果使用 unicode 字符,则从数据库中进行 SELECT 会出现问题

    我在用着latest带DatabaseLibrary的python和机器人框架版本 https franz see github io Robotframework Database Library api 1 0 1 DatabaseLi
  • 从另一个文件覆盖函数中的变量

    一 总结 我不知道如何从另一个文件覆盖函数中的变量 2 示例 2 1 配置 I use logbook http logbook pocoo org and pyfancy https github com ilovecode1 Pyfan
  • 用于从深层嵌套列表/元组中提取元素的递归函数

    我想编写一个从深层嵌套元组和列表中提取元素的函数 假设我有这样的东西 l THIS THAT a b c THAT d e f 我想要一个没有 这个 和 那个 的简单列表 list a b c d e f 这是我到目前为止所拥有的 def
  • requests.iter_content() 认为文件已完成,但事实并非如此

    这个问题与我见过的其他问题不同requests iter content 在那里面requests似乎认为它已成功到达我正在迭代的文件末尾 实际上 该文件已被截断且不完整 我尝试处理的文件是一个 17gb gzip 需要丰富并存储在数据库中
  • 在 Python 中使用 mca 包

    我正在尝试使用MCA 套餐 https github com esafak mca blob master docs usage rst在Python中进行多重对应分析 我对如何使用它有点困惑 和PCA我希望fit一些数据 即找到这些数据的
  • Flask-Mail - 基于 Flask-Cookiecutter 异步发送电子邮件

    我的烧瓶项目基于烧瓶饼干切割机 https github com sloria cookiecutter flask我需要异步发送电子邮件 发送电子邮件的功能由以下配置米格尔的教程 https blog miguelgrinberg com
  • Python中矩阵元素的双重求和

    基于下面的简化示例 我想在我的代码中 from sympy import import numpy as np init printing x y symbols x y mat Matrix x 1 1 y X 1 2 3 Y 10 20

随机推荐

  • 在 xhtml 页面中显示版本和构建日期

    我想在 JSF 应用程序的页脚上显示构建版本和构建日期 这些页面是 XHTML 我正在寻找从 pom xml 或其他工件获取信息的方法 我发现以下使用 maven replace 插件 http www vineetmanohar com
  • 颜色“透明”不起作用

    我的 IE 有问题 还有什么问题 我使用 CSS 生成内容 其中也有一个背景图像 我看起来是这样的 nav ul li after content position relative z index 99 background transp
  • 对 Azure Functions 和 .csx 文件进行单元测试

    Azure Functions 抽象了大量依赖项 例如队列库和 Azure 表 因此 从单元测试依赖项模拟的角度来看 编码工作量较少 因此维护也较少 假设我们使用 Visual Studio 2015 进行本地开发 如何对单个 Azure
  • 什么插件/工作台框架是 Eclipse RCP 的最佳 .NET 替代品?

    我正在寻找一个与 Eclipse 插件框架相当的基于插件的应用程序框架 在我看来 它包括 a core 插件管理框架 Equinox OSGI 它提供了声明扩展端点 然后发现并加载为这些端点提供服务的插件的能力 这与依赖注入不同 但不可否认
  • 在 jQuery 中将一列的内容复制到另一列

    下面的 jQuery 非常慢 约 7 秒 我显然做错了 我正在尝试复制列的内容col到专栏0在 HTML 表格中 所以如果 col 是 2 那么我需要将第 2 列复制到第 0 列 for var i 0 i lt 31 i grid tr
  • 在 div 内为

    添加下划线

    我正在尝试下划线h1 title 但由于某种原因它总是占用父 div 的整个长度 我能够做到这一点的唯一方法是添加position absolute CSS 中的属性 This is the design And this is what

  • 将我的数据库类与项目中的其他类一起使用

    我有一个自己编写的自定义数据库类 还有一个用户类和一个站点类 MySQL 类有这样的方法 connect query clean fetch 用户等级 register login logout resetPass 站点类别 updateT
  • Python 滚动文本模块

    我想使用scrolledtext模块创建一个ScrolledText小部件 以便在python中创建GUI 我已经成功创建了 ScrolledText 小部件 但是我无法向其添加水平滚动条 e3 ScrolledText window3 w
  • 如何在 laravel 中插入多类别和多列不同类别的帖子?

    大家好 我是一个新的 Laravel 我的项目有问题 我有2张桌子 posts id title category id category id name PHP Laravel Ruby 例如 我想要的结果是 如果我将帖子插入帖子数据库
  • 我无法在 Unity Hub 中激活许可证

    我重新安装了视窗 10 我从官方网站下载了 Unity Hub 运行 unity hub 我看到错误 您没有有效的许可证 错误上有 2 个按钮 管理许可证 和 关闭 我单击 管理许可证 进入 Unity 中心设置中的 许可证管理 页面 单击
  • Java 泛型和数组初始化

    下面这句话的解释是什么 public class GenericsTest statement 1 public ArrayList
  • 如何对 Spring Boot MongoRepository 进行单元测试?

    在我的 Spring Boot Web 应用程序中 我使用 MongoDB 来存储数据 在应用程序中 我使用扩展的接口访问数据库MongoRepository 如何为这样的存储库类设置单元测试 我想要的是 启动 MongoDB 的嵌入式 内
  • 在 Mac OS X 上安装 Crypto++ 5.6.2

    我正在尝试在我的 Mac 上安装 Crypto 5 6 2 当我跑步时 make j4 libcryptopp a 我收到以下错误 libtool unrecognized option static libtool Try libtool
  • 预渲染 vue.js 2.0 组件(类似于 vue 1 中的 this.$compile)

    我正在努力使可重复使用的组件网格堆栈 https github com troolee gridstack js 我找不到一种简单的方法来做类似的事情this compile方法来自vue 1 我见过这个example http codep
  • 在我的例子中以编程方式安装 X509 证书

    我正在开发一个Android项目 我有一个 PEM 证书字符串 BEGIN CERTIFICATE MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD AkGA1UEBhMCR0Ix EzARBgNVBAg
  • 使用不同数据集重新加载和重新启动状态机的正确方法

    我需要相同的 SM 来服务同一数据库表中的各种记录 无法为每个记录创建 SM 这是使用另一条记录中的新状态重新初始化 SM 的合适方法吗 或者您能建议更好的方法吗 public static
  • 如何知道 Android TalkBack 是否处于活动状态?

    我正在开发一个使用 TalkBack 来指导人们完成的应用程序 然而 在这些情况下 我希望应用程序的布局有一些细微的差异 以便导航更容易 并且还有额外的语音输出 使用 TextToSpeech 来帮助指导用户 我的问题是 如果用户激活了 T
  • 使用Qt设置http get请求参数

    我正在 Qt 中开发一个基本应用程序 它使用 REST API 从 Parse com 检索数据 我浏览了一些类参考和 cURL 手册 但仍然不清楚如何设置请求参数 例如 我想对用户进行身份验证 这是 Parse 提供的curl 示例 cu
  • 外部类调用内部类的方法

    我知道要实例化成员内部类 您有两个不同的构造函数 First Outer out new Outer Outer Inner in out new Inner Second Outer Inner in new Outer new Inne
  • 间歇性的“事件循环在 Future 完成之前停止。”

    我一直在为这个问题抓狂 有问题的代码是此处开源项目的一部分 aiosmtpd https github com pepoluan aiosmtpd 我的实际 FOSS 项目的分支 here https github com aio libs