Byzantine Reality

Searching for Byzantine failures in the world around us

First Thoughts Developing on Mavericks

So I just upgraded my 2012 MacBook Air to Mac OS X 1.9 (Mavericks), which I use for all my dev work. I ran into a few quick issues while getting it back in shape to develop on, and I figured posting them here may help you out if you do the same.

Vagrant / VirtualBox

I deploy AppScale on my laptop via vagrant and VirtualBox. However, when I tried to vagrant up my Ubuntu Precise VM, I saw this nasty error message:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
outer-haven:two-vms cgb$ vagrant up one
Bringing machine 'one' up with 'virtualbox' provider...
[one] Setting the name of the VM...
[one] Clearing any previously set forwarded ports...
[one] Creating shared folders metadata...
[one] Clearing any previously set network interfaces...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "create"]

Stderr: 0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory

VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterface, interface IHostNetworkInterface
VBoxManage: error: Context: "int handleCreate(HandlerArg*, int, int*)" at line 68 of file VBoxManageHostonly.cpp

I searched around on the ‘net and found that other people ran sudo /Library/StartupItems/VirtualBox/VirtualBox restart to fix a similar looking failure, but I couldn’t find anyone reporting if this works on Mavericks. I ran it, and it did fix it:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
outer-haven:two-vms cgb$ sudo /Library/StartupItems/VirtualBox/VirtualBox restart

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
Unloading VBoxUSB.kext
Unloading VBoxDrv.kext
/Applications/VirtualBox.app/Contents/MacOS/VBoxAutostart => /Applications/VirtualBox.app/Contents/MacOS/VBoxAutostart-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxBalloonCtrl => /Applications/VirtualBox.app/Contents/MacOS/VBoxBalloonCtrl-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxDD2GC.gc => /Applications/VirtualBox.app/Contents/MacOS/VBoxDD2GC.gc-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxDDGC.gc => /Applications/VirtualBox.app/Contents/MacOS/VBoxDDGC.gc-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxExtPackHelperApp => /Applications/VirtualBox.app/Contents/MacOS/VBoxExtPackHelperApp-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless => /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxManage => /Applications/VirtualBox.app/Contents/MacOS/VBoxManage-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxNetAdpCtl => /Applications/VirtualBox.app/Contents/MacOS/VBoxNetAdpCtl-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP => /Applications/VirtualBox.app/Contents/MacOS/VBoxNetDHCP-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxSVC => /Applications/VirtualBox.app/Contents/MacOS/VBoxSVC-amd64
/Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD => /Applications/VirtualBox.app/Contents/MacOS/VBoxXPCOMIPCD-amd64
/Applications/VirtualBox.app/Contents/MacOS/VMMGC.gc => /Applications/VirtualBox.app/Contents/MacOS/VMMGC.gc-amd64
/Applications/VirtualBox.app/Contents/MacOS/VirtualBox => /Applications/VirtualBox.app/Contents/MacOS/VirtualBox-amd64
/Applications/VirtualBox.app/Contents/MacOS/VirtualBoxVM => /Applications/VirtualBox.app/Contents/MacOS/VirtualBoxVM-amd64
/Applications/VirtualBox.app/Contents/MacOS/vboxwebsrv => /Applications/VirtualBox.app/Contents/MacOS/vboxwebsrv-amd64
Loading VBoxDrv.kext
Loading VBoxUSB.kext
Loading VBoxNetFlt.kext
Loading VBoxNetAdp.kext
outer-haven:two-vms cgb$
outer-haven:two-vms cgb$ vagrant up one
Bringing machine 'one' up with 'virtualbox' provider...
[one] Setting the name of the VM...
[one] Clearing any previously set forwarded ports...
[one] Creating shared folders metadata...
[one] Clearing any previously set network interfaces...
[one] Preparing network interfaces based on configuration...
[one] Forwarding ports...
[one] -- 22 => 2222 (adapter 1)
[one] Running any VM customizations...
[one] Booting VM...
[one] Waiting for VM to boot. This can take a few minutes.
[one] VM booted and ready for use!
[one] Configuring and enabling network interfaces...
[one] Mounting shared folders...
[one] -- /vagrant

Python

Next, I tried starting up AppScale, whose command-line tools are written in Python. However, Mavericks updates Python from 2.7.3 to 2.7.5, wiping out all my installed libraries in the process. You also don’t get pip by default, so before upgrading, I’d recommend using yolk to find out what libraries you do have installed, so that you can reinstall them after you update to Mavericks.

Ruby

This one was actually really easy. I’m using RVM to manage the version of Ruby that’s installed on my laptop, and that was preserved when the update to Mavericks occurred, so no changes here! Maybe I should have also been using virtualenv for the Python side of things…

Wrapping it up

That’s all I’ve run into so far – of course, that’s really just because Mavericks is brand-new and I just upgraded. A really nice side effect of upgrading is that it freed up about 20 GB of disk space on my laptop, which is awesome! I’ll post updates if I run into any other issues developing on my Mac, but so far, so good!