mafredri/zsh-async

Problems on zsh-5.0.2 and zsh-5.0.8

mafredri opened this issue · 2 comments

I've tried to find workarounds and fixes for zsh-async working properly on version 5.0.2 and 5.0.8 of zsh, primarily because I know there are still some people who use these versions (e.g. older versions of Ubuntu, etc.)

So-far I have been unsuccessful. The latest version (in #10) does work better than the current master (v1.3.1) on both versions, but there are still problems:

  • The async worker suddenly dies (on 5.0.8) and must be stopped / restarted manually by the user. This could be due to some kill-signal finishing of the worker, would need more investigation
  • The shell freezes (on 5.0.2), when Ctrl+C still works it can be e.g. due to reading from zpty hanging (for whatever reason), otherwise it's a deadlock
  • Shell quits with illegal hardware instruction (also 5.0.2)

There might be some improvements to 5.0.8 if it really is just a kill-signal that can be captured, however, 5.0.2 is unlikely to be fixed.

Both of these could probably be made working better by using new zpty instances every time, as considered in #11, at the cost of a slightly slower shell.

PS. These are really old shells and you should probably not use them, unless in a dire situation.

With #13 merged, the only time the async worker seems to die (on occasion) is when _killjobs is issued (e.g. via async_flush_jobs). This is most likely due to bad signal handling (queueing) on zsh 5.0.2 and 5.0.8.

Much of the signal handling was improved in 5.1 and 5.1.1, so they do not suffer from this issue.

Zsh 5.0.8 is ~3 years old now, and 5.0.2 is ~5,5 years old. People should update for the best experience. There's nothing to do here so I'm closing this issue as unfixable / expired.