~dr|z3d
@RN
@RN_
@StormyCloud
@T3s|4
@eyedeekay
@orignal
@postman
@zzz
%Liorar
+FreefallHeavens
+Leopold
+Xeha
+acetone
+bak83_
+cancername
+cumlord
+hk
+profetikla
+uop23ip
An0nm0n
Arch
Danny
DeltaOreo
Irc2PGuest40430
Irc2PGuest68954
Irc2PGuest82815
KiloDelt1
Meow
Nausicaa
Onn4l7h
Onn4|7h
T3s|4__
anon
anu3
bio
boonst
carried6590
enoxa
itsjustme
mareki2pb
not_bob_afk
poriori_
qend-irc2p
shiver_
simprelay
solidx66
u5657
mareki2p
Also, is it normal to get repeated exceptions in i2p.plus at org.klomp.snark.Storage.putPiece(Storage.java:1282)? (There is no problem with my hard disk.)
dr|z3d
depends what you define as normal.
dr|z3d
it shouldn't happen, but maybe your disk is due an fsck.
dr|z3d
space constraints perhaps?
dr|z3d
the line you reference in Storage.java is responsible for pre-allocating the space on your drive.
orignal
so many demand of fsck
orignal
what's wrong with snark?
dr|z3d
nothing.
dr|z3d
think of snark as an early warning system for disk errors or storage at capacity.
orignal
200 Kbs upload for that squid game
dr|z3d
windows?
dr|z3d
on snark+ ?
orignal
linux
orignal
with that dead hdd
dr|z3d
evidently not dead. fsck obviously worked magic.
orignal
I mean squid game torrent looks popular
dr|z3d
sure, I think zzz was insinuating as much the other day
orignal
why?
dr|z3d
why is it popular?
orignal
why is it popular in i2p?
dr|z3d
because it's available?
dr|z3d
and fairly current.
orignal
ofc it's available on rutacker too
orignal
*rutracker
dr|z3d
last time I looked rutracker wasn't an i2p tracker.
dr|z3d
I mean, sure, it's got a presence on i2p, but it's not an _i2p_ tracker per se. just a clearnet mirror.
orignal
rutracker.org
dr|z3d
exactly.
orignal
you can find everything there
orignal
with a small exception )))
orignal
everything is in Russian there
dr|z3d
more cosmetic tweaks to the light snark theme up on git. worth grabbing.
orignal
have you fixed windows build?
dr|z3d
fixed it?
orignal
you
orignal
it's your code
dr|z3d
fixed what?
orignal
replace zip by jar
orignal
in build.xml
dr|z3d
I thought we already had this discussion and zzz told you file permissions weren't persisted with the in-built zip.
orignal
permissions?
orignal
the problem is there is no Windows "zip" command
dr|z3d
I added a new target, i2psnark7zip
orignal
while jar is always there
dr|z3d
maybe that'll keep you happy. I doubt it, but hey.
orignal
are you trolling me?
dr|z3d
are you trolling me?
orignal
who cares about 7zip?
dr|z3d
*** laughs. ***
orignal
I need a regular build producing .zip file
orignal
without installin 7zip and other crap
orignal
Use jar intead zip
orignal
because you can't build without jar anyway
dr|z3d
<dr|z3d> well, 7zip for snark standalone produces smaller files. 14.1MB vs 15.5MB for zip.
dr|z3d
<dr|z3d> new ant target: i2psnark7zip
orignal
I don't have 7zip and not going to have
dr|z3d
<zzz> ant has an internal zip also, we don't use it because it doesn't support file permissions; see comments in snark build.xml, unless drz removed them
orignal
I don't want you to use ant
orignal
I want you to use jar
orignal
and AFAIK zip format doesn't support file permissions anyway
orignal
I see all files extracted accroding to my umask
orignal
not from the archiev
dr|z3d
how about a target that doesn't zip the folder at all?
orignal
fine for me
orignal
just make the build non-failing
dr|z3d
ok, just for you, orignal
dr|z3d
new target: i2psnark_nozip
dr|z3d
you'll find the output in ./dist/i2psnark_standalone
dr|z3d
ant distclean && ant i2psnark_nozip should build you something nice in under 10s. extra points if you can do it in under 5.
mareki2p
Nashorn is deprecated and removed, i2p plus build fails with "Unable to create javax script engine for javascript" what can I do about this?
dr|z3d
try building with an older version of java?
dr|z3d
java/jdk
mareki2p
Three days old (last year's) commit works ... so it is easier for me.
dr|z3d
you'll have to give me more context.
mareki2p
If I do `git checkout 6c6059f8f6573ae3d665bcdcf55dc85608e8a1e8` everything works properly. By everything I mean building i2psnark by executing `ant i2psnark`.
dr|z3d
like OS, what target you were running, what version of the JDK you're compiling with, any additional logging.. crystal ball says "maybe".
mareki2p
I'm on Ubuntu Ubuntu 24.04 LTS x86_64, and Java openjdk version "21.0.5" 2024-10-15
dr|z3d
see if 'apt install parallel' helps.. not sure I changed anything in snark to require it, but it can't hurt.
dr|z3d
> Java 15 has removed Nashorn, you must provide an engine for running JavaScript yourself. GraalVM JavaScript currently is the preferred option.
dr|z3d
that would have been a more useful paste.
mareki2p
After isntallin that thing, the build still fails on latest master. How dow I specify Grall instead of Nashorn?
dr|z3d
you don't.
dr|z3d
give me 5 minutes, I'll fix it.
mareki2p
In meantime I managed to reproduce the exception with expanding file on disk.
dr|z3d
any idea what's causing it? not enough storage space for the torrent?
dr|z3d
issue with building snark etc should be fixed in the latest git revision.
dr|z3d
I thought I was being clever including macrodefs with javascript to suppress info logging, but as we've found out, Java 15 or later no longer supports it. oh well.
mareki2p
Build works now!
mareki2p
The problem with expanding file: No problem with my hard disk, enough free space, I just checked I downloaded some popular 600MB torrent from postman.
dr|z3d
spinner platter, ssd, nvme?
dr|z3d
*spinning
mareki2p
I have problem with small 25MB torrent. It contains padding, maybe this might be the reason. Steps to reproduce: add the e38ec52dea34d08f7eabb707b2a783eec435e275 magnet to be downloaded.
mareki2p
It is virtual computer somewhere in datacenter. It is running inside QUEMU I believe.
dr|z3d
so the torrent fails to start, or it starts and then stops min-download?
dr|z3d
*mid
mareki2p
Starts, downloads for a while, then exception is thrown and torrent stopped. If I manually copy the data from another computer, then force re-check will succesfully verify everything.
dr|z3d
works for me, no issue.
mareki2p
java.io.IOException: Error writing /home/xxxxx/i2psnark/Bulanci v1.80 (2001)(CZ) + level editor/bulanci.exe
mareki2p
at org.klomp.snark.Storage.putPiece(Storage.java:1291)
mareki2p
at org.klomp.snark.PeerCoordinator.gotPiece(PeerCoordinator.java:1205)
mareki2p
at org.klomp.snark.PeerState.pieceMessage(PeerState.java:431)
mareki2p
at org.klomp.snark.PeerConnectionIn.run(PeerConnectionIn.java:152)
mareki2p
at org.klomp.snark.Peer.runConnection(Peer.java:321)
mareki2p
at org.klomp.snark.PeerCoordinator$1.run(PeerCoordinator.java:822)
mareki2p
at java.base/java.lang.Thread.run(Thread.java:1583)
mareki2p
at net.i2p.util.I2PThread.run(I2PThread.java:103)
mareki2p
Caused by: java.io.IOException: Bad file descriptor
mareki2p
at java.base/java.io.RandomAccessFile.writeBytes0(Native Method)
mareki2p
at java.base/java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:572)
mareki2p
at java.base/java.io.RandomAccessFile.write(RandomAccessFile.java:602)
mareki2p
at org.klomp.snark.Storage$TorrentFile.balloonFile(Storage.java:1557)
mareki2p
at org.klomp.snark.Storage$TorrentFile.access$100(Storage.java:1411)
mareki2p
at org.klomp.snark.Storage.putPiece(Storage.java:1282)
mareki2p
... 7 more
mareki2p
2025/01/03 12:31:20.557 | ERROR[...AwMD@1Mezjh] ...PeerConnectionIn: Error communicating with [AwMD@1Mezjh 10]
mareki2p
* Error writing to storage [piece 152] for Bulanci v1.80 (2001)(CZ) + level editor
dr|z3d
what does ulimit -n tell you from the account you're running snark on?
mareki2p
1024
dr|z3d
maybe you're hitting open file descriptor limits.
mareki2p
How do I increase it?
mareki2p
Blinded message
dr|z3d
edit /etc/security/limits.conf and add something like this:
dr|z3d
root soft nofile 65535
dr|z3d
root hard nofile 65535
dr|z3d
user soft nofile 65535
dr|z3d
user hard nofile 65535
dr|z3d
i2p soft nofile 40960
dr|z3d
i2p hard nofile 40960
dr|z3d
tweak to taste.
dr|z3d
you may want to reboot after you've edited that file.
dr|z3d
for may want read "should".
dr|z3d
user and i2p are names of existing accounts.
dr|z3d
if the host is hitting file limits, that's another issue entirely, and you should contact your provider. but see if that works.
mareki2p
Provider can not limit me as I'm running entirely own operating system, it could be any OS, file handle limit is OS thing, not hypervisor thing.
dr|z3d
maybe, but see if your issue is resolved with a reboot, having made the edits suggested above (make sure you're specifying the correct user(s))
mareki2p
I'm already testing the increased limits...
dr|z3d
ok, good. any joy?
mareki2p
So far good, but not yet downloaded once, will download it maybe three times to verify it works fine. Will take more than hour.
zzz
FYI you didn't need to do all that, just raise the limit in launch-i2psnark
dr|z3d
are you starting snark with the launch-i2psnark script, mareki2p?
dr|z3d
if so:
dr|z3d
# Raise the soft open files soft ulimit to this value, if able
dr|z3d
OPEN_FILES_ULIMIT=16384
dr|z3d
# Increase memory to 1024 MB
dr|z3d
JAVA_OPTS='-Xmx1024m'
dr|z3d
if he is, that's not working as intended.
mareki2p
No, just plain old java -jar i2psnark.jar
dr|z3d
ok, so what zzz said.
dr|z3d
still, doesn't hurt that you've set soft and hard limits at the OS level.
mareki2p
What is the reason process is limited by some limit if the same user can increase it? No root required.
dr|z3d
sanity.
dr|z3d
I mean, defaults are set, doesn't mean you require root to change them.
dr|z3d
do you require root to change configs in your browser? no.
orignal
why 16K rather than 4K?
orignal
you usually can't set 16K without changing system limits
mareki2p
Blinded message
mareki2p
Only 45 descriptors / handles opened.
orignal
but you also run an i2p instance
orignal
under same user
dr|z3d
doesn't hurt, orignal
mareki2p
The problem is only wit this specific torrent file, other works just fine (even bigger one with much many more peers).
dr|z3d
if ulimit -n > hard limit set by the OS, ulimit -n will set the limit to max permissible.
dr|z3d
well, that torrent downloaded for me without issue, so I really don't have much of an idea what's causing it to fail there.
dr|z3d
you could always try creating a /snarktemp dir and mounting it with tmpfs and saving the torrent there.
dr|z3d
that will at least tell you if the filesystem is the issue.
dr|z3d
orignal: system tray for snark:
dr|z3d
edit i2psnark-appctx.config
dr|z3d
specifically this section:
dr|z3d
# disable system tray
dr|z3d
#desktopgui.enabled=false
dr|z3d
# disable system tray notification popups
dr|z3d
#desktopgui.showNotifications=false
mareki2p
Again, exception even on RAM disk. But previously I didn't explain my workflow precisely. I put the info hash into snark (or magnet containing just the hash, no trackers). Wait a while until .torrent file is downloaded. Stop. Re-check. Edit -> add all the trackers. Start. Maybe this workflow causes the problem.
dr|z3d
you don't need to add trackers.
dr|z3d
on snark, the only time you really want to edit a torrent is if you're uploading to postman.
dr|z3d
otherwise, it will automatically use the default opentrackers unless you explicitly disable that.
mareki2p
Yes, I get it, no trackers needed, snark will use some tracker regardless. That is not my point. My point is that I can do this, I will do this, and ??maybe?? this is the cause of my problem.
dr|z3d
if you want to shoot yourself in the face for fun, that's on you.
mareki2p
How is this shooting myself into foot? This is (or should be) legit sequence of operatoins taht user could perform.
dr|z3d
works for me. add hash, wait for torrent to download some data, stop torrent, add trackers, restart torrent.
dr|z3d
make sure at least one of the trackers you're adding is the primary tracker.
mareki2p
OK, I figured it out. It is related to force re-check combined with attempt to write to the same file. I added bunch of printf style debugging (as I don't have any Java debugger, and I don't know how to operate one). I added one printf into Storage.TorrentFile.openRAF function, sometimes some files are opened in read-only mode. Then, I added another printf to Storage.TorrentFile.balloonFile function. And indeed
mareki2p
, moments before catastorphy (exception) exactly the same file is being opened in read-only mode, and exactly the same file is being (attempted) written to. Then, exception is thrown. Exactly as Oracle documentation says. I did not captured thread IDs, it is possible there is multi-threading involved, but I don't want to dig any deeper at this point. Steps to reproduce: Randomly press Stop, ReCheck, Start butto
mareki2p
ns in quick succession, then watch the world burn.
mareki2p
dr|z3d: Have a torrent running, then press Stop, ReCheck, Start buttons quickly one after another.
dr|z3d
mareki2p: I don't know how to respond to that other than to say "don't do it" :)
mareki2p
Wow, what about not writing to a file that is opened as read-only? Or disable all writes until re-check is done? Or disable re-check while it is still possible to write to the file?
dr|z3d
it shouldn't happen in normal circumstances, but if you're hammering the buttons then you might be able to break things.
dr|z3d
hence "don't do it"
dr|z3d
if you stop the file, you can't write to it. and in order to force a recheck, the file needs to be stopped.
dr|z3d
it's likely the issue also exists upstream, so maybe you can elicit some interest from zzz.
RN
doesn't stopping it and restarting it cause a recheck anyway?
dr|z3d
shouldn't do, the stored metadata should be sufficient unless that got corrupted.
RN
10-4
zzz
dr|z3d, you know my answer, you can't guess, reproduce it on canon and file a ticket with the canon stack trace
dr|z3d
mareki2p_: what zzz said.
dr|z3d
in other news, this one made me laugh: shreddit.i2p/r/i2p/comments/1hsxts8/need_help_making_i2p_work
dr|z3d
tldr: picture of web browser with proxy.i2p open, reporing "I2P HTTP proxy ok" and the comment "nothing ever happens from here".
dr|z3d
*** blames zzz. ***
mareki2p
(-:
cumlord
did they not try to do anything from here lol
dr|z3d
very good, cumlord :)
eyedeekay
*slaps self* I just saw it... I was prepared to apologize for the fact that it takes a long time to unzip the profile for the first time but that... was not the problem...
eyedeekay
what have I done...
eyedeekay
That's what happens when i2p.plugins.firefox runs, it's supposed to make it clear everything is configured