4966b912c6
Allowing the user to view deleted messages creates all sorts of race conditions. The most devious race condition is pv.source can be set to a nil while another PartViewer is still running a goroutine in attemptCopy. Here is a trace when this happens. goroutine 76 [running]: io.copyBuffer(0x7f8ad02641d0, 0xc00040f590, 0x0, 0x0, 0xc0007cc000, 0x8000, 0x8000, 0x0, 0x0, 0x8b3d60) /usr/lib/go/src/io/io.go:402 +0x101 io.Copy(...) /usr/lib/go/src/io/io.go:364 git.sr.ht/~sircmpwn/aerc/widgets.(*PartViewer).attemptCopy.func4(0xc00017efd0, 0xc0004da7c0) /home/keur/repos/aerc/widgets/msgviewer.go:576 +0x611 created by git.sr.ht/~sircmpwn/aerc/widgets.(*PartViewer).attemptCopy /home/keur/repos/aerc/widgets/msgviewer.go:544 +0x144 We could add a guard in store.FetchBodyPart to only call the callback when msg.Part.Reader != nil, but we still get a hanging pager. Therefore it seems more reasonable to disable this completely. Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu> |
||
---|---|---|
commands | ||
config | ||
doc | ||
filters | ||
lib | ||
models | ||
templates | ||
widgets | ||
worker | ||
.build.yml | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
aerc.go | ||
go.mod | ||
go.sum |
README.md
aerc
aerc is an email client for your terminal.
Join the IRC channel: #aerc on irc.freenode.net for end-user support, and #aerc-dev for development.
Building
Install the dependencies:
- go (>=1.12)
- scdoc
Then compile aerc:
$ make
aerc optionally supports notmuch. To enable it, you need to have a recent version of notmuch, including the header files (notmuch.h). Then compile aerc with the necessary build tags:
$ GOFLAGS=-tags=notmuch make
Installation
# make install
$ aerc
On its first run, aerc will copy the default config files to ~/.config/aerc
and show the account configuration wizard.
If you redirect stdout to a file, logging output will be written to that file:
$ aerc > log
Resources
Send patches and questions to ~sircmpwn/aerc@lists.sr.ht.
Subscribe to release announcements on ~sircmpwn/aerc-announce
Bugs & todo here: ~sircmpwn/aerc2