【问题标题】:Terminal.app crashing on Mac OS X after upgrade to 10.12 Sierra升级到 10.12 Sierra 后,Mac OS X 上的 Terminal.app 崩溃
【发布时间】:2017-01-26 00:52:47
【问题描述】:

将 Mac OS X 从 El Capitan 升级到 Sierra (10.12.2) 后,Terminal.app 经常崩溃,每天几次。我将在键入命令或编辑文件的过程中崩溃。还有其他人看到这个问题或知道该怎么做(除了切换到 iTerm 2)?

(编辑)这里是堆栈跟踪(省略了拖尾加载的动态库以保持长度合理):

Process:               Terminal [17579]
Path:                  /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
Identifier:            com.apple.Terminal
Version:               2.7.1 (388)
Build Info:            Terminal-388000000000000~2
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Terminal [17579]
User ID:               501

Date/Time:             2017-01-25 16:55:07.676 -0800
OS Version:            Mac OS X 10.12.2 (16C68)
Report Version:        12
Anonymous UUID:        XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Sleep/Wake UUID:       XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Time Awake Since Boot: 59000 seconds
Time Since Wake:       3700 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [0]

VM Regions Near 0:
--> 
    __TEXT                 00000001070d8000-00000001071a8000 [  832K] r-x/rwx SM=COW  /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib        0x00007fff9f916f56 _platform_memmove$VARIANT$Haswell + 182
1   com.apple.Terminal              0x0000000107110c4d 0x1070d8000 + 232525
2   com.apple.Terminal              0x000000010716ebb8 0x1070d8000 + 617400
3   com.apple.UIFoundation          0x00007fff9cd20b7f -[NSAttributedString(NSAttributedStringUIFoundationAdditions) doubleClickAtIndex:inRange:] + 337
4   com.apple.AppKit                0x00007fff882aa90e -[NSAttributedString(NSAttributedStringDeprecatedKitAdditions) URLAtIndex:effectiveRange:] + 607
5   com.apple.Terminal              0x000000010717c625 0x1070d8000 + 673317
6   com.apple.Terminal              0x0000000107147f81 0x1070d8000 + 458625
7   com.apple.Terminal              0x00000001071481e9 0x1070d8000 + 459241
8   com.apple.Terminal              0x000000010714ec1c 0x1070d8000 + 486428
9   com.apple.Foundation            0x00007fff8bc42f7f __NSFireTimer + 83
10  com.apple.CoreFoundation        0x00007fff8a1b7244 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
11  com.apple.CoreFoundation        0x00007fff8a1b6ecf __CFRunLoopDoTimer + 1071
12  com.apple.CoreFoundation        0x00007fff8a1b6a2a __CFRunLoopDoTimers + 298
13  com.apple.CoreFoundation        0x00007fff8a1ae3e1 __CFRunLoopRun + 2065
14  com.apple.CoreFoundation        0x00007fff8a1ad974 CFRunLoopRunSpecific + 420
15  com.apple.HIToolbox             0x00007fff89739acc RunCurrentEventLoopInMode + 240
16  com.apple.HIToolbox             0x00007fff89739901 ReceiveNextEventCommon + 432
17  com.apple.HIToolbox             0x00007fff89739736 _BlockUntilNextEventMatchingListInModeWithFilter + 71
18  com.apple.AppKit                0x00007fff87cdfae4 _DPSNextEvent + 1120
19  com.apple.AppKit                0x00007fff8845a21f -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2789
20  com.apple.AppKit                0x00007fff87cd4465 -[NSApplication run] + 926
21  com.apple.AppKit                0x00007fff87c9ed80 NSApplicationMain + 1237
22  libdyld.dylib                   0x00007fff9f706255 start + 1

Thread 1:: com.apple.terminal.low-disk-space-handler
0   libsystem_kernel.dylib          0x00007fff9f835e2a kevent + 10
1   com.apple.Terminal              0x00000001070da3df 0x1070d8000 + 9183
2   com.apple.Foundation            0x00007fff8bbd2c6d __NSThread__start__ + 1243
3   libsystem_pthread.dylib         0x00007fff9f91daab _pthread_body + 180
4   libsystem_pthread.dylib         0x00007fff9f91d9f7 _pthread_start + 286
5   libsystem_pthread.dylib         0x00007fff9f91d1fd thread_start + 13

Thread 2:: com.apple.terminal.sigchld-handler
0   libsystem_kernel.dylib          0x00007fff9f8362da read + 10
1   com.apple.Terminal              0x00000001070e4e03 0x1070d8000 + 52739
2   com.apple.Foundation            0x00007fff8bbd2c6d __NSThread__start__ + 1243
3   libsystem_pthread.dylib         0x00007fff9f91daab _pthread_body + 180
4   libsystem_pthread.dylib         0x00007fff9f91d9f7 _pthread_start + 286
5   libsystem_pthread.dylib         0x00007fff9f91d1fd thread_start + 13

Thread 3:: com.apple.terminal.tty-io
0   libsystem_kernel.dylib          0x00007fff9f834f4a __select + 10
1   com.apple.Terminal              0x00000001070e661b 0x1070d8000 + 58907
2   com.apple.Foundation            0x00007fff8bbd2c6d __NSThread__start__ + 1243
3   libsystem_pthread.dylib         0x00007fff9f91daab _pthread_body + 180
4   libsystem_pthread.dylib         0x00007fff9f91d9f7 _pthread_start + 286
5   libsystem_pthread.dylib         0x00007fff9f91d1fd thread_start + 13

Thread 4:: com.apple.NSEventThread
0   libsystem_kernel.dylib          0x00007fff9f82d38a mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff9f82c7d7 mach_msg + 55
2   com.apple.CoreFoundation        0x00007fff8a1aec94 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation        0x00007fff8a1ae121 __CFRunLoopRun + 1361
4   com.apple.CoreFoundation        0x00007fff8a1ad974 CFRunLoopRunSpecific + 420
5   com.apple.AppKit                0x00007fff87e2cf92 _NSEventThread + 205
6   libsystem_pthread.dylib         0x00007fff9f91daab _pthread_body + 180
7   libsystem_pthread.dylib         0x00007fff9f91d9f7 _pthread_start + 286
8   libsystem_pthread.dylib         0x00007fff9f91d1fd thread_start + 13

Thread 5:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 6:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 7:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 8:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 9:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 10:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 11:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d5fe _pthread_wqthread + 1023
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 12:
0   libsystem_kernel.dylib          0x00007fff9f8354e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9f91d791 _pthread_wqthread + 1426
2   libsystem_pthread.dylib         0x00007fff9f91d1ed start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00007fff58b24f0e  rbx: 0x0000610000672f80  rcx: 0x0000000000005ff2  rdx: 0x0000000000000002
  rdi: 0x00007fff58b24f0e  rsi: 0x0000000000000000  rbp: 0x00007fff58b24e70  rsp: 0x00007fff58b24e70
   r8: 0x0000000000000000   r9: 0x00007fff58b24e5c  r10: 0x00007f996715ca76  r11: 0x00007fff58b24f0e
  r12: 0x0000000000000018  r13: 0x0000000000000010  r14: 0x000000000000f136  r15: 0x000000000003e07d
  rip: 0x00007fff9f916f56  rfl: 0x0000000000010246  cr2: 0x0000000000000000

Logical CPU:     6
Error Code:      0x00000004
Trap Number:     14

【问题讨论】:

  • 打开控制台,有错误日志吗?
  • 您是否有任何导致崩溃的特殊外壳设置?
  • @BryanChen 发布日志。 @RyanWu 自升级以来没有添加任何新内容。我的.inputrc 配置了set editing-mode vi 并且我在Vim 中使用了很多。
  • @ChrisHiszpanski 看起来它在主线程上崩溃了 - 在_platform_memmove$VARIANT$Haswell + 182,发现了一些类似的问题hereexplanation。似乎它是一个内部错误
  • 我在一周内拿到了第二个。当我在vim中时似乎会发生。刚才是ssh -> screen -> vim

标签: macos terminal macos-sierra


【解决方案1】:

这是 Terminal.app 中的一个错误,可能会在 10.12.4 中修复

这里有很多细节:https://discussions.apple.com/thread/7778906

原因似乎与使用备用屏幕有关(比您想知道的更多:http://www.shallowsky.com/linux/noaltscreen.html

还有换行。

我发现您可以通过这种方式可靠地触发崩溃:

  1. 在 alt 屏幕中(vim、屏幕等...)
  2. 创建足够长的逻辑行以换行到下一个物理行
  3. 从行尾向后删除,直到不再换行。
  4. 崩溃

目前的解决方法是从 10.12.0 或更早版本获取 Terminal.app 的副本。

这个问题似乎是由 Terminal.app 387 引入的 10.12.1 更新。我从我的恢复分区中提取了版本 377(也存在于原始 10.12.0 安装程序中),它可以很好地处理 上面的测试用例。

https://discussions.apple.com/message/31417760#message31417760

【讨论】:

  • 它确实似乎在今天发布的 macOS 10.12.4 中得到了修复。我有一个在 Terminal.app v2.7.2 上不会失败的可重现测试用例。
  • 我在主支持线程上看到有些人仍然能够使其崩溃。但听起来确实更好。今天将升级并进行测试。
  • 我的仍然崩溃。我 am 在 10.12.4 的终端中使用屏幕...我可以通过使用向上箭头来显示换行的行,然后使用返回箭头在文本中向下或向后滚动来可靠地触发此操作。崩溃。
  • 我刚刚重读了整个 .apple.com 线程。有一个明确的经过验证的测试用例,Apple 已经重新打开了这个测试用例。
  • 不,还没有修复。 Mac OS 10.12.5 仍然让 Terminal.app 多次在我身上崩溃,因为我使用 Linux screen 作为备用屏幕来保持我的 SSH 会话持续存在。
【解决方案2】:

对于那些在 10.12.4 之后继续看到 Terminal.app 崩溃的用户,请尝试升级到 10.12.6。 macOS 10.12.6 release notes 说它“提高了终端应用程序的稳定性”。刚刚从 10.12.5(终端仍会定期崩溃)升级到 10.12.6,我可以确认使用屏幕(https://discussions.apple.com/message/31574618#31574618)引发的可重现终端崩溃已得到修复。

【讨论】:

    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2017-07-02
    相关资源
    最近更新 更多