Python 在从函数返回时挂起

2023-12-25

假设我在一个相当复杂的 Flask 应用程序中有两个函数。一个函数调用另一个函数。

def dispatch_unlock(...):
    # ... stuff ...
    log('dis start')
    # this routine just sends some data over a ZMQ IPC socket
    # in this scenario, the socket send will time out
    ret = acl.enqueue(unlock.id, endpoint_id, filter_entry['service_id'])
    log('dis end')
    return ret

def something_else(...);
    # ... stuff ...
    log('routecall start')
    ret = dispatch_unlock(unlock, endpoint_id, endpoint, f)
    log('routecall end')
    return ret

When something_else运行,产生以下输出:

routecall start
dis start
dis end

之后,它就挂了。我尝试转储 Python 堆栈跟踪,但它们没有显示任何有用的信息。一个堆栈跟踪位于 Werkzurg 重新加载器中,另一个堆栈跟踪导致调用的转储器SIGUSR1.

谁能建议到底发生了什么? Python 调用堆栈是否以某种方式损坏了?

Edit:这是什么pdb显示我在返回之前单步执行的时间。看起来像调用框架上面的框架dispatch_unlock以某种方式迷路了。

> /SourceCache/Florence/lib/plugin/route.py(27)dispatch_unlock()
-> return ret
(Pdb) s
--Return--
> /SourceCache/Florence/lib/plugin/route.py(27)dispatch_unlock()->None
-> return ret
(Pdb) s

"这不是一个错误,这是一个功能"

当尝试垃圾收集对象并关闭 ZMQ IPC 套接字时,Python 挂起,该套接字由于端点不存在而未打开(这是正常的,因为我正在进行测试)。显然,在这种情况下,ZMQ 会无限期地挂起(这花了我很长时间才弄清楚,因为这在任何地方都没有记录)。这可以通过设置来避免LINGERZMQ 套接字的属性,解决了该问题。

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

Python 在从函数返回时挂起 的相关文章

随机推荐

  • 如何调试 POST 请求上的 net::err_failed/415 Unsupported Media Type 错误?

    我们有一个 API 由我们团队的后端开发人员制作 我正在尝试在 Vue 应用程序中使用它 之前我已经成功做了一些GET通过以下方式向 API 发出请求axiosHTTP客户端 https github com axios axios 所以我
  • 为什么允许指向不完整类型的指针而不是不完整类型的变量?

    为什么以下内容是合法的 typedef struct a aType struct a int x aType b 以及以下违法行为 void main typedef struct a aType aType someVariable s
  • 如何更改 CTabCtrl 选项卡颜色?

    你好 新年快乐 周四之前说是可以接受的 我正在尝试更改选项卡的颜色CTabCtrl班级 我正在尝试创建自己的 ReskinCTablCtrl 以便我可以在单独的类中调用它并在整个程序中轻松使用它 目前我可以更改背景颜色CTabCtrl但我无
  • MATLAB 库与现有库冲突 - CMake 崩溃

    我正在 Ubuntu 16 04 64 位机器上处理 C 代码 作为代码的一部分 我必须调用 Matlab 我使用 libmat 和 libmx 库来实现 当向 CMake 提供这些库的路径时 我收到 CMake 的警告 指出现有库可能会发
  • 如何正确pickle一个namedtuple实例

    我正在学习如何使用泡菜 我创建了一个命名元组对象 将其附加到一个列表中 并尝试腌制该列表 但是 我收到以下错误 pickle PicklingError Can t pickle
  • log4j:ERROR 转换日期时发生错误

    我在日志中发现了这个异常 log4j ERROR 转换日期时发生错误 java lang NullPointerException 在 java lang System arraycopy 本机方法 在 java lang Abstract
  • 在前端翻译我的 magento 自定义模块

    我已经做了一个 magento 自定义模块 我想为其进行翻译 我怎样才能做到这一点 而不创建另一个翻译模块 多谢 您可以使用内置的翻译方法并在模板中定义所有字符串 如下所示 如果您需要在类或块中使用字符串 您可以从辅助类中获取上下文 如下所
  • 连接两个表后访问所有数据并使用 linq 将它们分组

    我有两张桌子 TableA aId aValue TableB bId aId bValue 我想通过以下方式加入这两个表aId 然后从那里将它们分组bValue var result from a in db TableA join b
  • 添加一个新列并用 Oracle SQL 中另一列的一部分填充它

    我想在表中添加一个新列 并用另一列的最后 3 个字符填充它 两者都是 varchar 源列应保持不变 我想避免创建临时列 而是想了解如何在单个查询中执行此操作 谢谢 最好使用虚拟列 https oracle base com article
  • Ajax 侦听器事件 valueChange 似乎触发 onClick 而不是 onChange

    我有一个想要显示的嵌套问题列表 最初 我显示 1 级问题 然后根据用户对其父问题的回答显示子问题 所有问题都有一个单选按钮 有些问题有一个输入框 用于在用户选择 是 时显示附加信息 这是我的带有嵌套数据表的 JSF 代码 请注意 我已经取消
  • 克服 x86 idiv #DE 异常

    回复 x86 汇编语言 我有三个 32 位有符号数 n1 n2 和 n3 我想对 n1 乘以 n2 进行 imul 以获得 64 位带符号的结果 然后我想将该 64 位结果除以 n3 问题是 如果 64 位有符号结果足够大和 或 n3 足够
  • React 原生深度链接与 Facebook SDK 冲突

    我在我的react native应用程序中使用Facebook SDK 现在我还想添加对通用深度链接的支持 我按照此处的说明修改了我的应用程序委托 https developers facebook com docs ios getting
  • 使用 HttpServletRequest 获取请求发送者的 URL

    如何使用 HttpServletRequest 获取源域 源域是请求者的域 Thanks 你可以做任何一个 gets client browser s hostname String host request getRemoteHost O
  • 如何禁用按下按键时列表框自动选择项目

    我有一个列表框 我想在该列表框中复制并粘贴项目 复制和粘贴工作正常 但每次我按 Crtl C 时 都会自动选择以字母 C 开头的项目 可以禁用此自动选择还是我在这里遗漏了一些东西 这是我实现的复制粘贴方法 private void list
  • urllib2:读取 https url 失败

    此代码在我的 Ubuntu 上失败 但在其他主机上运行良好 gt gt gt from urllib2 import urlopen gt gt gt urlopen https courtapps utcourts gov Xchange
  • 客户端使用的数据库历史记录

    我试图找出在数据库上记录历史记录 跟踪已完成的任何插入 删除 更新的最佳方法是什么 历史数据需要编码到前端 因为它将被用户使用 创建 历史表 用于存储历史记录的每个表的副本 并不是一个好方法 因为数据分布在多个表中 此时 我最好的想法是创建
  • 在 Flash 中从中心缩放

    我正在使用 flash AS3 并且有一个动态影片剪辑 我想使用滑块放大或缩小该影片剪辑 我使用scaleX和scaleY函数使这个工作得很好 唯一的麻烦是这些从文档的左侧缩放 我希望它从中心缩放 任何帮助表示赞赏 function sca
  • JavaScript 文件在 ASP.NET Core 区域中的位置

    我正在创建一个 ASP NET Core 应用程序 其中包含多个区域 我应该在哪里添加特定于某个区域的 JavaScript 文件 通常我将它们放入 wwwroot js 文件夹中 某个区域有类似的东西吗 我应该在哪里添加 JavaScri
  • 使 Amazon S3 文件仅对登录用户可用

    如何使 Amazon S3 中的文件仅可供登录用户访问 我的网站使用 PHP 静态文件存储在 Amazon S3 中 只有登录到我的网站的用户才应该能够访问亚马逊云中的文件 是否可以 您可以使用应用程序根据用户登录生成的签名 URL htt
  • Python 在从函数返回时挂起

    假设我在一个相当复杂的 Flask 应用程序中有两个函数 一个函数调用另一个函数 def dispatch unlock stuff log dis start this routine just sends some data over