BiglySoftware / BiglyBT

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

"Illegal reflective access" warning #2378

Closed ferdnyc closed 2 years ago

ferdnyc commented 2 years ago

I recently had BiglyBT crash and dump core on me, this was the contents of the VNC server's console log at the time of the crash. I'm not sure the warning is related to the crash, but I figure it's worth reporting anyway. (Especially since the message asked so nicely!)

WARNING: Illegal reflective access by com.biglybt.core.util.spi.AENameServiceJava9 (file:/[PATH]/BiglyBT.jar) to field java.net.InetAddress.impl WARNING: Please consider reporting this to the maintainers of com.biglybt.core.util.spi.AENameServiceJava9 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release No shutdown tasks to do BiglyBT TERMINATED.

System block

Java 11.0.13 (64 bit) Red Hat, Inc. /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-2.fc35.x86_64

SWT v4942r22, gtk/3.24.30, zoom=100, dpi=96 Linux v5.15.6-200.fc35.x86_64, amd64 (64 bit) B2.9.0.1_B19/4 az3

parg commented 2 years ago

That warning isn't related to the crash, it is just the JVM developers bitching about something that used to be permitted and they decided to prohibit (the warning can be removed by following the instructions in https://github.com/BiglySoftware/BiglyBT/wiki/Java-Versions)

ferdnyc commented 2 years ago

@parg Aha! Thanks.

Hmm. That page got me wondering, though.

BiglyBT uses its own 'DNS Service Provider' proxy to prevent the attempted resolution of I2P and Tor addresses via DNS

...Which makes sense. But, I'm sure I'm not the only user who doesn't use I2P or Tor at all — in fact, I don't even have those plugins installed. In which case, it sounds like BiglyBT's DNS Service Provider is entirely unnecessary, really. No?

Given that it seems to rely on black-magic hackery [ :wink: ], do you think it would be a worthwhile undertaking (were someone to get ambitious) to make it optional functionality? Either by extracting it into its own plugin (that's required by the I2P and Tor helpers), or letting it stay in the core, but with a switch to control its activation? (Could be a user-facing one that's required to be enabled when I2P or Tor is in use, or a hidden one that's automatically enabled when either/both of the helper plugins is loaded.)

Or is it so deeply integrated into the code, that any such foolhardy aspirations will only end in tears?

parg commented 2 years ago

It intercepts attempts to resolve .i2p addresses, prevents them from hitting the "real" DNS system and leaking the fact that you are using an i2p address. It also prompts to install the I2P plugin if you hit a .i2p address and it is not yet installed. So it can't be part of the I2P plugin itself...

parg commented 2 years ago

oh, and it also does some stuff preventing local resolution of tracker host names when using a SOCKS proxy and forces remote host name resolution.

ferdnyc commented 2 years ago

Busy code! :grin: