]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiToMail.pm
lei: bail out earlier on IMAP writer failures
[public-inbox.git] / lib / PublicInbox / LeiToMail.pm
index 2aa3977e8034d01f744c05a3a7c5598c9e97890e..03cbde3bd7cf264c141f885a8b4e73c157b30865 100644 (file)
@@ -310,8 +310,11 @@ sub _imap_write_cb ($$) {
        my $dedupe = $lei->{dedupe};
        $dedupe->prepare_dedupe if $dedupe;
        my $append = $lei->{net}->can('imap_append');
-       my $uri = $self->{uri};
-       my $mic = $lei->{net}->mic_get($uri);
+       my $uri = $self->{uri} // die 'BUG: no {uri}';
+       my $mic = $lei->{net}->mic_get($uri) // die <<EOM;
+E: $uri connection failed.
+E: Consider using `--jobs ,1' to limit IMAP connections
+EOM
        my $folder = $uri->mailbox;
        $uri->uidvalidity($mic->uidvalidity($folder));
        my $lse = $lei->{lse}; # may be undef
@@ -749,7 +752,8 @@ sub do_post_auth {
                $au_peers->[1] = undef;
                sysread($au_peers->[0], my $barrier1, 1);
        }
-       $self->{wcb} = $self->write_cb($lei);
+       eval { $self->{wcb} = $self->write_cb($lei) };
+       $lei->fail($@) if $@;
        if ($au_peers) { # wait for peer l2m to set write_cb
                $au_peers->[3] = undef;
                sysread($au_peers->[2], my $barrier2, 1);