问题标签 [broken-pipe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2892 浏览

java - 如何解决 Java 中的断管?

从我的文件夹目录中读取文件时,我遇到了 Broken Pipe Exception。请通过我的以下代码...

在 IOUtils.copy(inputStream, outputStream); 中复制 inputStream 和 outputStream 时出现 Broken Pipe

如何解决断管?我可以使用 PipedInputStream 吗?这是处理此异常的正确方法吗?

0 投票
1 回答
1993 浏览

python-2.7 - java.io.IOException:越来越多的映射器/减速器的管道损坏,很多

我在 6 个节点的 hadoop 集群上运行 MapReduce 作业,配置了 4 个映射任务和 10 个减少任务。

Mapper/Reducer 在越来越多的 map/reduce 任务上失败了很多,如下所示,

在多个节点上运行的任务

我遇到以下错误:

标准错误日志

和这个:

系统日志

即使是最简单的程序也会产生这个问题:

映射器.py

减速器.py

我正在使用以下命令来运行 hadoop。

你能提出什么建议吗?

0 投票
1 回答
1016 浏览

ocaml - OCaml - 致命错误:使用 `| 时出现异常 Sys_error("Broken pipe") 包含多行的输出上的 head`

我有很多行的文本文件。我想编写一个简单的 OCaml 程序,该程序将逐行处理此文件并可能打印该行。

为了编写这个程序,我首先创建了一个较小的文件,行数更少 - 这样程序将更快地完成执行。

filter.ml这是我编写的简单样板程序:

它将输入文件的位置作为命令行参数,创建用于读取此文件的文件句柄,并process_lines使用此文件句柄作为参数调用递归函数。

process_linesix当它从文件句柄逐行读取时,使用可选参数来计算行号。process_lines 只是将读取的行打印file_handle到标准输出。

然后,当我在较小的输入文件上执行程序并将输出传送到 Linuxhead命令时,一切正常:

而且,当我在较大的文件上执行程序时,我看到了一个损坏的管道错误:

我了解到,当管道的读取器(在本例中为head命令)在管道的编写者(在本例中为我的 OCaml 程序)完成写入之前退出时,会发生此类损坏的管道错误。这就是为什么如果我将tail命令用作阅读器,我将永远不会收到这样的错误。

但是,当文件的行数较少时,为什么没有发生断管错误?

0 投票
1 回答
536 浏览

python - 带有鱿鱼的python脚本上的断管错误

我正在运行一个简单的 python 脚本来使用 squid url_rewriter_program 记录访问的 url。但是,每次运行时,重写器都会在 sys.stdout.flush() 处因管道损坏错误而崩溃。

请提出具体的解决方案。

蟒蛇代码是:

0 投票
1 回答
1215 浏览

android - 没有root android无法运行shell命令

在将此代码作为 IOException 运行时,它给了我一个异常。每当执行第一个字符串值“sysrw”时,它都会向我显示一个错误。我正在尝试在不root手机的情况下在android中运行shell命令。建议修复。谢谢。

堆栈跟踪如下所述: 堆栈跟踪:

0 投票
1 回答
4862 浏览

javascript - 使用 ajax 调用烧瓶服务器登录身份验证(断管)

我正在尝试使用对 Python 服务器(Flask)的 ajax 调用对 Web 应用程序中的用户进行身份验证,该调用又调用主服务器。我能够将凭据传递给 Flask 服务器并进行身份验证。但是在身份验证之后,它应该将成功消息传回客户端,以便我可以相应地在网页上重定向/显示消息。但是,它没有返回消息。相反,它在身份验证后给出了一个损坏的管道错误。我编写了以下代码客户端代码:

1)Javascript:

}

2)HTML:

3)Flask服务器代码:

问题:

1)如果我通过 Mozilla 浏览器而不是 Chrome 发出请求,我会收到一个 GET 请求而不是 POST 并且不会发生身份验证。

2)虽然我发出了一个 POST 请求,但我在地址栏的 url 中看到了用户名和密码。

请帮帮我...我现在已经辛苦了 2 天。

谢谢,萨扬

0 投票
2 回答
26603 浏览

python - 错误:[Errno 32] 管道损坏

我正在做一个 Django 项目。一切都很顺利,直到我创建了一个将值从 html 页面发送到后端 (views.py) 的 Ajax 请求。

当我使用 Ajax 发送数据时,我可以查看传递给 views.py 的值,它甚至可以到达 render_to_response 方法并显示我的页面,但会在终端中引发管道损坏错误。我没有看到程序有任何中断,但我想知道是否有办法防止此错误发生。我检查了其他回复。但到目前为止还没有运气。

当我尝试在刷新的页面上再次点击提交时,我收到以下消息:

您正在查找的页面使用了您输入的信息。返回该页面可能会导致您重复执行的任何操作。你想继续吗?[提交] [取消]`

这是转储:

更新: 这是我发送的代码:

这是我的views.py:

我仍然面临同样的问题。有人可以帮我弄这个吗?

编辑于 2014 年 5 月 28 日:我刚刚找出了断管的原因。这是因为我没有从 Python 发回响应,只是希望页面自动刷新。我是所有这一切的新手,我花了一段时间才弄清楚为什么会发生这种情况。

0 投票
2 回答
2021 浏览

python - Python amqp 断管错误

快速提问:

为了防止“Broken Pipe Error”,我是否需要祈祷两个独立的应用程序在通信 RabbitMQ 时不要同时使用相同的通道?(或者线程与拥有两个或多个独立应用程序不同?)

历史:

我已经编写了一些应用程序,其中一个(io-server)从我的其他应用程序的角度来看就像一个服务器,从 RabbitMQ 服务器的角度来看它就像一个客户端。

现在,一切都按预期运行了大约 10 分钟。然后,我的 io-server 崩溃了。这是回溯的最后一部分:

这是 RabbitMQ 日志的相关部分:

据我所知,最有希望的答案在这里

我可以让我的应用程序同步发布。但是如何保证我的所有应用程序同步运行?我真的必须吗?

0 投票
1 回答
3921 浏览

mysql - Hibernate c3p0 keep alive 似乎不起作用,出现“Broken Pipe”异常

我在我的 Web 应用程序(没有 Spring)中结合使用 Hibernate 和 c3p0。一夜之间,我的数据库连接似乎超时(或至少其中一个),第二天我得到了一个损坏的管道异常。
以下是我用于该项目的配置。

我得到的异常如下所示:

这里的问题是,我正在使用属性 autoReconnect=true,并且我正在测试连接有效性。(请参阅 c3p0 配置。)我相当确定 c3p0 配置已加载,因为以下内容显示在我的标准输出日志中:

异常的损坏管道部分是这样的:

根据我在互联网上找到的内容,我尝试了以下方法:

  • 将 autoReconnect=true 添加到连接 URL (请注意,尝试使用后连接仍然断开,因此似乎没有重新连接)
  • 将 testConnectionOnCheckout 和 testConnectionOnCheckin 添加到 c3p0 配置中
  • 将 idle_test_period 和 preferredTestQuery 添加到 c3p0 配置

似乎没有任何效果。有没有人知道可能导致此问题的原因?

0 投票
1 回答
2397 浏览

android - 什么情况会导致另一端的断管错误?

我有一个客户端-服务器应用程序,将数据从 Android 手机发送到平板电脑 - 电话、短信、电池状况等。手机是客户端,平板电脑是服务器,两者都运行服务,并使用部分唤醒锁来保留它们存活时间足够长,加上客户端有一个 PhoneStateListener 和一个 BroadcastReceiver 来跟踪呼叫、电池状况等。

关键是两端都保持活力,但在某个阶段 - 根据我的日志记录设置大约 20 分钟 - 客户端报告我有一个“断管”。

在服务器端,我有一个阻塞服务器,在一个循环中,在一个线程中侦听来自客户端的单字节命令,但我还添加了一个每分钟运行一次的线程,找出导致问题的原因。

当客户端检测到管道损坏时,我假设存在服务器套接字处于其中的情况,这会导致它,但我正在测试以下内容 -

  • Socket 是否打开。
  • 输入或输出流是否打开,
  • 它们中的任何一个是否为空。

不幸的是,所有这些条件都很好,就好像
连接仍然处于活动状态。我应该寻找什么?

我想要做的是一旦客户端检测到“断管”,服务器也会这样做,并尝试重新连接。