OS Version: 10.10.3
iTerm Version: Build 2.9.20150531-nightly
aText Version: 2.17
I have used aText macros in iTerm for several years now without issues, including those same macros causing crashes today.
Steps to reproduce:
Open iTerm, ssh to some host (I was logged into a CentOS 6 box for my reproduction of this bug)
Fill the term buffer somewhat (I did this by cat'ing a large log file)
Attempt to use an aText macro within the same term -- as aText pastes the macro into the buffer, iTerm app crashes completely.
My hypothesis is this possibly something to do with https://github.com/gnachman/iTerm2/commit/dc6d204beaeb1222f6448364b054fbb041f87e55 as I have updated to the latest nightly build fairly often and have not had this issue before. I was last running Build 2.9.20150519-nightly without issue. I'm going to try downgrading to Build 2.9.20150530-nightly to see if the same behavior occurs.
By the way, thank you so much for all your work on iTerm 2 -- this app is literally why I use a Mac and is critical to about 90% of what I do every day for work. :-)
Ok, I tried both Build 2.9.20150519-nightly and Build 2.9.20150530-nightly, both had this issue as well. I then downgraded to the next oldest iTerm I had in my downloads, Build 2.9.20150430-nightly. This did not crash!
More specific steps to reproduce:
Open new iTerm 2 session. SSH to another system, for example a CentOS 6 server
Fill the buffer with 50,000 lines (I ended up using head -50000 /var/log/somehugelog.log for this)
Attempt to use an aText macro in the same session / term. On Build 2.9.20150430-nightly there is a noticeable delay to aText rendering the macro but it does render (I've even had iTerm pinwheel before when doing this with a large buffer, yet it would still complete after a few seconds of waiting). On the later builds, this produces a crash, with the above crash log (though there's still noticeable delay between triggering the macro and the crash).
The version of aText is the same in all cases, the only variable is the build of iTerm I used.
Hello George,
Thank you for helping me with this! I do not see an alert box when this happens, though it is possible that is what iTerm is trying to do and just crashing before it actually renders. The text that triggers the macro is 5 characters long and the replacement text is 163 characters long in a single line -- one of several Bash one-liners I use for work, so the usual combination of backticks, pipes, greps and the like.
I was able to reproduce this on my local system (so no need to ssh it seems) by doing head -50000 somebiglog and then the macro.
I've attached the portion of system.log from when this occurred with the adhoc build as well as the crash log from the same
Looks like what's happening is we're showing a modal alert warning the user that accessibility may be hurting performance and the macro sends a kind of crazy NSEvent which triggers an exception in the framework. There are bugs all around! aText should not send broken events. The framework should be more forgiving of events. And iTerm2 shouldn't show modal alerts because they suck.
I wonder if TextExpander would trigger the same issue -- I use aText because it's cheaper and seems lighter weight to me. I'll check with my colleagues, see if anyone has TextExpander and if I can reproduce the same issue with it. But I'm with you on the modal alert, thanks for your time and for adding that to the list of future fixes. Sent you a donation, as other than this issue, iTerm2 has been awesome, and makes my job so much easier.