* [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 related [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 related [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 related [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
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).