BiglySoftware / BiglyBT

Feature-filled Bittorrent client based on the Azureus open source project
https://www.biglybt.com
GNU General Public License v2.0
1.59k stars 152 forks source link

BiglyBT hangs network upon closing #2508

Closed ddbelina closed 9 months ago

ddbelina commented 2 years ago

MacOS - Monterey - 12.3 (and all versions of 12) BiglyBT 3.0.0 Java 1.8.0_202 (64 bit) Oracle Corporation /Applications/BiglyBT/.install4j/jre.bundle/Contents/Home/jre

SWT v4942r22, cocoa, zoom=100, dpi=72 Mac OS X v10.16, x86_64 (64 bit) B3.0.0.0/4 az3

When quitting, application displays progress bar for shutting down but when the bar is closed, the network is frozen and even a terminal session of ifconfig running as administrator (sudo) hangs until a restart is done.

parg commented 2 years ago

Unfortunately I can't update my old Mac to Monterey so can't test. Not had a report from any other users of this issue - does it happen everytime?

rottegift commented 2 years ago

@parg : I have seen this on Monterey in 12.3 too, and reported it to apple. It feels like an IOKit driver bug involving resource starvation between the PHY and the kernel for reasons that will become clearer below (but also note the point about large numbers of localhost connections).

It can be triggered without too much work, assuming one has a bunch of busy torrents on hand.

The important factor is the number of PCBs as reported by

sysctl -h net.inet.tcp.pcbcount net.inet.tcp.tw_pcbcount net.inet.tcp.cubic_sockets net.inet.udp.pcbcount

Once that goes higher than about 1600, Monterey is at risk of not being able to send or receive traffic (via e.g. ping, nc, or other connections) on the biglybt-bound interface. This is especially noticeable on en0, and especially the built-in ethernet, on intel late 2018 mac minis, but not on either exclusively.

Moreover, once the PCB count is higher than about that threshold, quitting biglybt normally causes the networking stack to hang for at least several minutes (and risks the entire system hanging). During the shutdown, the output of "netstat -mmm" reports very high (many tens of thousands) and growing counts of mbufs in use.

Things that make it worse, almost certainly by driving BiglyBT to open more sockets: I2P plugin (I2P external router on same host generates fewer connections, so is less likely to trigger); use of an I2P tracker (this generates lots of connections between BiglyBT and itself on localhost 127.0.0.1, according to lsof -i) on I2P-exposed torrents; exposing all your torrents to I2P; maybe TOR (e.g. with lots of metadata downloads pending?); preferring \muTP/UDP over TCP connections; reasonably high speed networking with auto adjustment in Options : Transfer; which leads to a high Max connections globally; Options : Queue : high or unlimited max simultaneous downloads with min simultaneous downloads same as max simultaneous downloads; high max active torrents -- high being 100 or more. Options : Queue : Downloading : choose Speed or ETA download prioritization. A high choice in Options : Tracker : Client : maximum concurrent announce tasks (cf I2P trackers above). If using an external I2P router, then allowing that to have a high i2np.ntcp.maxConnections and a high router.maxParticipatingTunnels with a fairly high bandwidth also creates lots more PCBs for the system, and generally more localhost client connections with BiglyBT.

(Simultaneously running with qBittorrrent, for example, also hurries along system instabilities, but it is very hard to provoke the instabilities with just qBittorrent built with QBT_USES_LIBTORRENT2 and the appropriate libtorrent; also I2P on its own without BiglyBT is not able to trigger this apparent resource exhaustion problem reliably).

Useful things to stare at:

lsof -n -p `pgrep JavaApplicat` | egrep 'TCP|UDP' | wc -l

This can climb above a thousand fairly easily making the above choices.

netstat -nl | egrep -i 'tcp|udp' |wc -l

Again, watching this to climb around 2000 or higher is a good predictor of system instability (network interfaces ceasing to work, a network hang on biglybt exit, or even a system hang).

Serverperfmode seems to help a little, but I haven't instrumented this. At boot time it changes a few things that may be relevant like net.inet.tcp.tcbhashsize. Disabling tso (net.inet.tcp.tso=0 works right away according to UTSL; it sets the tcp_do_tso flag in bsd/netinet/tcp_output.c which is consulted regularly even on already-active connections) does not help. Avoiding ethernet flow control and energy efficient ethernet does help somewhat, but not conclusively. Deliberately engineering ethernet congestion, however, appears to trigger an avalanche of mbuf consumption, leading to system instability once the number of PCBs is high.

Interestingly, doing this:

zsh -c 'ulimit -Hn 1500; ulimit -n 1500; /Applications/BiglyBT/BiglyBT.app/Contents/MacOS/JavaApplicationStub'

will tend to make BiglyBT very unhappy (especially if one takes the 1500 lower, or alternatively makes heavy use of the I2P plugin), as BiglyBT does not react to the an rlimit-imposed descriptor shortage by deciding first to reduce the number of network descriptors before throwing file I/O errors.

I have not probed this issue with a PHY definitively excluded, which could be done using tun interfaces, or with Monterey 12.3 as a VM guest on a suitably different or carefully passthrough-isolated platform. I haven't written a standalone test, because it is probably hard to write as good a networking stress-tester as BiglyBT (it's also good at stress-testing heavy random filesystem I/O :-) ).

Finally, this seems to be JDK-independent : the choice of temurin17, openjdk 17 & 18, and corretto 18 doesn't matter.

Things BiglyBT could do even if this turns out to be "only" a 12.3 bug that is fixed soon probably mostly involves trying to keep the number of open network connections (including UTP and UDP-tracker ones and the like) low, perhaps below some user-configurable absolute cap. Behaving well in the presence of low hard rlimits would be good too.

macOS 12.3 BiglyBT users meanwhile are probably best off doing what they can tolerate to minimize the number of connections BiglyBT opens, even at the cost of performance or opportunities to reach rarely-available sources.

rottegift commented 2 years ago

Also, an early symptom is a rise in ping times even to hosts on the same (wired) LAN, which go from fractions of miliseconds to tens of milliseconds or worse. The delay is not just pings; other network traffic of all types sees it. This symptom is therefore almost certainly also captured in the Statistics : Transfers (IIRC it was, but I can't test that again before hitting enter "Comment" on this) graphs. So maybe one could handle this problem dynamically : if probe RTTs start to rise beyond some threshold, maybe that's a good time to start closing connections, rather than keeping them open but idle (or choked to some low bandwidth).

parg commented 2 years ago

Trying to respond sensibly to RTTs is something I've wasted too many hours of my life on over the years (e.g. various "auto-speed" algorithms")

rottegift commented 2 years ago

I completely understand your point about hours and hours : https://github.com/openzfsonosx/openzfs/blob/9d87e1e5b9b53332ced72f7d2801e610cf73c6af/module/os/macos/spl/spl-kmem.c#L4479 . I mostly half-suggested an approach that depends on measured RTTs because at least a couple are already found in BiglyBT (and uTP, and TCP) and because RTTs climbing are a symptom in this particular macos issue arising from too many open sockets.

(Forgive me for not knowing how to be Windows-inclusive below).

A single option that sets a hard cap on the total number of sockets BiglyBT will have open at any time (for any purpose, even transiently) is perhaps more generally useful. That does leave open the question of what to do as the cap is approached and reached, however.

I guess you could just make the option actually call setrlimit, and deal with any EMFILE and ENFILE exceptions with appropriate error/wait-and-retry/just-wait logic. That would also help the case where BiglyBT is started with an externally imposed hard resource limit.

rottegift commented 2 years ago

At an accidental exit of BiglyBT that hanged the network, here's some of the tail end of the logs I was able to nab.

The "[09:56:55] [stderr] check this out: lots of listeners (168) !" where the number grows and can get high might be of interest.

Maybe spreading out the thundering herd of socket shutdowns might help?

BiglyBT tends to generate a very large number of TIME_WAIT state TCP connections, and Monterey appears to have added some new handling to that state (new sysctls net.inet.tcp.fin_timeout and net.inet.tcp.tw_pcbcount for instance).

[09:55:42] Thread state: elapsed=10000,cpu=4836,max=SWT Thread(968/9%),mem:max=1738240,tot=1738240,free=788063
[09:55:52] Thread state: elapsed=10000,cpu=9966,max=SWT Thread(5618/56%),mem:max=1739776,tot=1739776,free=780549
[09:55:52]     org.eclipse.swt.internal.cocoa.OS.objc_msgSend_bool(Native Method), org.eclipse.swt.internal.cocoa.NSRunLoop.runMode(NSRunLoop.java:40), org.eclipse.swt.widgets.Display.sleep(Display.java:5007), com.biglybt.ui.swt.mainwindow.SWTThread.<init>(SWTThread.java:439), com.biglybt.ui.swt.mainwindow.SWTThread.createInstance(SWTThread.java:58), com.biglybt.ui.swt.Initializer.<init>(Initializer.java:181), com.biglybt.ui.swt.UI.takeMainThread(UI.java:162), com.biglybt.ui.Main.main(Main.java:247), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), com.biglybt.launcher.Launcher$1.run(Launcher.java:48), com.biglybt.launcher.Launcher.launch(Launcher.java:65), com.biglybt.launcher.Launcher.checkAndLaunch(Launcher.java:83), com.biglybt.ui.Main.main(Main.java:80), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:84), com.install4j.runtime.launcher.MacLauncher.main(MacLauncher.java:52)
[09:56:02] Thread state: elapsed=10002,cpu=5723,max=Tracker Announce Public Timer 310382(963/9%),mem:max=1732096,tot=1732096,free=650046
[09:56:12] Thread state: elapsed=10001,cpu=7030,max=SWT Thread(3275/32%),mem:max=1741824,tot=1741824,free=795051
[09:56:12]     org.eclipse.swt.internal.cocoa.OS.objc_msgSend_bool(Native Method), org.eclipse.swt.internal.cocoa.NSRunLoop.runMode(NSRunLoop.java:40), org.eclipse.swt.widgets.Display.sleep(Display.java:5007), com.biglybt.ui.swt.mainwindow.SWTThread.<init>(SWTThread.java:439), com.biglybt.ui.swt.mainwindow.SWTThread.createInstance(SWTThread.java:58), com.biglybt.ui.swt.Initializer.<init>(Initializer.java:181), com.biglybt.ui.swt.UI.takeMainThread(UI.java:162), com.biglybt.ui.Main.main(Main.java:247), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), com.biglybt.launcher.Launcher$1.run(Launcher.java:48), com.biglybt.launcher.Launcher.launch(Launcher.java:65), com.biglybt.launcher.Launcher.checkAndLaunch(Launcher.java:83), com.biglybt.ui.Main.main(Main.java:80), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:84), com.install4j.runtime.launcher.MacLauncher.main(MacLauncher.java:52)
[09:56:22] Thread state: elapsed=10002,cpu=9361,max=MLDHT:disp(4522/45%),mem:max=1737216,tot=1737216,free=1014020
[09:56:22]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:56:32] Thread state: elapsed=10004,cpu=11160,max=MLDHT:disp(9547/95%),mem:max=1737216,tot=1737216,free=989996
[09:56:32]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:56:42] Thread state: elapsed=10001,cpu=11319,max=MLDHT:disp(9606/96%),mem:max=1737216,tot=1737216,free=910506
[09:56:42]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:56:52] Thread state: elapsed=10000,cpu=12881,max=MLDHT:disp(10012/100%),mem:max=1740800,tot=1740800,free=647792
[09:56:52]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:02] Thread state: elapsed=10053,cpu=13090,max=MLDHT:disp(10084/100%),mem:max=1732608,tot=1732608,free=811491
[09:57:02]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:12] Thread state: elapsed=10003,cpu=10956,max=MLDHT:disp(10000/100%),mem:max=1742336,tot=1742336,free=1225568
[09:57:12]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:22] Thread state: elapsed=10000,cpu=11036,max=MLDHT:disp(9995/99%),mem:max=1742336,tot=1742336,free=1211396
[09:57:22]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:32] Thread state: elapsed=10005,cpu=10992,max=MLDHT:disp(9999/99%),mem:max=1742336,tot=1742336,free=1194024
[09:57:32]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:42] Thread state: elapsed=10000,cpu=10305,max=MLDHT:disp(9331/93%),mem:max=1742336,tot=1742336,free=1174151
[09:57:42]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:57:52] Thread state: elapsed=10000,cpu=11000,max=MLDHT:disp(6589/65%),mem:max=1742336,tot=1742336,free=1166565
[09:57:52]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$643/1508907258.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:55:36] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 700, socket: open = true, connected = true
[09:55:36] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:38] [stderr] DEBUG::Fri Apr 15 09:55:38 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:38] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 400, socket: open = true, connected = true
[09:55:38] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:39] [stderr] DEBUG::Fri Apr 15 09:55:39 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:39] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 300, socket: open = true, connected = true
[09:55:39] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:47] [stderr] DEBUG::Fri Apr 15 09:55:47 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:47] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 800, socket: open = true, connected = true
[09:55:47] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:50] [stderr] DEBUG::Fri Apr 15 09:55:50 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:50] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 500, socket: open = true, connected = true
[09:55:50] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:50] [stderr] DEBUG::Fri Apr 15 09:55:50 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:50] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 400, socket: open = true, connected = true
[09:55:50] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:55] [stderr] DEBUG::Fri Apr 15 09:55:55 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:55] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 10, socket: open = true, connected = true
[09:55:55] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:55:58] [stderr] DEBUG::Fri Apr 15 09:55:58 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:55:58] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 900, socket: open = true, connected = true
[09:55:58] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:00] [stderr] DEBUG::Fri Apr 15 09:56:00 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:00] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 600, socket: open = true, connected = true
[09:56:00] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:01] [stderr] DEBUG::Fri Apr 15 09:56:01 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:01] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 500, socket: open = true, connected = true
[09:56:01] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:05] [stderr] DEBUG::Fri Apr 15 09:56:05 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:05] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 100, socket: open = true, connected = true
[09:56:05] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:09] [stderr] DEBUG::Fri Apr 15 09:56:09 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:09] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 1000, socket: open = true, connected = true
[09:56:09] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:09] [stderr] DEBUG::Fri Apr 15 09:56:09 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1015:
[09:56:09] [stderr]   No progress for 1000, closing connection
[09:56:09] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:11] [stderr] DEBUG::Fri Apr 15 09:56:11 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:11] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 700, socket: open = true, connected = true
[09:56:11] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:11] [stderr] DEBUG::Fri Apr 15 09:56:11 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:11] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 600, socket: open = true, connected = true
[09:56:11] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:15] [stderr] DEBUG::Fri Apr 15 09:56:15 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:15] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 200, socket: open = true, connected = true
[09:56:15] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:18] [stderr] java.lang.Exception: SOCKS proxy destroyed
[09:56:18] [stderr]     at org.parg.azureus.plugins.networks.i2p.router.I2PHelperSocksProxy.getSocketManager(I2PHelperSocksProxy.java:261)
[09:56:18] [stderr]     at org.parg.azureus.plugins.networks.i2p.router.I2PHelperSocksProxy.connectToAddress(I2PHelperSocksProxy.java:293)
[09:56:18] [stderr]     at org.parg.azureus.plugins.networks.i2p.router.I2PHelperSocksProxy.access$8(I2PHelperSocksProxy.java:283)
[09:56:18] [stderr]     at org.parg.azureus.plugins.networks.i2p.router.I2PHelperSocksProxy$SOCKSProxyConnection$1.runSupport(I2PHelperSocksProxy.java:568)
[09:56:18] [stderr]     at com.biglybt.core.util.AERunnable.run(AERunnable.java:36)
[09:56:18] [stderr]     at com.biglybt.core.util.ThreadPool.runIt(ThreadPool.java:336)
[09:56:18] [stderr]     at com.biglybt.core.util.ThreadPool$threadPoolWorker.run(ThreadPool.java:742)
[09:56:18] [stderr]     at com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:317)
[09:56:22] [stderr] DEBUG::Fri Apr 15 09:56:22 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:22] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 800, socket: open = true, connected = true
[09:56:22] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:22] [stderr] DEBUG::Fri Apr 15 09:56:22 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:22] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 700, socket: open = true, connected = true
[09:56:22] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:28] [stderr] DEBUG::Fri Apr 15 09:56:28 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[09:56:28] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 300, socket: open = true, connected = true
[09:56:28] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:317)
[09:56:30] [stderr] DEBUG::Fri Apr 15 09:56:30 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:30] [stderr]   check this out: lots of listeners (91) !
[09:56:30] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), updateActive (GlobalManagerImpl.java:5032), perform (GlobalManagerImpl.java:4846), perform (TimerEventPeriodic.java:104), runSupport (TimerEvent.java:133), runSupport (Timer.java:330), AERunnable.run, ThreadPool.runIt
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::lbms.plugins.mldht.azureus.MlDHTPlugin::stopDHT::722:
[09:56:47] [stderr]   Timeout waiting for DHT to stop
[09:56:47] [stderr]     closedownInitiated (MlDHTPlugin.java:534), closedownInitiated (PluginInterfaceImpl.java:570), destroyInitiated (PluginInitializer.java:2193), dispatch (GlobalManagerImpl.java:134), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatchLoop (ListenerManager.java:559), run (ListenerManager.java:156), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (168) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4917), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (169) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4946), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (74) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4917), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (75) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4946), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (103) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4917), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:47] [stderr] DEBUG::Fri Apr 15 09:56:47 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:47] [stderr]   check this out: lots of listeners (104) !
[09:56:47] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4946), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:48] DEBUG::Fri Apr 15 09:56:48 BST 2022  Skeleton builds: 6000
[09:56:55] [stderr] DEBUG::Fri Apr 15 09:56:55 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:55] [stderr]   check this out: lots of listeners (91) !
[09:56:55] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4917), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:56:55] [stderr] DEBUG::Fri Apr 15 09:56:55 BST 2022::com.biglybt.core.util.ListenerManager::addListener::135:
[09:56:55] [stderr]   check this out: lots of listeners (92) !
[09:56:55] [stderr]     addPeerListener (DownloadManagerImpl.java:4182), setRateLimit (TagDownloadWithState.java:978), access$6 (TagDownloadWithState.java:966), taggableAdded (TagDownloadWithState.java:288), dispatch (TagBase.java:129), dispatch (TagBase.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:496), dispatch (ListenerManager.java:301), dispatch (ListenerManager.java:232), addTaggable (TagBase.java:2177), addTaggable (TagWithState.java:328), addTaggable (TagDownloadWithState.java:568), stateChanged (GlobalManagerImpl.java:4946), dispatch (DownloadManagerImpl.java:164), dispatch (DownloadManagerImpl.java:1), doDispatch (ListenerManager.java:438), dispatchInternal (ListenerManager.java:520), dispatchLoop (ListenerManager.java:563), run (ListenerManager.java:366), run (AEThread2.java:317)
[09:57:39] [stderr] DEBUG::Fri Apr 15 09:57:39 BST 2022::com.biglybt.core.util.NetUtils$1::run::121:
[09:57:39] [stderr]   Network interface enumeration took 25891: increased refresh frequency to 900000ms
[09:57:39] [stderr]     getNetworkInterfaces (NetUtils.java:232), checkNetworkInterfaces (NetworkAdminImpl.java:490), perform (NetworkAdminImpl.java:265), perform (TimerEventPeriodic.java:104), runSupport (TimerEvent.java:133), runSupport (Timer.java:330), AERunnable.run, ThreadPool.runIt
rottegift commented 2 years ago

The instability-while-running problem seems to be related to IPv6 temporary addresses in macOS Monterey. Turning off IPv6 as much as possible seems to lead to a stable system while using BiglyBT heavily; reverting to multiple interfaces configured with globally-routable IPv6 addresses (including temporary addresses) brought back instability. Binding to a single IPv6 address is a fairly good workaround though, if one wants to have BiglyBT use IPv6.

In the end I have an acceptable (to me) way to avoid the system hanging under BiglyBT load:

$ sudo ifconfig en0 inet6 aaaa:bbbb:cccc::xxxx add alias
$ /Applications/BiglyBT/BiglyBT.app/Contents/MacOS/JavaApplicationStub

and then in BiglyBT > Preferences > Connection > Advanced Network Settings > Bind to local IP address or interface enter "AAA.BBB.CCC.DDD;aaaa:bbbb:cccc:xxxx"

aaaa:bbbb:cccc::xxxx is a globally-routable IPv6 address suitable for en0. AAA.BBB..CCC.DDD is an IPv4 address on en0.

Enabling or disabling Advanced Network Settings > Enable Ipv6 support > Check for firewall issues when there are multiple global IPv6 addresses made no difference when binding to en0 (not specifying a single IPv6 address) or not binding to anything (no warnings were raised, cf. https://github.com/BiglySoftware/BiglyBT/wiki/Networking even though en0 and en1 both had "secured" and "temporary" and "deprecated" IPv6 addresses visble both via ifconfig with all these addresses also appearing near the top of Advanced Network Settings).

Other approaches would be to use the "secured" address instead of an alias, to turn off IPv6 everywhere possible in BiglyBT. It may also be reasonable for some users to try

$ sudo sysctl -w net.inet6.ip6.use_tempaddr=0 net.inet6.ip6.prefer_tempaddr=0

which will affect everything on the system, rather than just BiglyBT.

This is all a bit CLI-ish, especially since the list near the top of Advanced Network Settings doesn't show whether the addresses are temporary or not. Neither does the list in System Preferences > Network > choose service > Advanced > TCP/IP > Configure IPv6 > Automatically. Even the System Information gui (Apple > About this Mac > Overview > System Report... > Network) doesn't say which addresses are temporary. So at the very least a user is likely to have to run "ifconfig en0" when choosing which single IPv6 address to bind to if one is not adding an alias.

Unfortunately, there is still a system-wide network drop-out (it even causes ping -c 127.0.0.1 to drop packets or report RTTs in the tens of seconds) when exiting BiglyBT, but it lasts (much) less time (seconds rather than many minutes, and so far no system hang requiring a forced restart) with the workarounds above.

rottegift commented 2 years ago

Small update. This is still not fixed in macOS 12.4, and spindump -nothrottle (shared with Apple) seems to show locking problems in Apple socket handling code.

However, this debug output during a hanging BiglyBT exit might be interesting to @parg anyway (quit was a few seconds before the network hang at 03:29:02) :

[03:28:14] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 10, socket: open = true, connected = true
[03:28:14] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:334)
[03:29:03] [stderr] DEBUG::Fri May 20 03:29:03 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[03:29:03] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 10, socket: open = true, connected = true
[03:29:03] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:334)
[03:29:25] DEBUG::Fri May 20 03:29:25 BST 2022  Skeleton builds: 34000
[03:29:31] [stderr] DEBUG::Fri May 20 03:29:31 BST 2022::lbms.plugins.mldht.azureus.MlDHTPlugin::stopDHT::722:
[03:29:31] [stderr]   Timeout waiting for DHT to stop
[03:29:31] [stderr]     closedownInitiated (MlDHTPlugin.java:534), closedownInitiated (PluginInterfaceImpl.java:570), destroyInitiated (PluginInitializer.java:2193), dispatch (GlobalManagerImpl.java:134), doDispatch (ListenerManager.java:413), dispatchInternal (ListenerManager.java:471), dispatchLoop (ListenerManager.java:534), run (ListenerManager.java:156), run (AEThread2.java:334)
[03:30:39] [stderr] DEBUG::Fri May 20 03:30:39 BST 2022::com.biglybt.core.networkmanager.impl.tcp.VirtualChannelSelectorImpl::select::1004:
[03:30:39] [stderr]   VirtualChannelSelector: No progress for op 1: listener = class org.parg.azureus.plugins.networks.i2p.I2PHelperSocketForwarder$ForwardingActivity$1, count = 100, socket: open = true, connected = true
[03:30:39] [stderr]     select (VirtualChannelSelector.java:143), selectLoop (I2PHelperSocketForwarder.java:196), run (I2PHelperSocketForwarder.java:99), run (AEThread2.java:334)
[03:30:41] [net] PRUDPPacketHandler: send to /85.173.133.155:60411 failed: No route to host (sendto failed)
[03:30:41] [net] PRUDPPacketHandler: send to /114.108.219.164:48611 failed: No route to host (sendto failed)
[03:30:42] [net] PRUDPPacketHandler: send to /114.108.219.164:48611 failed: No route to host (sendto failed)
[03:30:42] [stderr] DEBUG::Fri May 20 03:30:42 BST 2022::com.vuze.plugins.azmsgsync.MsgSyncPlugin::peekMessageHandler::887:

(whereupon it spent so long doing java garbage collection that i terminated the program)

The last few lines in thread_2.log:

[03:27:35] Thread state: elapsed=15999,cpu=912,max=Global Status Checker(194/1%),mem:max=3768320,tot=3768320,free=443026
[03:27:36] Thread state: elapsed=13117,cpu=736,max=SWT Thread(132/1%),mem:max=3768320,tot=3768320,free=388787
[03:28:13] Thread state: elapsed=11841,cpu=1053,max=SWT Thread(227/2%),mem:max=3768320,tot=3768320,free=420136
[03:28:13] Thread state: elapsed=10343,cpu=831,max=SWT Thread(132/1%),mem:max=3768320,tot=3768320,free=437718
[03:28:41] Thread state: elapsed=14533,cpu=1979,max=AEThread2:parked[26](507/5%),mem:max=3768320,tot=3768320,free=461111
[03:28:42] Thread state: elapsed=12525,cpu=-3128,max=Global Status Checker(236/2%),mem:max=3768320,tot=3768320,free=478883
[03:29:12] Thread state: elapsed=17079,cpu=-63949,max=MLDHT:disp(16512/165%),mem:max=3768320,tot=3768320,free=433319
[03:29:12]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:29:25] Thread state: elapsed=11342,cpu=16941,max=MLDHT:disp(11292/112%),mem:max=3768320,tot=3768320,free=442686
[03:29:25]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:29:32] Thread state: elapsed=14058,cpu=16184,max=MLDHT:disp(14005/140%),mem:max=3768320,tot=3768320,free=419285
[03:29:32]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:29:32] Thread state: elapsed=11707,cpu=11225,max=MLDHT:disp(11653/116%),mem:max=3768320,tot=3768320,free=420637
[03:29:32]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:03] Thread state: elapsed=12995,cpu=13521,max=MLDHT:disp(12978/129%),mem:max=3768320,tot=3768320,free=429498
[03:30:03]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:03] Thread state: elapsed=10754,cpu=11175,max=MLDHT:disp(10688/106%),mem:max=3768320,tot=3768320,free=422867
[03:30:03]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:26] Thread state: elapsed=11442,cpu=12655,max=MLDHT:disp(11360/113%),mem:max=3768320,tot=3768320,free=439843
[03:30:26]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:41] Thread state: elapsed=13611,cpu=15912,max=MLDHT:disp(13521/135%),mem:max=3768320,tot=3768320,free=447389
[03:30:41]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:41] Thread state: elapsed=11433,cpu=12734,max=MLDHT:disp(11391/113%),mem:max=3768320,tot=3768320,free=304427
[03:30:41]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:41] Thread state: elapsed=10366,cpu=10623,max=MLDHT:disp(10319/103%),mem:max=3768320,tot=3768320,free=248325
[03:30:41]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:42] Thread state: elapsed=14627,cpu=14731,max=MLDHT:disp(14532/145%),mem:max=3768320,tot=3768320,free=234996
[03:30:42]     sun.nio.ch.FileDispatcherImpl.preClose0(Native Method), sun.nio.ch.DatagramDispatcher.preClose(DatagramDispatcher.java:63), sun.nio.ch.DatagramChannelImpl.implCloseSelectableChannel(DatagramChannelImpl.java:1008), java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234), java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115), lbms.plugins.mldht.kad.RPCServer$SocketHandler.close(RPCServer.java:849), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:201), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
[03:30:42] Thread state: elapsed=10139,cpu=15323,max=MLDHT:disp(15212/152%),mem:max=3768320,tot=3768320,free=234149
[03:30:42]     java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1106), java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097), java.lang.invoke.MethodType$ConcurrentWeakInternSet.expungeStaleElements(MethodType.java:1265), java.lang.invoke.MethodType$ConcurrentWeakInternSet.get(MethodType.java:1224), java.lang.invoke.MethodType.makeImpl(MethodType.java:301), java.lang.invoke.MethodHandleNatives.findMethodHandleType(MethodHandleNatives.java:349), the8472.utils.CowSet.remove(CowSet.java:81), lbms.plugins.mldht.kad.Node.removeId(Node.java:611), lbms.plugins.mldht.kad.RPCServer.stop(RPCServer.java:206), lbms.plugins.mldht.kad.RPCServerManager$$Lambda$809/788410048.accept(Unknown Source), java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184), java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382), java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481), java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291), java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731), java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289), java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401), java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734), java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160), java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174), java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233), java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418), java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583), lbms.plugins.mldht.kad.RPCServerManager.destroy(RPCServerManager.java:219), lbms.plugins.mldht.kad.DHT.stop(DHT.java:868), lbms.plugins.mldht.azureus.MlDHTPlugin$10.runSupport(MlDHTPlugin.java:701), com.biglybt.core.util.AsyncDispatcher$1.run(AsyncDispatcher.java:168), com.biglybt.core.util.AEThread2$threadWrapper.run(AEThread2.java:334)
parg commented 2 years ago

Looks like the JVM/process was looping somewhere in native code attempting to close a UDP server socket

ddbelina commented 2 years ago
Looks like the JVM/process was looping somewhere in native code attempting to close a UDP server socket

--
Reply to this email directly or view it on GitHub:
https://github.com/BiglySoftware/BiglyBT/issues/2508#issuecomment-1132583077
You are receiving this because you authored the thread.

Message ID: ***@***.***>
parg commented 2 years ago

?

ddbelina commented 2 years ago
?

--
Reply to this email directly or view it on GitHub:
https://github.com/BiglySoftware/BiglyBT/issues/2508#issuecomment-1172838360
You are receiving this because you authored the thread.

Message ID: ***@***.***>