IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#saltr
/2025/01/03
~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
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 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?
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?
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 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. ***
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