hierynomus / hierynomus/sshj

Reader threads keep prevent programs from exiting

Open
#386 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.7k
Forks
620
Avg merge
3d 23h
Merged PRs (30d)
11

Description

The client requires explicit call of `close()` before a program finalization. Otherwise the application hangs up with these threads:

```
"sftp reader" #13 prio=5 os_prio=0 tid=0x00007feedc730ea0 nid=0x2517 in Object.wait() [0x00007fee9a8ba000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000083c09c70> (a net.schmizz.sshj.common.Buffer$PlainBuffer)
at java.lang.Object.wait(Object.java:502)
at net.schmizz.sshj.connection.channel.ChannelInputStream.read(ChannelInputStream.java:103)
- locked <0x0000000083c09c70> (a net.schmizz.sshj.common.Buffer$PlainBuffer)
at net.schmizz.sshj.sftp.PacketReader.readIntoBuffer(PacketReader.java:51)
at net.schmizz.sshj.sftp.PacketReader.getPacketLength(PacketReader.java:59)
at net.schmizz.sshj.sftp.PacketReader.readPacket(PacketReader.java:75)
at net.schmizz.sshj.sftp.PacketReader.run(PacketReader.java:87)

"reader" #11 prio=5 os_prio=0 tid=0x00007fb88474fc20 nid=0x25ee runnable [0x00007fb8512b5000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at net.schmizz.sshj.transport.Reader.run(Reader.java:49)
```

Taking into account that they are reader threads would be great to daemonize them or something like that to prevent the unintuitive behavior.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.