From 4aa1e5c55484ac02d28883292ee5c5806f5e4664 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 22 Aug 2012 10:58:24 -0400 Subject: [PATCH] Receive reserveSpace before calling startWork() Otherwise we can get a SIGPOLL. Reported by Ludovic. --- src/nix-worker/nix-worker.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nix-worker/nix-worker.cc b/src/nix-worker/nix-worker.cc index 80c0d50609..7099eb9eeb 100644 --- a/src/nix-worker/nix-worker.cc +++ b/src/nix-worker/nix-worker.cc @@ -619,6 +619,10 @@ static void processConnection() to.flush(); unsigned int clientVersion = readInt(from); + bool reserveSpace = true; + if (GET_PROTOCOL_MINOR(clientVersion) >= 11) + reserveSpace = readInt(from) != 0; + /* Send startup error messages to the client. */ startWork(); @@ -634,10 +638,6 @@ static void processConnection() throw Error("if you run `nix-worker' as root, then you MUST set `build-users-group'!"); #endif - bool reserveSpace = true; - if (GET_PROTOCOL_MINOR(clientVersion) >= 11) - reserveSpace = readInt(from) != 0; - /* Open the store. */ store = boost::shared_ptr(new LocalStore(reserveSpace));