                     else
                         for project_id in data.toString().split('\n')
                             projects_on_server[server_id].push(project_id)
-                            w = servers_hosting_project[project_id]
-                            if not w?
-                                w = servers_hosting_project[project_id] = []
-                            w.push(server_id)
+                            if not servers_hosting_project[project_id]?
+                                servers_hosting_project[project_id] = []
+                            if server_id.length != 36
+                                weird.error
+                            servers_hosting_project[project_id].push(server_id)
                         cb()
             v = ['0663ed3c-e943-4d46-8c5e-b5e7bd5a61cc', '0985aa3e-c5e9-400e-8faa-32e7d5399dab', '2d7f86ce-14a3-41cc-955c-af5211f4a85e', '3056288c-a78d-4f64-af21-633214e845ad', '306ad75d-ffe0-43a4-911d-60b8cd133bc8', '44468f71-5e2d-4685-8d60-95c9d703bea0', '4e4a8d4e-4efa-4435-8380-54795ef6eb8f', '630910c8-d0ef-421f-894e-6f58a954f215', '767693df-fb0d-41a0-bb49-a614d7fbf20d', '795a90e2-92e0-4028-afb0-0c3316c48192', '801019d9-008a-45d4-a7ce-b72f6e99a74d', '806edbba-a66b-4710-9c65-47dd70503fc9', '8f5247e5-d449-4356-9ca7-1d971c79c7df', '94d4ebc1-d5fc-4790-affe-ab4738ca0384', '9e43d924-684d-479b-b601-994e17b7fd86', 'a7cc2a28-5e70-44d9-bbc7-1c5afea1fc9e', 'b9cd6c52-059d-44e1-ace0-be0a26568713', 'bc74ea05-4878-4c5c-90e2-facb70cfe338', 'c2ba4efc-8b4d-4447-8b0b-6a512e1cac97', 'd0bfc232-beeb-4062-9ad5-439c794594f3', 'd47df269-f3a3-47ed-854b-17d6d31fa4fd', 'dad2a46d-2a57-401a-bfe2-ac4fc7d50ec1', 'e06fb88a-1683-41d6-97d8-92e1f3fb5196', 'e676bb5a-c46c-4b72-8d87-0ef62e4a5c88', 'e682408b-c165-4635-abef-d0c5809fee26', 'eec826ad-f395-4a1d-bfb1-20f5a19d4bb0', 'f71dab5b-f40c-48db-a3d2-eefe6ec55f01']
             async.map(v, f, cb)


                target = []
                servers.sort()
                for sever_id in servers
                    dc = servers_by_id[server_id].dc
                    if not have[dc]
                        target.push(server_id)
                        have[dc] = true
                for dc, val of have
                    if not val
                        target.push(hashrings[dc].range(project_id, 1))

                if target.length != data_centers.length
                    cb("bug -- found target #{misc.to_json(target)} which has wrong length -- #{project_id}")

                    cb("bug -- we don't have any data--  #{project_id}")
                for server_id in target
                    if server_id not in have_data
                        if server_id.length != 36
                             total.bug
                        work.push({project_id:project_id, action:'copy_and_restore', src:source, dest:server_id})

                # 2. delete data from where we don't want it
