slackapi / slackapi/java-slack-sdk
Completely disable thread pool initialization for metrics feature
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 602
- Forks
- 232
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 7
Description
I have a strange issue in a Lotus Domino with the Slack api
[014201:000008-00007F0319398700] 04/19/2021 22:15:53 Agent Manager: Agent printing: sending slack message
[014201:000008-00007F0319398700] 04/19/2021 22:15:54 Agent Manager: Agent printing: sendSlackChannelMessage>pChannel ->membership<-
[014201:000008-00007F0319398700] 04/19/2021 22:15:56 Agent Manager: Agent printing: WebhookResponse(code=200, message=OK, body=ok)
[014201:000009-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:e56980fe-worker-47"
[014201:000010-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:cfa21c1a-worker-45"
[014201:000011-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000012-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000015-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:fe1c9a21-worker-46"
[014201:000016-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000018-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000019-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000022-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000023-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000026-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000027-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000029-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000031-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000032-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000036-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000037-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000039-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000041-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000042-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000045-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000048-00007F03192D5700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
[014201:000049-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000052-00007F0319357700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
[014201:000053-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000056-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000058-00007F0319316700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
[014201:000007-00007F03198B4700] 04/19/2021 22:15:56 Agent Manager: Agent error: Error cleaning up agent threads
[014201:000060-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:cfa21c1a-worker-53"
[014201:000061-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:fe1c9a21-worker-52"
[014201:000062-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: Exception in thread "slack-api-client-metrics-memory:e56980fe-worker-54"
[014201:000063-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000064-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000067-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: java.lang.IllegalMonitorStateException
[014201:000068-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000069-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000072-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signal(AbstractQueuedSynchronizer.java:1950)
[014201:000074-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000077-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000078-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000081-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000082-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000085-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000086-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000089-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000090-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000092-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1114)
[014201:000094-00007F0319294700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
[014201:000097-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:820)
[014201:000098-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000101-00007F0319253700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
[014201:000103-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1085)
[014201:000105-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[014201:000107-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[014201:000109-00007F0319212700] 04/19/2021 22:15:56 Agent Manager: Agent error: at java.lang.Thread.run(Thread.java:812)
The Slack SDK version
<dependency>
<groupId>com.slack.api</groupId>
<artifactId>slack-api-client</artifactId>
<version>1.6.2</version>
</dependency>
Java Runtime version
[010392:000002-00007FF303406740] 04/21/2021 10:00:57 Java runtime version: 8.0.5.21 - pxa6480sr5fp21-20180830_01(SR5 FP21)
[010392:000002-00007FF303406740] 04/21/2021 10:00:57 JVM version: JRE 1.8.0 Linux amd64-64-Bit 20180829_395745 (JIT enabled, AOT enabled) OpenJ9 - e82188c OMR - eeaa30e IBM - 98805ca
OS info
Linux 46f0066d17e5 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Steps to reproduce:
public class SlackActions {
public String sendSlackChannelMessage(String pChannel,String textBody) {
String returnMsg = "OK, sent";
String slackChannelURL = "...";
Payload payload = Payload.builder().text(textBody).build();
Slack slack = Slack.getInstance();
try {
WebhookResponse response = slack.send(slackChannelURL, payload);
System.out.println(response); // WebhookResponse(code=200, message=OK, body=ok)
} catch (IOException e) {
System.out.println( "Work/sendSlackChannelMessage>Something bad just happened." );
System.out.println( "Work/sendSlackChannelMessage>" + e );
e.printStackTrace();
returnMsg = e.toString();
}
return returnMsg;
}
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
SlackActions slackActions = new SlackActions();
slackResponse = slackActions.sendSlackChannelMessage("membership",SMSTextBody);
} catch (Exception e) {
System.out.println("exception " + e);
}
}
Expected result:
clean exit
Actual result:
threads cleanup error, logs are in top of this message
error thrown even if I comment out block with slack.send call and just leave Slack.getInstance()
Did threads debug (debugger code here) before agent exit and here is the output:
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: Dump the current threadgroup:
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: ThreadGroup UTG: JavaAgent, objid = 1743864694
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: subgroups = 3
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: total threads = 4
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: THREADNAME, THREADID, THREADGROUP
[031267:000113-00007F5A59B2C700] 04/21/2021 00:10:31 Agent Manager: Agent printing: AgentThread: JavaAgent, 563351903, UTG: JavaAgent
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with slack-api-client 1.6.2 on Java 8 OpenJ9, comparing Slack.getInstance() alone with a call to slack.send. Inspect the metrics-memory worker threads and the agent shutdown output shown in the report. Done means the metrics thread pool does not initialize or cause cleanup errors, while the Slack call still behaves as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100