IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#i2p-dev
/2022/07/29
zzz zlatinb, re: mac arm bundle, you have the news feed set up and deployed on all servers for that?
zlatinb I added the new channel to i2p.newsxmk and eyedeekay1 deployed it on his server, I haven't published any items yet though
zlatinb guess I'll have to ping ech somehow when it's release time
zzz no, ech is on the road, you need to ask eyedeekay1 to update eche's server if he hasn't
zlatinb ok. I think I'll wait until 1.9 and then update the betas to 1.9
zzz you may also wish to push a 'thanks for testing' news item in advance of the release to test it
zlatinb That requires a url to a blog post no? If that's the case I'll wait until my right hand is functionak again ETA wednesday
zzz url yes, but not necessarily to blog post. could be to a info page somewhere
zlatinb btw issue #363 is affecting the bundle
zzz wasn't clear if that's our problem
zzz but we have two threads both trying to write to the log and message the icon, one is the normal writer and one is the shutdown hook
zzz doesn't look right
zzz I think LogWriter.flushRecords() needs to be synched
zzz but that doesn't explain why LogWriter is hung in nativeGetDockIconImage() and wouldn't necessarily fix it
zlatinb I think the tray icon disappears too early in the shutdown process. Strange that it only happens when quitting via command-Q
zzz might be hanging because the icon got closed already. let me look
zzz nope, we're not closing the icon explicitly, we just let it die with the JVM
zzz oh, I see, you clicked quit
zlatinb right-click on dock then quit
zzz Quit is a Mac menu item, not ours, right?
zlatinb on the dock icon != tray icon
zlatinb I think it just triggers a SIGTERM
zlatinb but I haven't researched it
zzz Main.java line 161
zzz * TODO, if we want to handle Quit, see
zzz so it appears we "handle" it now, things get stopped, but we need to know that and not try to send a message to the icon after it
zlatinb that might be the easiest rather than adding Apple-specific jars
zzz there's no state check in Main.notify() or TrayManager.displayMessage()
zzz worst case we can just disable the notifications via a config if we can't figure it out
zzz that post is now 13 years old, might be a non-apple way to do it now
zzz the other way is to have the RouterAppManager stop DTG. Right now DTG is "untracked" so RAM doesn't stop it.
zzz if we change it to "tracked", DTG will stop before the final shutdown messages
zzz but that may still be too late, not sure
zlatinb I tend to like that approach
zlatinb the log writer is daemon while the shutdown hook isn't
zzz actually the shutdown hook wakes up the log writer, waits for a while, then gives up and continues the final shutdown
zzz that's why it's in flush() twice. because the log writer hung
zzz so that's a symptom not a cause
zzz I wonder if there's a TrayIcon.isDead() method or similar
zzz nope
zlatinb I'm ok with disabling shutdown notification on mac completely
zzz it would be disabling all DTG popup messages
zzz which is something we just added recently
zzz desktopgui.showNotifications=false
zzz the 2009 post says/implies you don't get a Window Closing event for Quit, I wonder if still true?
zzz but it's really miserable playing with listeners/events on the icon, there's huge cross-platform differences
zzz so may not be worth the trouble
zlatinb no definitely not
zlatinb snark download notifications would be nice to keep
zlatinb but I'm ok with disabling all notifications too
zzz please check what happens on x86, will need to know that
zlatinb ok, need to go offline then, brb
zlatinb yes it happens on intel too
zlatinb I think I'll disable it from the router,config in the bundke
zlatinb bundle*
zzz I assume having RAM stop DTG won't help, since causally it would still be after Quit
zzz I have another idea
zzz just skip the final flushRecords() in the shutdown hook for mac. The LogWriter thread will still be hung but it's a daemon
zzz diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java
zzz index b98f1c528..e0ea3d4b1 100644
zzz --- a/core/java/src/net/i2p/util/LogManager.java
zzz +++ b/core/java/src/net/i2p/util/LogManager.java
zzz @@ -797,7 +797,8 @@ public class LogManager implements Flushable {
zzz // try to prevent out-of-order logging at shutdown
zzz flush();
zzz // this could generate out-of-order messages
zzz - _writer.flushRecords(false);
zzz + if (!SystemVersion.isMac())
zzz + _writer.flushRecords(false);
zzz _writer.stopWriting();
zzz synchronized (_writer) {
zzz _writer.notifyAll();
zlatinb ok give me a few minutes to try it
zzz what you lose would be the last messages to the log, plus a 250ms longer shutdown because of the sleeping in flush() waiting for the hung thread
zlatinb works
zzz but you keep your snark popups this way
zlatinb yes I like that
zzz ok. I'll check it in then?
zlatinb yes please
zzz done
zzz nice to hear somebody likes the snark popups :)