machyve / xhyve

xhyve, a lightweight OS X virtualization solution
Other
6.43k stars 353 forks source link

xhyve is killed with SIGKILL after build on Catalina #191

Open alencar opened 4 years ago

alencar commented 4 years ago

A fresh built xhyve will fail to run on macOS Catalina with "Killed: 9" message.

From checking the logs, it is a code signing issue... I've created a brand new Apple Developer Code Signing Identity from within Xcode and selected this specific identity with _CODE_SIGNIDENTITY environment variable. The outcome was the same as before. Disabling code signing on the other hand, produces a binary which can run.

Environment

macOS Catalina 10.15.5 System Preferences / Security & Privacy / General / Allow apps downloads from: App store and identified developers

$ xcodebuild -version
Xcode 11.5
Build version 11E608c

As per project README.md, build process consist of:

git clone https://github.com/machyve/xhyve.git
cd xhyve
xcodebuilld

And once built, xhyve can be executed as follows:

$ build/Release/xhyve -v
Killed: 9
$ sudo build/Release/xhyve -v
Password:
Killed: 9

Building with code signing disabled results in a usable binary:

$ xcodebuild CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
....
$ build/Release/xhyve -h
Usage: xhyve [-behuwxMACHPWY] [-c vcpus] [-F <pidfile>] [-g <gdb port>] [-l <lpc>]
             [-m mem] [-p vcpu:hostcpu] [-s <pci>] [-U uuid] -f <fw>
       -A: create ACPI tables
       -c: # cpus (default 1)
       -C: include guest memory in core file
       -e: exit on unhandled I/O access
       -f: firmware
       -F: pidfile
       -g: gdb port
       -h: help
       -H: vmexit from the guest on hlt
       -l: LPC device configuration. Ex: -l com1,stdio -l com2,autopty -l com2,/dev/myownpty
       -m: memory size in MB, may be suffixed with one of K, M, G or T
       -M: print MAC address and exit if using vmnet
       -p: pin 'vcpu' to 'hostcpu'
       -P: vmexit from the guest on pause
       -s: <slot,driver,configinfo> PCI slot config
       -u: RTC keeps UTC time
       -U: uuid
       -v: show build version
       -w: ignore unimplemented MSRs
       -W: force virtio to use single-vector MSI
       -x: local apic is in x2APIC mode
       -Y: disable MPtable generation

Error message reported in System Logs:

Process:               xhyve [49473]
Path:                  /Users/USER/*/xhyve
Identifier:            xhyve
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        bash [19619]
Responsible:           Terminal [75407]
User ID:               501

Date/Time:             2020-07-05 19:32:27.522 -0700
OS Version:            Mac OS X 10.15.5 (19F101)
Report Version:        12
Bridge OS Version:     4.5 (17P5300)
Anonymous UUID:        96E512B4-5E65-7C5E-59C6-CD6E9D3BEC2C

Sleep/Wake UUID:       0AF60293-4303-4B82-81DE-4203A11053A4

Time Awake Since Boot: 2100000 seconds
Time Since Wake:       590000 seconds

System Integrity Protection: enabled

Crashed Thread:        Unknown

Exception Type:        EXC_CRASH (Code Signature Invalid)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace CODESIGNING, Code 0x1

kernel messages:

Backtrace not available

Unknown thread crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x0000000000000000  rbp: 0x0000000000000000  rsp: 0x00007ffee3eabaa8
   r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000000000000  r11: 0x0000000000000000
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x0000000110d3f000  rfl: 0x0000000000000200  cr2: 0x0000000000000000

Logical CPU:     0
Error Code:      0x00000000
Trap Number:     0

Binary images description not available

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 66508486
    thread_create: 0
    thread_set_state: 0