问题标签 [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.
multithreading - Websphere Server 线程挂起
我们有一个应用程序,我们使用 H2 嵌入式数据库来存储数据。我们有一个同步写入方法,它执行数据库插入。由于 H2 DB 是一个小型 Java 嵌入式 DB,我们在 write 方法上使用“同步”来处理嵌入式 DB 中的事务管理,而不是 DB。
但是在重负载期间,我们可以看到写线程被挂起。我们不确定该线程正在挂起哪个资源。
请看这段代码:
我们有多种写入方法可以访问这个数据库。从代码中我们可以看到代码很简单。但是我们不确定资源被锁定在哪里。
另一个问题是(Websphere)system.out 中的线程转储,我们可以看到线程堆栈跟踪如下。
在上面的堆栈跟踪中,我需要知道堆栈跟踪中出现“未知来源”的原因。这些 jar 在类路径中可用,我们在类路径中也有 H2.jar。我们不确定为什么,如果线程在 H2 中挂起,我们无法获取线程堆栈跟踪。
如果不是,我还需要知道为什么线程堆栈跟踪显示“未知来源”。
感谢你的帮助。
提前致谢。
azure - azure - linux虚拟机卡在“停止”
我一直在使用我的 msdn 帐户试验 azure 服务。我创建了一个 suse 企业 linux 虚拟机。部署了 sonar+mysql 和一些简单的 java 应用程序。近一个月一切都很好,直到上周末。我尝试通过 ssh 连接,但无法得到响应。我尝试访问声纳网站,再次没有响应。我使用axure门户重新启动了vm,它似乎重新启动但仍然没有响应。我使用 azure 门户停止服务。它的状态已经“停止”了好几天。关于我可以做些什么来恢复连接有什么想法吗?
gdb - 获取在 GDB 中运行的挂起进程的堆栈跟踪
我试图弄清楚为什么我正在使用的程序挂起。
我最初认为通过 GDB 运行该问题已“解决”,但我得到的症状与以前完全相同 - 有什么方法可以向 GDB 发送信号或其他东西以打印堆栈跟踪,以便我可以尝试查看怎么了?
我正在使用 FreeBSD-9.0。
windbg - !mlocks 需要翻译帮助
我试图调查一个挂着windbg的人,想知道我的假设是否正确。如果我调用命令 !mlocks 我得到以下信息:
执行 rwlocks 时,我得到以下信息:
0:007> !rwlock
我懂了。当我打电话
则不会检测到死锁。我在 Tess 的博客上找到了这个 我的问题是这个线程是否与我挂起的应用程序有关,以及可能的情况。线程死了是什么意思。锁会发生在死线程上吗?还是我必须在其他地方找到我挂起的应用程序的根本原因?请帮我解释这个输出。
问候,伯恩哈德
这是一些附加信息:
java - 奇怪的 JVM 线程挂起 - 排除故障的建议?
在对生产环境中的一个 jvm 挂起问题进行故障排除时,我们遇到了执行以下记录器语句的线程之一
在这一步挂起,线程状态为可运行。这里 ids 是一个集合。还有另一个线程通过倒计时锁存器等待上述线程以完成其任务。该软件每 15 分钟进行一次线程转储,两个线程的堆栈跟踪如下所示
这个 jvm 挂了将近 24 小时,最后我们不得不杀死它才能继续前进。线程转储表明有 43 个线程处于 RUNNABLE 状态,包括上述线程。
上述线程在执行 collection.toString() 时处于 RUNNABLE 状态 24 小时的原因可能是什么?
关于如何进行的任何建议?
git - Git远程结束 - 奇怪的符号
为什么在我的“git push”命令中我收到以下非常吓人的错误消息?
我已经附加了出现在我的外壳上的文本,显示了奇怪的符号。我的 Git 安装是否损坏?我的拳头 git clone 正在使用 https
我git version 1.7.4.1
在 Ubuntu 10.10 x86_64 上使用
java - 在计算机上使用 OpenGL 绘制 FBO 挂起
我有两台电脑,一台配备 i5 和 ATI Radeon HD 5145 的东芝笔记本电脑,以及一台配备 Pentium D 和 ATI Radeon X1300 系列的旧戴尔台式机。
我使用 LWJGL 创建了一个 Java 应用程序,它创建了一个 FBO。附加到 FBO 的纹理是屏幕的大小(东芝为 1366x768,戴尔为 1024x768)。
我在两台计算机上尝试相同的应用程序,使用名为 MSI Afterburner 的程序查看 CPU 使用率、GPU 使用率和帧率。
在东芝上,它运行完美,在戴尔上它挂起。稍后我会更好地解释。
以下是创建 FBO 的代码:
这是显示 FBO 的 while 循环:
此方法将一些纹理绘制到 FBO 屏幕外
正如我之前所说,东芝上的应用程序与 Radeon HD 完美结合。5% CPU 使用率,20% GPU 使用率和 60fps。
当使用 Radeon X1300 在旧戴尔上执行此应用程序时,计算机会挂起;CPU使用率为50%,GPU无法测量,fps为0。
如果我不绘制 FBO,只是将其渲染到屏幕外,那么旧的戴尔不会挂起,我会得到正常的结果 5% 的 CPU 使用率、20% 的 GPU 使用率和 60fps。
它在四边形中绘制 FBO 导致计算机挂起的原因。我问,为什么?为什么会这样?我的代码有问题吗?起初我以为是电脑太旧(从 2006 年开始)并且无法处理 FBO,但是为什么在将 FBO 渲染到屏幕外时它没有挂起?
c++ - QT based Win7 app can't cope with the death of an I/O device
I'm writing a QT based native c++ app that uses QtSerialPort library under Win7. It communicates with it periodically(say every 5seconds).
Problem is: the device that my app connects to via serial port, has power loss issues(can't change this). When this happens my app becomes hung and immortal: can't be killed by windows task manager or by process hacker(a nice replacement for windows task manager)' termination facilities. Soft restart is the best solution at the hand.
Now how can my app cope with such device situation?
mysql - MySQL Left Join Query 挂了 4 小时
等待 3 小时 50 分 39.70 秒来运行以下查询是正常的还是正常的?
查询中使用的表:
ukbm001marketing.temp_ContactHistory_grtthn2009_raw
有565,832行ukbm001marketing.temp_CampaignCode_raw
有9505行ukbm001marketing.temp_ContactCodes_raw
有39行
我在命令提示行中运行了这个查询。
过去我曾使用过 Microsoft SQL Server(由我的 IS 部门设置)。我正在做我自己的项目,我有以下设置:
使用 EasyPHP12.1 安装
- Apache/2.4.2 (Win32) PHP/5.4.6
- 软件版本:5.5.27-log - MySQL Community Server (GPL)
笔记本电脑规格
- 处理器:Intel(R) Core(TM) i7-2620M CPU @ 2.70ghz 2.70ghz
- 内存:8.00 GB(7.88 GB 可用)
- 系统 64 位 Windows 系统
系统以 50% 的 CPU 使用率运行。
我没有索引任何表。我没有给表格任何主键。此问题是否与我的系统性能有关?是数据库设计问题吗?还是mysql服务器上的设置?
非常感谢您的帮助。
python - 如何中断/停止/结束挂起的多线程 python 程序
我有一个实现这样的线程的python程序:
call_threaded_program() 是从不同的程序调用的。
我的代码在正常情况下工作。但是,如果其中一个线程发生错误/异常,则程序会卡住(因为队列连接是无限阻塞的)。我能够退出该程序的唯一方法是关闭终端本身。
当线程退出时终止该程序的最佳方法是什么?有没有一种干净的(实际上我会采取任何方式)这样做的方式?我知道这个问题已经被问过很多次了,但我仍然无法找到一个令人信服的答案。我真的很感激任何帮助。
编辑: 我尝试删除队列上的连接并使用全局退出标志,如Is there any way to kill a Thread in Python? 但是,现在的行为是如此奇怪,我无法理解发生了什么。
程序的输出如下:
然后程序只是挂起或继续打印活动线程。然而,由于退出标志设置为 True,线程的 run 方法没有被执行。所以我不知道这些线程是如何保持的或发生了什么。
编辑:我发现了问题。在上面的代码中,线程的 get 方法被阻塞,因此无法退出。使用带有超时的 get 方法代替了诀窍。我有我在下面修改的 run 方法的代码