diff --git a/server/main.go b/server/main.go
index a5e53c188368d976dc2b2a1c4b56caffebdfacd3..887677d18c48f8fd317c6d56e7e10bec7db2c011 100644
--- a/server/main.go
+++ b/server/main.go
@@ -252,11 +252,11 @@ func (s *server) Query(ctx context.Context,
 
 // This function register a DGraph grpc server on the address, which is used
 // exchanging protocol buffer messages.
-func runGrpcServer(address string) error {
+func runGrpcServer(address string) {
 	ln, err := net.Listen("tcp", address)
 	if err != nil {
 		glog.Fatalf("While running server for client: %v", err)
-		return err
+		return
 	}
 	glog.WithField("address", ln.Addr()).Info("Client Worker listening")
 
@@ -265,7 +265,7 @@ func runGrpcServer(address string) error {
 	if err = s.Serve(ln); err != nil {
 		glog.Fatalf("While serving gRpc requests", err)
 	}
-	return nil
+	return
 }
 
 func main() {
@@ -313,7 +313,7 @@ func main() {
 
 	worker.Connect(addrs)
 	// Grpc server runs on (port + 1)
-	runGrpcServer(fmt.Sprintf(":%d", *port+1))
+	go runGrpcServer(fmt.Sprintf(":%d", *port+1))
 
 	http.HandleFunc("/query", queryHandler)
 	glog.WithField("port", *port).Info("Listening for requests...")
diff --git a/worker/worker.go b/worker/worker.go
index 64d1c9e6625f9b8d7c8f94f4a482ec9ca47583bd..b163cfddd64b1dc590fcc59a8e913e9eb53d75c2 100644
--- a/worker/worker.go
+++ b/worker/worker.go
@@ -162,7 +162,11 @@ func serveRequests(irwc io.ReadWriteCloser) {
 		sc := &conn.ServerCodec{
 			Rwc: irwc,
 		}
-		rpc.ServeRequest(sc)
+		glog.Info("Serving request from serveRequests")
+		if err := rpc.ServeRequest(sc); err != nil {
+			glog.WithField("method", "serveRequests").Info(err)
+			break
+		}
 	}
 }