问题标签 [hung]

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 投票
5 回答
2063 浏览

php - 调试挂起的php

我有一个偶尔挂起的 php web 应用程序。当我导航到该页面时,即使最大执行次数为 210,它也会坐在那里尝试加载数小时。这是一个应用程序在代理后面使用 curl 来下载内容。错误报告设置为全部,但这并不重要,因为页面是空白并挂起的。

我在调试挂起的 PHP 进程时找不到任何东西。

0 投票
2 回答
5412 浏览

windows - 检测终止的挂起应用程序

我创建了一个运行和调试进程的最小调试循环。

当进程挂起并且用户尝试关闭它时,Windows 会提供消息框,其中包含等待或立即结束的选项。我想尝试检测它们现在何时结束,以便我的调试器可以收集相关信息。但是我似乎无法弄清楚如何检测这种情况。线程和进程退出代码保持在 0。有一次我以为它们返回 0xCFFFFFFF,但这种情况不再发生。

或者,也许可以修改一些注册表项以在应用程序关闭后运行此调试器,例如 Dr. Watson。也许这只是我的机器,但我似乎无法在关闭挂起的应用程序时启动调试器(VS JIT 调试、Watson 博士等)。

我知道这一定是可能的,因为我以前见过 HUNGAPP 转储。

感谢您提供任何信息!

0 投票
2 回答
2923 浏览

c++ - 诊断无法停止的应用程序

我们的 Windows 应用程序经常挂在内存中,我正在尝试使用 windbg 来追踪问题。我对 windbg 很陌生,可以使用一些建议(不过我已经开始阅读 Advanced Windows Debugging)。

该应用程序是用 VB 编写的 C++ 和 COM 对象的混合体。有时,当您退出时,该应用程序似乎消失了,但任务管理器显示它在内存中徘徊,显然是空闲的。

!threads 向我展示了这一点:

在我未经训练的眼睛看来,它似乎被单线程单元阻塞的 finalize 队列保持活动状态。这看起来合理吗?

~0kb 产生:

~6kb 产生:

我会很感激这里的一些课程修正。如果我对阻塞终结器的猜测似乎合理,请告诉我。我也很乐意得到一些建议来弄清楚究竟是什么阻塞了。

编辑:

Shane 询问 !analyze 的输出。这实际上来自不同的转储——我有很多,它们看起来都差不多。

0 投票
3 回答
7797 浏览

solaris - Runtime.exec 导致重复的 JVM 无限期挂起,直到被杀死 (Solaris 10)

全部,

我们在 Solaris 10 上使用 jrockit 64 位 JVM (27.3.1) 在 WebLogic 服务器 9.2 MP2 上运行 J2EE 应用程序。

我们调用 use runtime.exec 来调用一个名为 jfmerge 的可执行文件来创建 PDF 文档。

我们发现,在 Solaris 中,当调用 runtime.exec 时,会临时生成一个重复的 JVM 以启动 jfmerge 进程。虽然这是低效的(我们的 JVM 是 5 GB,因此复制的 shell JVM 也是 5 GB),但主要问题在于,当我们的应用程序中此功能(PDF 生成)负载很重时,有时复制的 JVM永远不会退出。

当 JVM 挂起时,服务器会产生大问题(应用程序极度缓慢和用户会话终止),因为整个重复的 JVM 将其所有 5 GB 的进程大小写入磁盘交换。

我们注意到以下挂起的线程与挂起的 JVM 进程相关,直到该进程被手动终止:

“[STUCK] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'” id=3463 idx=0x158 tid=3460 prio=1 活着,在本地,在 jrockit/io/FileNativeIO 的守护进程。 readBytesPinned(Ljava/io/FileDescriptor;[BII)I(Native Method) at jrockit/io/FileNativeIO.readBytes(FileNativeIO.java:30) at java/io/FileInputStream.readBytes([BII)I(FileInputStream.java) at java/io/FileInputStream.read(FileInputStream.java:194) at java/lang/UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227) at java/io/BufferedInputStream.fill(BufferedInputStream.java:218) at java/io /BufferedInputStream.read(BufferedInputStream.java:235) ^-- 持有锁:java/io/BufferedInputStream@0xfffffffec6510470[thin lock] at gov/v3/common/formgeneration/sessionbean/FormsBean。getProcessStatus(FormsBean.java:809) 在 gov/v3/common/formgeneration/sessionbean/FormsBean.createPDF(FormsBean.java:750) 在 gov/v3/common/formgeneration/sessionbean/FormsBean.getTemplateDetails(FormsBean.java:450)在 gov/v3/common/formgeneration/sessionbean/FormsBean.generateSinglePDF(FormsBean.java:1371) 在 gov/v3/common/formgeneration/sessionbean/FormsBean.generatePDF(FormsBean.java:263) 在 gov/v3/common/formgeneration /sessionbean/FormsBean.endorseDocument(FormsBean.java:2377) at gov/v3/common/formgeneration/sessionbean/Forms_qaco28_EOImpl.endorseDocument(Forms_qaco28_EOImpl.java:214) at gov/v3/delegates/common/FormsAndNoticesDelegate.endorseDocument(FormsAndNoticesDelegate.java :128) 在 gov/v3/actions/common/EndorseDocumentAction.executeRequest(EndorseDocumentAction.java:68) 在 gov/v3/fwk/controller/struts/action/V3CommonDispatchAction.executeBaseAction(V3CommonDispatchAction.java:336) 在 gov/v3/fwk/controller/struts/action/V3CommonDispatchAction.dispatchToExecuteMethod(V3CommonDispatchAction.java:532) /v3/fwk/controller/struts/action/V3BaseDispatchAction.execute(V3BaseDispatchAction.java:69) at org/apache/struts/action/RequestProcessor.processActionPerform(RequestProcessor.java:484) at gov/v3/fwk/controller/struts /requestprocessor/V3TilesRequestProcessor.processActionPerform(V3TilesRequestProcessor.java:384) 在 org/apache/struts/action/RequestProcessor.process(RequestProcessor.java:274) 在 org/apache/struts/action/ActionServlet.process(ActionServlet.java:1482 ) 在 org/apache/struts/action/ActionServlet.doGet(ActionServlet.java:507) 在 gov/v3/fwk/controller/struts/servlet/V3ControllerServlet.doGet(V3ControllerServlet.java:110) 在 javax/servlet/http/HttpServlet.service(HttpServlet.java:743) 在 javax/servlet/http/HttpServlet .service(HttpServlet.java:856) 在 weblogic/servlet/internal/StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 在 weblogic/servlet/internal/StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 在 weblogic/servlet/ internal/ServletStubImpl.execute(ServletStubImpl.java:283) 在 weblogic/servlet/internal/ServletStubImpl.execute(ServletStubImpl.java:175) 在 weblogic/servlet/internal/WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231) 在 weblogic /security/acl/internal/AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic/security/service/SecurityManager.runAs(SecurityManager.java:121) 在 weblogic/servlet/internal/WebAppServletContext.securedExecute(WebAppServletContext.java:2002) 在 weblogic/servlet/internal/WebAppServletContext.execute(WebAppServletContext.java :1908) 在 weblogic/servlet/internal/ServletRequestImpl.run(ServletRequestImpl.java:1362) 在 weblogic/work/ExecuteThread.execute(ExecuteThread.java:209) 在 weblogic/work/ExecuteThread.run(ExecuteThread.java:181)在 jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- 跟踪结束java:1908) 在 weblogic/servlet/internal/ServletRequestImpl.run(ServletRequestImpl.java:1362) 在 weblogic/work/ExecuteThread.execute(ExecuteThread.java:209) 在 weblogic/work/ExecuteThread.run(ExecuteThread.java:181 ) 在 jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- 跟踪结束java:1908) 在 weblogic/servlet/internal/ServletRequestImpl.run(ServletRequestImpl.java:1362) 在 weblogic/work/ExecuteThread.execute(ExecuteThread.java:209) 在 weblogic/work/ExecuteThread.run(ExecuteThread.java:181 ) 在 jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- 跟踪结束

我们想做几件事:

1.) 防止产生重复的 JVM,因为我们在执行简单的 jfmerge 可执行文件时不需要它的任何功能,它会产生大量开销。

2.) 至少在短期内防止这个重复的 JVM 无限期地移交。

0 投票
1 回答
748 浏览

php - 查找/处理停滞的 PHP 脚本

我使用 Ajax 启动可能需要几个小时才能运行的 PHP 脚本。它是异步完成的,因此即使浏览器关闭,PHP 脚本也会完成。

我需要处理任何由于某种原因而停止/挂起的 PHP 脚本。解决此问题的最佳方法是什么?有没有办法获取可用于定期检查活动的 PHP 脚本的进程 ID?在开始新的脚本之前,我需要杀死所有未完成的脚本。

谢谢,布赖恩

0 投票
1 回答
1918 浏览

iphone - 不能再把应用程序放在 iPhone 上

无法向引导服务器注册 com.mycompany.clack。错误:未知错误代码。这通常意味着该进程的另一个实例已经在运行或挂在调试器中。程序收到信号:“SIGABRT”。

这是我得到的错误,对此有什么想法吗?重新启动等无济于事,这似乎不是缓存问题,任何建议 - 其他论坛都没有。

0 投票
1 回答
149 浏览

macos - 一天后 MySQL 查询仍在执行..?

我正在尝试隔离 500MB 数据库中的重复项,并尝试了两种方法来做到这一点。一个创建新表并分组:

但它已经运行了一个小时,在 MySQL Admin 中它说状态是 Locked。

我尝试的另一种方法是使用以下方法删除重复项:

..这已经运行了 24 小时,管理员告诉我它正在发送数据...

您认为其中一个或这些查询实际上仍在运行吗?怎么判断是不是挂了?(使用 Apple OS X 10.5.7)

0 投票
1 回答
1723 浏览

ruby-on-rails - 如何对挂起的 phusion 乘客过程进行故障排除?

每天晚上,当我们运行批处理作业时,乘客都会对来自客户的 http 请求没有响应。一段时间后,它又开始工作了。

rails 日志中没有错误,实际上在挂起期间我根本看不到任何日志记录。

在 Apache 访问日志中,我们看到所有返回 500 错误的请求:

在 apache 错误日志中,我们看到:

我跑了一些乘客工具,这是输出

乘客记忆统计

--------- Apache 进程 ---------

PID PPID VMSize 私有名称

950 2012 312.1 MB 28.2 MB /usr/sbin/apache2 -k 开始 993 2012 309.4 MB 27.6 MB /usr/sbin/apache2 -k 开始 1014 2012 310.8 MB 26.8 MB /usr/sbin/apache2 -k 开始 1038 2012 310.8 MB 26.9 MB /usr/sbin/apache2 -k 开始 1050 2012 309.4 MB 27.6 MB /usr/sbin/apache2 -k 开始 1055 2012 302.1 MB 20.1 MB /usr/sbin/apache2 -k 开始 1057 2012 310.9 MB 26.9 MB /usr/sbin /apache2 -k 开始 1059 2012 308.4 MB 26.5 MB /usr/sbin/apache2 -k 开始 1060 2012 310.9 MB 27.1 MB /usr/sbin/apache2 -k 开始 1109 2012 315.5 MB 33.4 MB /usr/sbin/apache2 -k 开始2012 1 284.0 MB 1.7 MB /usr/sbin/apache2 -k 开始

进程:11

私人脏 RSS 总量:272.87 MB

-------- Nginx 进程 --------

进程:0

私人脏 RSS 总量:0.00 MB

----- 乘客流程 -----

PID VMSize 私有名称

1052 249.3 MB 78.6 MB 乘客 ApplicationSpawner:/u/apps/demandmart/current 1108 254.8 MB 82.1 MB Rails:/u/apps/demandmart/current 31088 87.1 MB 0.5 MB /usr/lib/ruby/gems/1.8/gems/passenger -2.2.11/ext/apache2/ApplicationPoolServerExecutable 0 /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/bin/passenger-spawn-server /usr/bin/ruby1.8 /tmp/passenger. 2012 31089 47.5 MB 9.8 MB 乘客生成服务器

进程:4

私人脏 RSS 总量:171.06 MB

乘客身份

----------- 一般信息 ----------- max = 6 count = 1 active = 0 inactive = 1 Waiting on global queue: 0

----------- 域 ----------- /u/apps/demandmart/current:PID:1108 会话:0 已处理:4 正常运行时间:18m 8s

任何想法,我可以尝试/做些什么来解决这个问题。我尝试使用 SIGABRT 进行杀戮,但日志显示我没有安装 gdb。所以我可以安装它,明天再试一次,但我很好奇这是正常的还是我应该尝试什么?

使用 apache2、phusion 2.2.11、ruby 1.8、rails 2、ubuntu

0 投票
5 回答
10244 浏览

python - 在没有挂起的情况下停止在 Python 中读取进程输出?

我有一个适用于 Linux 的 Python 程序,几乎看起来像这样:

程序挂在这一行:

这发生在保持更新输出的工具中,如“Top”

我最好的试验:

它比第一个效果更好(它被 kelled 了),但它返回:

二审:

和第一个一样。由于“readlines()”而挂起

它的返回应该是这样的:

并保存在变量“进程”中。任何我的想法伙计们,我现在真的被困住了吗?

0 投票
2 回答
1942 浏览

ssh - 失去 SSH 连接后,如何防止 gnu 屏幕无响应?

我使用 VPN 隧道连接到我的工作网络,然后使用 SSH 连接到运行 cygwin 的工作 PC。登录后,我可以附加到屏幕会话,一切正常。

现在,过了一会儿,我离开我的电脑,VPN 隧道迟早会超时。每一端的 SSH 连接最终都会超时,然后我最终回到我的电脑上做一些工作。从理论上讲,这应该是一个简单的问题,只需重新启动 VPN,通过 SSH 重新连接,然后运行“screen -r -d”。

然而,显然当 sshd 守护程序在 cygwin PC 上超时时,它会使屏幕会话处于某种挂起状态。我可以通过在运行屏幕会话时单击 cygwin bash shell 窗口上的关闭框来重现类似的挂起状态。

一旦发生这种情况,有什么方法可以让屏幕会话恢复,这样我就不会丢失任何东西?