From 52f3416c2ca6cb892a5d192f6ca8191447c7ef33 Mon Sep 17 00:00:00 2001
From: afederici <ajf5@illinois.edu>
Date: Wed, 18 Nov 2020 21:12:04 -0600
Subject: [PATCH] bug fix

---
 src/Node.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/Node.cpp b/src/Node.cpp
index 2e46995..9b0a543 100644
--- a/src/Node.cpp
+++ b/src/Node.cpp
@@ -821,9 +821,10 @@ void Node::handleTcpMessage()
 			case MAPLESTART: {
 				//leader only function
 				//currently running something, dont start a new phase
-				if (mapleProcessing.size()) {tcpServent->regMessages.push(msg.toString()); break;}
+				if (mapleProcessing.size()) {tcpServent->regMessages.push(msg.toString()); cout << "[MAPLE] already mapling" << endl; break;}
+				cout << "[MAPLE] Leader starting new Maple phase" << endl;
 				if (inMsg.size() >= 4){
-					string mapleExe = inMsg[0], num_maples = inMsg[1], sdfsPre = inMsg[2], sdfs_dir = inMsg[3];
+					string mapleExe = inMsg[0], num_maples = inMsg[1], sdfsPre = inMsg[2], sdfs_dir = inMsg[3] + "-";
 					int workers = stoi(num_maples);
 					if (workers > hashRing->nodePositions.size()-1) workers = hashRing->nodePositions.size()-1;
 					int total_lines = 0;
@@ -834,22 +835,28 @@ void Node::handleTcpMessage()
 							total_lines += get<1>(e.second);
 						}
 					}
+					cout << "[MAPLE] need to process " << to_string(total_lines) << endl;
 					vector<tuple<string,string,string>> aliveNodes;
 					for (auto &e : membershipList) aliveNodes.push_back(e.first);
 					vector<tuple<string,string,string>> mapleNodes = randItems(workers, aliveNodes);
+					string includedDebug = "";
 					for (auto &e : mapleNodes) {
 						Member m(get<0>(e), get<1>(e));
 						mapleRing->addNode(get<0>(e), hashingId(m, get<2>(e)));
+						includedDebug += get<0>(e) + ",";
 					}
+					cout << "[MAPLE] " << includedDebug << " are the worker nodes" << endl;
 					int start = 0, id = 0;
 					string s;
 					for (auto &e: directory){
 						start = 0;
+						cout << "[MAPLE] file: " << get<0>(e) << " - " << to_string(get<1>(e)) << endl;
 						while (start < get<1>(e)){
 							s = get<0>(e) + "::" + to_string(start);
 							id = mapleRing->locateClosestNode(s);
 							vector<int> temp = randItems(1, fileList[get<0>(e)]);
 							mapleProcessing[mapleRing->getValue(id)].push_back(make_tuple(get<0>(e), to_string(start), mapleRing->getValue(temp[0])));
+							cout << "[MAPLE] assign file " << get<0>(e) << " at " << to_string(start) << " to " << mapleRing->getValue(temp[0]) << endl;
 							mapleSending[mapleRing->getValue(temp[0])].push_back(make_tuple(get<0>(e), to_string(start)));
 							string maplemsg = mapleRing->getValue(id) + "::" +mapleExe + "::" + s + "::" + sdfsPre;
 							//IP, exec, file, start, prefix
-- 
GitLab