user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* [PATCH 0/3] lei: some robustness fixes
@ 2021-09-25  5:49 Eric Wong
  2021-09-25  5:49 ` [PATCH 1/3] lei up: show timezone offset with localtime Eric Wong
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Eric Wong @ 2021-09-25  5:49 UTC (permalink / raw)
  To: meta

It out I can still fine localtime confusing if I'm constantly
switching timezones to fit wherever insomnia puts me.

I also noticed an odd failure triggered by augment_inprogress
which I can't reproduce.  In any case, a progress message
shouldn't cause catastrophic failure.

Eric Wong (3):
  lei up: show timezone offset with localtime
  lei: restore old sigmask before daemon exit
  lei2mail: augment_inprogress: guard against closed FDs

 lib/PublicInbox/LEI.pm        |  2 ++
 lib/PublicInbox/LeiToMail.pm  | 15 +++++++++------
 lib/PublicInbox/LeiXSearch.pm |  2 +-
 3 files changed, 12 insertions(+), 7 deletions(-)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] lei up: show timezone offset with localtime
  2021-09-25  5:49 [PATCH 0/3] lei: some robustness fixes Eric Wong
@ 2021-09-25  5:49 ` Eric Wong
  2021-09-25  5:49 ` [PATCH 2/3] lei: restore old sigmask before daemon exit Eric Wong
  2021-09-25  5:49 ` [PATCH 3/3] lei2mail: augment_inprogress: guard against closed FDs Eric Wong
  2 siblings, 0 replies; 4+ messages in thread
From: Eric Wong @ 2021-09-25  5:49 UTC (permalink / raw)
  To: meta

Sometimes a user (e.g. me) isn't really sure what timezone
they're in...
---
 lib/PublicInbox/LeiXSearch.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index 88540bc22367..99f887ce730f 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -324,7 +324,7 @@ sub fudge_qstr_time ($$$) {
 	}
 	$lr -= ($rft || (48 * 60 * 60));
 	$lei->qerr("# $uri limiting to ".
-		strftime('%Y-%m-%d %k:%M', localtime($lr)). ' and newer');
+		strftime('%Y-%m-%d %k:%M %z', localtime($lr)). ' and newer');
 	# this should really be rt: (received-time), but no stable
 	# public-inbox releases support it, yet.
 	my $dt = 'dt:'.strftime('%Y%m%d%H%M%S', gmtime($lr)).'..';

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/3] lei: restore old sigmask before daemon exit
  2021-09-25  5:49 [PATCH 0/3] lei: some robustness fixes Eric Wong
  2021-09-25  5:49 ` [PATCH 1/3] lei up: show timezone offset with localtime Eric Wong
@ 2021-09-25  5:49 ` Eric Wong
  2021-09-25  5:49 ` [PATCH 3/3] lei2mail: augment_inprogress: guard against closed FDs Eric Wong
  2 siblings, 0 replies; 4+ messages in thread
From: Eric Wong @ 2021-09-25  5:49 UTC (permalink / raw)
  To: meta

If the event loop fails, we want blocking waitpid (wait4) calls
to be interruptible with SIGTERM via "kill $PID" rather than
SIGKILL.  Though a failing event loop is something we should
avoid...
---
 lib/PublicInbox/LEI.pm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index 9d5a5a46b398..3ff8a347af8b 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -1346,6 +1346,8 @@ sub lazy_start {
 	# $daemon pipe to `lei' closed, main loop begins:
 	eval { PublicInbox::DS->EventLoop };
 	warn "event loop error: $@\n" if $@;
+	# exit() may trigger waitpid via various DESTROY, ensure interruptible
+	PublicInbox::DS::sig_setmask($oldset);
 	dump_and_clear_log();
 	exit($exit_code // 0);
 }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/3] lei2mail: augment_inprogress: guard against closed FDs
  2021-09-25  5:49 [PATCH 0/3] lei: some robustness fixes Eric Wong
  2021-09-25  5:49 ` [PATCH 1/3] lei up: show timezone offset with localtime Eric Wong
  2021-09-25  5:49 ` [PATCH 2/3] lei: restore old sigmask before daemon exit Eric Wong
@ 2021-09-25  5:49 ` Eric Wong
  2 siblings, 0 replies; 4+ messages in thread
From: Eric Wong @ 2021-09-25  5:49 UTC (permalink / raw)
  To: meta

I'm not sure what caused it, but $err was undef and caused print
to fail, leading to an event loop error.  Guard the timer with
an eval and assume warn() can't trigger an event loop failure.
---
 lib/PublicInbox/LeiToMail.pm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm
index ed609081b0a4..467b27bf275d 100644
--- a/lib/PublicInbox/LeiToMail.pm
+++ b/lib/PublicInbox/LeiToMail.pm
@@ -789,12 +789,15 @@ sub wq_atexit_child {
 # runs on a 1s timer in lei-daemon
 sub augment_inprogress {
 	my ($err, $opt, $dst, $au_noted) = @_;
-	$$au_noted++ and return;
-	print $err '# '.($opt->{'import-before'} ?
-			"importing non-external contents of $dst" : (
-			($opt->{dedupe} // 'content') ne 'none') ?
-			"scanning old contents of $dst for dedupe" :
-			"removing old contents of $dst")." ...\n";
+	eval {
+		return if $$au_noted++ || !$err || !defined(fileno($err));
+		print $err '# '.($opt->{'import-before'} ?
+				"importing non-external contents of $dst" : (
+				($opt->{dedupe} // 'content') ne 'none') ?
+				"scanning old contents of $dst for dedupe" :
+				"removing old contents of $dst")." ...\n";
+	};
+	warn "E: $@" if $@;
 }
 
 # called in top-level lei-daemon when LeiAuth is done

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-25  5:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-25  5:49 [PATCH 0/3] lei: some robustness fixes Eric Wong
2021-09-25  5:49 ` [PATCH 1/3] lei up: show timezone offset with localtime Eric Wong
2021-09-25  5:49 ` [PATCH 2/3] lei: restore old sigmask before daemon exit Eric Wong
2021-09-25  5:49 ` [PATCH 3/3] lei2mail: augment_inprogress: guard against closed FDs Eric Wong

Code repositories for project(s) associated with this inbox:

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).