orfeo61
orfeo61 A bug fix regarding nondeterminism resulted from stack trace strings.
 
During the experiment, under heavy workload, some client's request to delete a file reaches namenode after it is already deleted by other client (it deletes the parent directory of the file).
Namenode replies with an exception saying the file doesn't exist.  The exception stored in the reply includes a stack trace of the exception and the trace may include some class name that seem to get created dynamically.
Line 21933 in the following example is one. ( GeneratedMethodAccessor22 ) In other replica, the corresponding name was GeneratedMethodAccessor20 and this caused the replies from and checkpoints of replicas to be different.
As a simple temporary fix, I replaced all GeneratedMethodAccessor22  with GeneratedMethodAccessor?? in the replies.  

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1669)
21929   at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1660)
21930   at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlockInternal(FSNamesystem.java:1529)
21931   at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1473)
21932   at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:418)
21933   at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
21934   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
21935   at java.lang.reflect.Method.invoke(Method.java:597)
21936   at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:452)
21937   at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
Latest commit dc6f2da Jan 27, 2010