Comments (21)
Beta versions do automatically enable I2P - disable it in the plugin settings (don't uninstall it, it will re-install)
"Unable to make field private static transient java.net.InetAddress$NameService" is a known error, the latest unix launch script has the required "add opens" command line parameters to remove it
"A terminally deprecated method in java.lang.System has been called" etc is a known issue.
I very much doubt that there is actually 1Mib of all "0 bytes"
from biglybt.
OK. Did another experiment, split the redirects of stdout and stderr:
- The initial zero bytes seem to be part of the stderr output
- The non line separated messages reported before are part of some huge array dump to stdout:
DEBUG::Wed Apr 17 11:52:36 CEST 2024 50 listeners added for DM:PeerListenDispatcher
addPeerListener (DownloadManagerImpl.java:4418), addPeerListener (DownloadManagerImpl.java:4406), <init> (GlobalManagerFileMerger.java:1094), syncFileSets (GlobalManagerFileMerger.java:777), runSupport (GlobalManagerFileMerger.java:259), AERunnable.run, perform (DelayedEvent.java:48), runSupport (TimerEvent.java:133), runSupport (Timer.java:330), AERunna
ble.run, ThreadPool.runIt
[com.biglybt.core.global.impl.GlobalManagerStatsImpl$1$1@643678a8, com.biglybt.core.tag.impl.TagDownloadWithState$3@3810bdb0, com.biglybt.core.tag.impl.TagDownloadWithState$3@764d279a, com.biglybt.core.tag.impl.TagDownloadWithState$3@648cc73d, com.biglybt.core.tag.impl.TagDownloadWithState$3@33a8103c, com.biglybt.core.global.impl.GlobalManagerFileMerger$
SameSizeFiles$1@e68d6c4, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@11065164, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@1331c956, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@606b02fc, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@28fd36c3, com.biglybt.core.global
.impl.GlobalManagerFileMerger$SameSizeFiles$1@b53dfc9, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@1635cc8c, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@2ef14054, com.biglybt.core.global.impl.GlobalManagerFileMerger$SameSizeFiles$1@6ffb2067,
... it continues on and on.
The message seems to be repeated (there are some newlines at first) but the array gradually grows to larger and larger sizes.
from biglybt.
I very much doubt that there is actually 1Mib of all "0 bytes"
There is, you can check my test procedure:
dd if=biglybt.log.old of=biglybt.log.first1MB bs=1M count=1
dd if=/dev/zero of=nullfile.bin bs=1M count=1
diff biglybt.log.first1MB nullfile.bin
No output produced.
... I know my linux tools
from biglybt.
Also the whole old log file compresses (gzip default opts) to just 848KB. and what I posted is the complete strings biglybt.log.old
output so something did output binary data there (mostly zeros).
Could it be string terminating 0 charactes? Maybe, I don't know, but somehow it got there.
from biglybt.
I don't see any zero bytes so no idea. I'll reduce that logging
from biglybt.
"Unable to make field private static transient java.net.InetAddress$NameService" is a known error, the latest unix launch script has the required "add opens" command line parameters to remove it
Looks like startup script (the check_version()
function) fails to detect the java version on my system.
On my system java -version
outputs:
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (Red_Hat-17.0.9.0.9-4) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.9.0.9-4) (build 17.0.9+9, mixed mode, sharing)
...so the head -n 1
command doesn't pick anything useful to determine the java version. Should probably switch to grep or something
Also, may I suggest you start using the excellent shellcheck tool? Shell scripting is quite error prone and I already see a few warnings about unused variables etc.
Thanks
from biglybt.
nah, I don't do linux
from biglybt.
Shellcheck is multiplatform, there are integrations into vsCode etc. and you can also check your script online by just pasting it into "https://www.shellcheck.net/".
When Windows people do shell scripting it gets kind of scary (for example Valves Steam instalation script deleting peoples whole systems by accident a few years back).
But OK. Maybe I can help you adjusting the startup script (to make it more universal)?
For now, maybe just switching the line:
JAVA_HEADER=$($JAVABIN -version 2>&1 | head -n 1)
to
JAVA_HEADER=$($JAVABIN -version 2>&1 | grep version)
... would do the trick? Let me read the whole script and report back.
from biglybt.
wtf is java --version outputting that first line (Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true) for?
Any changes have to deal with all the JRE/JDKs out there...
from biglybt.
wtf is java --version outputting that first line (Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true) for?
Probably have to ask RedHat about that
Any changes have to deal with all the JRE/JDKs out there...
Any official listing of all of those? ... as you might have noticed, I'm not really a Java person
from biglybt.
from biglybt.
Yeah. I think the issue might be the merge of stdout and stderr there.
The Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
is output to error output, but the accepted answer parses both together.
from biglybt.
The third answer there warns about this and uses grep instead.
from biglybt.
so just pick up stdout and ignore stderr and use the existing code?
from biglybt.
I suspect the redirect is there for a reason for some specific JDK versions that just outputs the version to stderr.
Switching JAVA_HEADER line to:
JAVA_HEADER=$($JAVABIN -version 2>&1 | grep -i version | head -n 1)
should do the trick (the sed command bellow assumes the presence of the version keyword anyway so it shouldn't break anything), but
I have a question:
How should we behave if we fail to detect the java version? For now it just ran somehow (at least in my case), but there is also the if [ "$JAVA_IMPL" = "#" ] ; then
path that detects the '#' in the first output field and reports it as java crash?
So if we fail to detect java version, should we just report it and exit or "Yolo" it and run anyway?
from biglybt.
Yup, fail -> run it anways
from biglybt.
OK. Less immediate breakage. Would probably like to output a warning / error message to stderr anyway so user can report if it breaks for some future JDK version again.
from biglybt.
OK. So maybe like this:
check_version()
{
JAVA_ISGCJ=$($JAVABIN -version 2>&1 | grep "gcj")
if [ ! "$JAVA_ISGCJ x" = " x" ] ; then
echo "$MSG_ISGCJ"
return 1
fi
JAVA_HEADER=$("$JAVABIN" -version 2>&1 | grep -i version | head -n 1)
if [ "$JAVA_HEADER" = "" ] ; then
echo "ERROR: Failed to detect JAVA version" >&2
fi
JAVA_IMPL=$(echo "${JAVA_HEADER}" | cut -f1 -d' ')
if [ "$JAVA_IMPL" = "#" ] ; then
echo "$MSG_JAVABORK"
$JAVABIN -version 2>&1
exit 1
else
JAVA_VERSION=$(echo "${JAVA_HEADER}" | sed "s/^.* version \"\(.*\)\".*$/\1/")
if echo "$JAVA_VERSION" | grep "^1.[0-7]" ; then
echo "$MSG_JAVA_TOO_OLD" "[$JAVABIN = ${JAVA_VERSION}]" ; echo "$MSG_JAVA_BELOW_MIN"
return 1
else
echo "${MSG5} [$JAVABIN = ${JAVA_IMPL} ${JAVA_VERSION}]"
return 0
fi
fi
}
You can move the new error message into a variable up top maintain the style
from biglybt.
Running on this adjusted script now, successfully getting the '--add-opens' option. Still getting a huge stdout, but at least now I run with options for my particular JDK.
The "Unable to make field private static transient " exception is gone.
from biglybt.
So to summarize:
The only remaining issues I see from this report is the cleanup of stdout, and the weird zero bytes (who knows where they come from).
What is the policy there? Can I safely assume that all useful bug reporting info will come to stderr and just throw away the stdout completely?
It is prefixed with 'DEBUG:' so I assume it is an effect of Beta releases being a debug build by default?
The zero bytes still come to stderr and there is still lot of them (latest run: 500kB total, only 4 warning lines at the end).
from biglybt.
B49 has reduced debug and fixed startup script
from biglybt.
Related Issues (20)
- New option/feature request HOT 1
- Keeps crashing on VM machine running linux HOT 4
- Typo HOT 2
- Jumping focus from torrent to tags in tags view HOT 1
- Tags view > Settings tab > Constraint edit state changes without entering any letters HOT 1
- Tags view - cloning tags with icons issues HOT 3
- Apply Initial location works only sometimes HOT 1
- [Feature request] Allow to apply Initial/Move on .../Copy on .../ for all selected TAGS, not only one HOT 2
- Tags view - cloning tags did not changes focus to newly created tag HOT 1
- Tags view - sorting method A-Z didn't remembered HOT 1
- [Feature request] Don't update GUI (or line under cursor) when pointer at the "New" indicator HOT 1
- Memory overrun/no free handles/leak HOT 4
- Resetting Location paths after restart HOT 8
- Tag selection reverts to last opened by "RMB > Settings" HOT 1
- [Feature request] Add some delay for searching parameters in Settings HOT 2
- [Feature request] Let the Clear button in Tags view settings for Move on Assign clear only Move on Assign HOT 1
- [Feature request] Make it possible to enter tags > file settings > paths to be entered/edited manually HOT 1
- Duplicates in tag.config HOT 1
- [Feature request] Let access to HTTP seeds go through proxy optionally
- Make a pre setup i2p and Tor plugin because no one can set it HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from biglybt.