# HG changeset patch # User sugi # Date 1421894614 -32400 # Node ID 80e461aa10e942691a10d6963d458077d08cbd70 # Parent a7f140f4bcb1309089a7f536e8093fa7a9d174ed bug fix diff -r a7f140f4bcb1 -r 80e461aa10e9 src/main/java/alice/topology/fix/FixTopology.java --- a/src/main/java/alice/topology/fix/FixTopology.java Wed Jan 21 16:56:31 2015 +0900 +++ b/src/main/java/alice/topology/fix/FixTopology.java Thu Jan 22 11:43:34 2015 +0900 @@ -6,6 +6,7 @@ import alice.codesegment.CodeSegment; import alice.daemon.ConnectionInfo; import alice.datasegment.CommandType; +import alice.datasegment.DataSegment; import alice.datasegment.Receiver; import alice.topology.HostMessage; import alice.topology.manager.Parent; @@ -46,6 +47,7 @@ } if (lostNode!=null && lostNode.isAlive()) { + DataSegment.remove(lostNodeName); // change state not Alive lostNode.alive = false; // get lastJoinedNode diff -r a7f140f4bcb1 -r 80e461aa10e9 src/main/java/alice/topology/manager/CheckComingHost.java --- a/src/main/java/alice/topology/manager/CheckComingHost.java Wed Jan 21 16:56:31 2015 +0900 +++ b/src/main/java/alice/topology/manager/CheckComingHost.java Thu Jan 22 11:43:34 2015 +0900 @@ -47,6 +47,7 @@ new SearchHostName(); } } else { + host.cookie = null; ods.put("orderHash", "order"); ods.put("newHost", host); } diff -r a7f140f4bcb1 -r 80e461aa10e9 src/main/java/alice/topology/manager/CreateTreeTopology.java --- a/src/main/java/alice/topology/manager/CreateTreeTopology.java Wed Jan 21 16:56:31 2015 +0900 +++ b/src/main/java/alice/topology/manager/CreateTreeTopology.java Thu Jan 22 11:43:34 2015 +0900 @@ -31,7 +31,6 @@ @Override public void run() { String cookie = info3.asString(); - System.out.println(cookie); HostMessage host = info.asClass(HostMessage.class); int comingHostCount = info1.asInteger(); ParentManager manager = info6.asClass(ParentManager.class); @@ -40,11 +39,19 @@ HashMap absCookieTable = info4.asClass(HashMap.class); String nodeName = null; + int count = comingHostCount; + boolean reconnect = false; if (host.absName!=null) { + System.out.println(host.cookie); + cookie = host.cookie; nodeName = host.absName; + System.out.println(nodeName); + reconnect = true; } else { + System.out.println(cookie); nodeName = "node"+comingHostCount; absCookieTable.put(cookie, nodeName); + count++; } // Manager connect to Node DataSegment.connect(nodeName, nodeName, host.name, host.port); @@ -52,7 +59,7 @@ ods.put(nodeName, "cookie", cookie); ods.put(info4.key, absCookieTable); - ods.put(info1.key, comingHostCount+1); + ods.put(info1.key, count); host.alive = true; nameTable.put(nodeName, host); manager.register(nodeName); @@ -67,7 +74,8 @@ newHost.absName = parentAbsName; newHost.remoteAbsName = nodeName; // address ods.put(newHost.remoteAbsName, newHost); - + if (reconnect) + ods.put(newHost.remoteAbsName, newHost); ods.put("nodeInfo", newHost); new RecodeTopology(); diff -r a7f140f4bcb1 -r 80e461aa10e9 src/main/java/alice/topology/node/IncomingConnectionInfo.java --- a/src/main/java/alice/topology/node/IncomingConnectionInfo.java Wed Jan 21 16:56:31 2015 +0900 +++ b/src/main/java/alice/topology/node/IncomingConnectionInfo.java Thu Jan 22 11:43:34 2015 +0900 @@ -33,9 +33,7 @@ count++; ods.put("connection"+hostInfo.connectionName, hostInfo.connectionName); new PrepareToAddList(hostInfo.connectionName); - } - } IncomingConnectionInfo cs = new IncomingConnectionInfo(absName, count);