https://bugs.kde.org/show_bug.cgi?id=379616
Bug ID: 379616
Summary: Deadlock when using SFTP plugin
Product: kdeconnect
Version: unspecified
Platform: Android
OS: Android 6.x
Status: UNCONFIRMED
Severity: major
Priority: NOR
Component: android-application
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
It looks like there might be a deadlock condition when stopping SSH server.
Here is threads log:
"Thread-16322@5477" prio=5 waiting
java.lang.Thread.State: WAITING
blocks Thread-16322@5477
at java.lang.Object.wait(Object.java:-1)
at java.lang.Thread.parkFor$(Thread.java:1220)
- locked <0x161c> (a java.lang.Object)
at sun.misc.Unsafe.park(Unsafe.java:299)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:970)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1278)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:203)
at org.apache.sshd.SshServer.stop(SshServer.java:383)
at org.apache.sshd.SshServer.stop(SshServer.java:363)
at
org.kde.kdeconnect.Plugins.SftpPlugin.SimpleSftpServer.stop(SimpleSftpServer.java:128)
at
org.kde.kdeconnect.Plugins.SftpPlugin.SftpPlugin.onDestroy(SftpPlugin.java:59)
at org.kde.kdeconnect.Device.removePlugin(Device.java:742)
- locked <0x160a> (a org.kde.kdeconnect.Device)
at
org.kde.kdeconnect.Device.reloadPluginsFromSettings(Device.java:791)
at org.kde.kdeconnect.Device.removeLink(Device.java:530)
at
org.kde.kdeconnect.BackgroundService$5.onConnectionLost(BackgroundService.java:204)
at
org.kde.kdeconnect.Backends.BaseLinkProvider.connectionLost(BaseLinkProvider.java:54)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.linkDisconnected(LanLinkProvider.java:89)
at
org.kde.kdeconnect.Backends.LanBackend.LanLink$1.run(LanLink.java:118)
at java.lang.Thread.run(Thread.java:818)
"pool-11-thread-1@5478" prio=5 waiting
java.lang.Thread.State: WAITING
blocks pool-11-thread-1@5478
at java.lang.Object.wait(Object.java:-1)
at java.lang.Thread.parkFor$(Thread.java:1220)
- locked <0x161d> (a java.lang.Object)
at sun.misc.Unsafe.park(Unsafe.java:299)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1078)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:806)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
"Thread-16332@5482" prio=5 waiting for monitor entry
java.lang.Thread.State: BLOCKED
waiting for Thread-16322@5477 to release lock on <0x160a> (a
org.kde.kdeconnect.Device)
at org.kde.kdeconnect.Device.addPlugin(Device.java:692)
at
org.kde.kdeconnect.Device.reloadPluginsFromSettings(Device.java:780)
at org.kde.kdeconnect.Device.addLink(Device.java:507)
at
org.kde.kdeconnect.BackgroundService$5.onConnectionReceived(BackgroundService.java:181)
at
org.kde.kdeconnect.Backends.BaseLinkProvider.connectionAccepted(BaseLinkProvider.java:48)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.addLink(LanLinkProvider.java:290)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.access$100(LanLinkProvider.java:62)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$3.handshakeCompleted(LanLinkProvider.java:235)
at
com.android.org.conscrypt.OpenSSLSocketImpl.notifyHandshakeCompletedListeners(OpenSSLSocketImpl.java:519)
at
com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:377)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$4.run(LanLinkProvider.java:255)
at java.lang.Thread.run(Thread.java:818)
"pool-1-thread-1@5470" prio=5 waiting
java.lang.Thread.State: WAITING
blocks pool-1-thread-1@5470
at java.lang.Object.wait(Object.java:-1)
at java.lang.Thread.parkFor$(Thread.java:1220)
- locked <0x161b> (a java.lang.Object)
at sun.misc.Unsafe.park(Unsafe.java:299)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1036)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
"FinalizerDaemon@5465" daemon prio=5 waiting
java.lang.Thread.State: WAITING
blocks FinalizerDaemon@5465
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:423)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
- locked <0x1572> (a java.lang.ref.ReferenceQueue)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
at java.lang.Thread.run(Thread.java:818)
"Thread-16233@5474" prio=5 runnable
java.lang.Thread.State: RUNNABLE
at libcore.io.Posix.accept(Posix.java:-1)
at libcore.io.BlockGuardOs.accept(BlockGuardOs.java:63)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:89)
at java.net.ServerSocket.implAccept(ServerSocket.java:217)
- locked <0x1583> (a java.net.ServerSocket)
at java.net.ServerSocket.accept(ServerSocket.java:141)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$6.run(LanLinkProvider.java:339)
at java.lang.Thread.run(Thread.java:818)
"Thread-16327@5479" prio=5 waiting
java.lang.Thread.State: WAITING
blocks Thread-16327@5479
at java.lang.Object.wait(Object.java:-1)
at
org.apache.sshd.common.channel.ChannelPipedInputStream.read(ChannelPipedInputStream.java:85)
- locked <0x161e> (a org.apache.sshd.common.util.Buffer)
at libcore.io.Streams.readFully(Streams.java:81)
at java.io.DataInputStream.readInt(DataInputStream.java:103)
at
org.apache.sshd.server.sftp.SftpSubsystem.run(SftpSubsystem.java:464)
at java.lang.Thread.run(Thread.java:818)
"Thread-16329@5480" prio=5 waiting
java.lang.Thread.State: WAITING
blocks Thread-16329@5480
at java.lang.Object.wait(Object.java:-1)
at
org.apache.sshd.common.channel.ChannelPipedInputStream.read(ChannelPipedInputStream.java:85)
- locked <0x161f> (a org.apache.sshd.common.util.Buffer)
at libcore.io.Streams.readFully(Streams.java:81)
at java.io.DataInputStream.readInt(DataInputStream.java:103)
at
org.apache.sshd.server.sftp.SftpSubsystem.run(SftpSubsystem.java:464)
at java.lang.Thread.run(Thread.java:818)
"main@5462" prio=5 runnable
java.lang.Thread.State: RUNNABLE
at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-1)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5458)
at java.lang.reflect.Method.invoke(Method.java:-1)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
"Thread-16333@5483" prio=5 waiting
java.lang.Thread.State: WAITING
blocks Thread-16333@5483
at java.lang.Object.wait(Object.java:-1)
at
com.android.org.conscrypt.OpenSSLSocketImpl.waitForHandshake(OpenSSLSocketImpl.java:636)
- locked <0x1620> (a java.lang.Object)
at
com.android.org.conscrypt.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:591)
at
org.kde.kdeconnect.Backends.LanBackend.LanLink$1.run(LanLink.java:96)
at java.lang.Thread.run(Thread.java:818)
"FinalizerWatchdogDaemon@5466" daemon prio=5 waiting
java.lang.Thread.State: WAITING
blocks FinalizerWatchdogDaemon@5466
at java.lang.Object.wait(Object.java:-1)
at
java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:255)
- locked <0x1574> (a java.lang.Daemons$FinalizerWatchdogDaemon)
at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:227)
at java.lang.Thread.run(Thread.java:818)
"ReferenceQueueDaemon@5464" daemon prio=5 waiting
java.lang.Thread.State: WAITING
blocks ReferenceQueueDaemon@5464
at java.lang.Object.wait(Object.java:-1)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:147)
- locked <0x1187> (a java.lang.Class)
at java.lang.Thread.run(Thread.java:818)
"HeapTaskDaemon@5467" daemon prio=5 waiting for monitor entry
java.lang.Thread.State: BLOCKED
at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java:-1)
at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:355)
at java.lang.Thread.run(Thread.java:818)
"Thread-16231@5472" prio=5 runnable
java.lang.Thread.State: RUNNABLE
at libcore.io.Posix.recvfromBytes(Posix.java:-1)
at libcore.io.Posix.recvfrom(Posix.java:189)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:250)
at libcore.io.IoBridge.recvfrom(IoBridge.java:549)
at
java.net.PlainDatagramSocketImpl.doRecv(PlainDatagramSocketImpl.java:163)
at
java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:171)
at java.net.DatagramSocket.receive(DatagramSocket.java:274)
- locked <0x1570> (a java.net.DatagramSocket)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$5.run(LanLinkProvider.java:317)
at java.lang.Thread.run(Thread.java:818)
"Thread-16232@5473" prio=5 runnable
java.lang.Thread.State: RUNNABLE
at libcore.io.Posix.recvfromBytes(Posix.java:-1)
at libcore.io.Posix.recvfrom(Posix.java:189)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:250)
at libcore.io.IoBridge.recvfrom(IoBridge.java:549)
at
java.net.PlainDatagramSocketImpl.doRecv(PlainDatagramSocketImpl.java:163)
at
java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:171)
at java.net.DatagramSocket.receive(DatagramSocket.java:274)
- locked <0x1586> (a java.net.DatagramSocket)
at
org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$5.run(LanLinkProvider.java:317)
at java.lang.Thread.run(Thread.java:818)
"Signal Catcher@5463" daemon prio=5 waiting
java.lang.Thread.State: WAITING
Incompatible thread state: thread not suspended
"Binder_1@5468" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
"Binder_2@5469" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
"RenderThread@5471" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
"hwuiTask1@5475" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
"hwuiTask2@5476" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
"Binder_3@5481" prio=5 runnable
java.lang.Thread.State: RUNNABLE
Incompatible thread state: thread not suspended
The application seems to be stuck in such state until I manually killed it.
--
You are receiving this mail because:
You are watching all bug changes.