How to recreate the nix build sandbox?

I’m attempting to fix this issue, based on the hacky code in this GH gist.

Unfortunately the test suite is failing in the nix build… I believe due to network sandboxing. The relevant failing line from the test suite is

        From worker startup:    ERROR: IOError: bind: operation not permitted (EPERM)

I’ve been attempting to debug the issue by following the instructions in the wiki here. But unfortunately the test suite runs just fine in nix-shell; it only fails in the nix build environment.

Is there a way I could recreate the conditions of the actual nix build environment? As a side note, does anyone have any thoughts about what could be done to work around this test suite failure?

In addition, what are the differences between the linux and macOS build environments? Oddly, the test suite executes just fine on the linux build.

Take a look at the breakpointHook here:


I just tried breakpointHook but it then complained:

error: assertion '(stdenv).isLinux' failed

AFAIK typically you skip tests requiring networking.

Unfortunately these tests don’t actually require networking. IIUC the test runner spins up many processes that communicate over sockets. The tests themselves don’t actually require access to the broader network. For some reason this setup runs without a hitch on Linux but not on macOS…

Yes, that is my understanding as well. The v1.6.x branch also disables tests requiring networking automatically, unlike say v1.0.x. But there could of course be issues with this. My suspicion is that your best bet is to ask in #releases or #infrastructure over at the Julia Slack as they will know more about the in and outs of macOS and Julia.

Thanks, I’ll give the Julia slack a shot!