-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Milestone
Description
I faced this issue writing code using web3j library which in turn uses okhttp and okio.
After application finished few daemon threads keep running. One of them is "Okio Watchdog".
Maven exec plugin makes warning about that, waits for 15 seconds and kills threads:
WARNING] thread Thread[RxSchedulerPurge-1,5,org.web3j.test.Web3jTestApp] was interrupted but is still alive after waiting at least 15000msecs
[WARNING] thread Thread[RxSchedulerPurge-1,5,org.web3j.test.Web3jTestApp] will linger despite being asked to die via interruption
[WARNING] thread Thread[RxCachedWorkerPoolEvictor-1,5,org.web3j.test.Web3jTestApp] will linger despite being asked to die via interruption
[WARNING] thread Thread[OkHttp ConnectionPool,5,org.web3j.test.Web3jTestApp] will linger despite being asked to die via interruption
[WARNING] thread Thread[Okio Watchdog,5,org.web3j.test.Web3jTestApp] will linger despite being asked to die via interruption
[WARNING] NOTE: 4 thread(s) did not finish despite being asked to via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied.
[WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=org.web3j.test.Web3jTestApp,maxpri=10]
java.lang.IllegalThreadStateException
Stacktrace:
"Okio Watchdog" #17 daemon prio=5 os_prio=0 tid=0x00007fc97c478000 nid=0x27dcd1 in Object.wait() [0x00007fc9b6618000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000076ec7bb58> (a java.lang.Class for okio.AsyncTimeout)
at okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:347)
at okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:312)
- locked <0x000000076ec7bb58> (a java.lang.Class for okio.AsyncTimeout)
Looking into okio code I see that okio.AsyncTimeout$Watchdog.run ignores InterruptedException.
Is it made intentionally? What is the reason?
Okio version: 1.13.0 (but I see the latest one is affected as well)
Original issue: LFDT-web3j/web3j#1085
Test app: LFDT-web3j/web3j#1085 (comment)
Metadata
Metadata
Assignees
Labels
No labels