问题标签 [thread-dump]

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 投票
2 回答
1142 浏览

mysql - Web 应用程序冻结。我如何找到原因?

该应用程序在 apache tomcat 7.0.37 上运行。它是一个使用 JPA 和 MySql 的 Java/GWT 应用程序。

有时我们会发现它完全没有反应。今天是 5 个月内第二次发生这种情况。重新启动后它工作正常。在流量较少时观察到此行为的时间。

我分析了线程转储,没有发现任何死锁。

感谢您对解决问题的任何帮助。

谢谢,基索尔

0 投票
0 回答
806 浏览

java - jstack:关于 Java 线程转储的帮助

我在玩jstack。没有太多关于线程转储显示的信息。

在玩耍时,我得到了两个不同的线程转储:

转储 1:

[...]

转储 2:

[...]

(为了完整起见:两个转储均取自 Tomcat 6 安装)

这里看到的是: - 两个线程都处于 WAITING 状态。- 两个线程都进入了方法 borrowObject() 中的同步块 - 两个线程似乎都在 GenericObjectPool$Latch 类型的(不同)对象上调用了 wait()。

我还看到,转储 2 显示“-正在等待...”,但转储 1 没有。为什么以及它是什么意思?

提前感谢您的回答。

最好的问候,马库斯

0 投票
3 回答
6416 浏览

java - kill -3 或 jstack :有什么区别?

我想获取在 jboss 服务器上运行的 Web 应用程序的线程转储。

我为我的问题找到了两种解决方案:

  • 使用 unix 命令:kill -3
  • 使用 JDK 中存在的 jstack 工具。

谁能向我解释这两种方法之间的区别?

提前致谢 !

0 投票
1 回答
653 浏览

android - 在线程转储中看到什么

我在 Google Play Market 中发布了一些应用程序,并且keyDispatchingTimedOut在我的 MainActivity 中不断收到 ANR(应用程序无响应)报告。如您所知,Google 为我提供Thread Dumps了它。我不知道如何分析它,我应该仔细看看哪个部分。

我在eclipse中使用虚拟设备测试了所有android版本的应用程序,一切正常。

这是我的线程转储中的几行,完整的列表真的很长。

任何帮助表示赞赏。

0 投票
2 回答
485 浏览

java - 哪个 JVM 会打印出这样的线程转储?

我习惯于看到如下所示的 Java 线程转储,这是由 Sun HotSpot JVM 及其衍生产品(例如 OpenJDK)生成的:

现在,在帮助其他用户使用我的软件时,我偶尔会遇到另一种形式的线程转储,如下所示:

如您所见,格式完全不同,而且质量较差。它不报告它持有的锁,也不报告它正在等待的对象。

有谁知道哪个 JavaVM 系列产生第二种堆栈跟踪样式?我自己从来没有使用过,这一直困扰着我一段时间!

0 投票
4 回答
1032 浏览

java - 多个线程获取同一个监视器?

问题是围绕“多个 Java 线程看似锁定同一个监视器”的讨论。在我们的应用程序中,我们面临着类似的问题。有时应用程序运行非常缓慢。已捕获多个线程转储。线程转储表明有 2/3 个线程在同一时间点获取了相同的锁对象并处于 BLOCKED 状态。其他线程(在不同时间点有 10 到 20 个)在等待同一个锁对象时被阻塞。伪线程转储如下所示:

MyThread-91 和 MyThread-2 在锁定 <0xce1fb810> 时被阻塞。MyThread-14 在等待同一个锁 <0xce1fb810> 时处于阻塞状态。

我们肯定不会在这里遇到任何线程死锁问题。请注意,在任何时间点被锁 (0xce1fb810) 阻塞的线程随后都会释放它。但是,其他一些线程在获取相同的锁对象后会被阻塞。根据上面提到的讨论(&格雷提供的示例代码),这可能是因为在同步块中调用了 wait()。但是,我们检查了我们的代码,我们没有看到在同步块中调用了任何 wait()。在我们的例子中,它是链表的内部实现,而链表又具有实现迭代器的内部类。迭代器实现的next()和hasNext()锁在同一个外部类的实例上,即自定义链表的实例上。当多个线程调用 next() 和 hasNext() 时,它们在“获取”同一个锁后进入 BLOCKED 状态。

这是伪代码:

所以,问题是还有什么(除了wait())可能导致这种情况?

此博客讨论了类似的情况(在“示例 2:当处理性能异常缓慢时”部分下)。但不确定这里是否发生了类似的事情。

不要将此线程作为thisthis的副本关闭。如前所述,行为相似,但我想根本原因可能不是。

想法??

0 投票
1 回答
1012 浏览

thread-dump - 应用程序挂起时我们如何分析线程转储

我们面临一个问题,我们的应用程序挂起,我们需要重新启动应用程序。

这是线程转储。我想了解我们如何分析线程转储,我的意思是我们有什么方法可以找到问题所在的代码。

0 投票
2 回答
7099 浏览

java - 使用 Samurai 进行线程转储分析

我尝试使用Samurai来分析我的线程转储。

我从 Java VisualVM 保存了一个线程转储,它提供了一个 .tdump 文件。然后我开始了武士

我将线程转储文件拖到 Samurai 中,并在控制台中出现以下错误:

我该怎么做才能使 Samurai 运行而不会出现错误?

0 投票
5 回答
51748 浏览

java - Tomcat 线程转储

是否可以从 Tomcat中获取线程转储?我想在某个时间点监控Tomcat中运行的线程。

注意:我在 Web 逻辑上执行此操作,但我不知道如何在 Tomcat 上执行此操作。

0 投票
0 回答
819 浏览

java - 如何使用 Weblogic 控制台或 WLST 从 Weblogic 生成完整的线程转储?

我正在寻找一种从Weblogic控制台和/或WLST. 我无权访问Weblogic正在运行的服务器,因此我无法发送 QUIT 信号或使用该jstack实用程序。我知道您可以在Weblogic控制台中转储线程堆栈,或者WLST通过该方法使用相同的threadDump()方法,但这似乎不是一个完整的线程转储(不包含 JVM 中每个线程的信息,不显示线程锁定信息),并且它似乎无法被各种线程转储分析实用程序(tda、samurai 等)解析。有没有办法完成我想做的事情?