[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DanteServer has a Timing Error Error on Startup?
Craig Milo Rogers wrote:
> No changed code here on my part. DanteCapsule attempts to
> call sendToNeighbor(), which needs rawSend privilege. It fails because
> it's running under the the wrong Principal. See the trace excerpt below.
D'oh. Of course. You're right.
There are two place the race condition could be happening. One, in
the flow that sets up the new protocol and passes the principal over
to it (Perhaps it is passing the principal along before being set
correctly in its own context). Second, inside the new flow for the
Protocol, if the prinicpal is being set too late.
I'm not seeing the problem here, but the following two patches should
help you narrow down the problem. Let me know which of these is
showing the wrong principal.
-Pat
----- ----- ---- --- --- -- - - - - -
Pat Tullmann tullmann@cs.utah.edu
Your research fills a much needed gap.
First, to ProtocolBooster.java:
diff -u -u -r1.16 ProtocolBooster.java
--- ProtocolBooster.java 2001/02/08 18:52:32 1.16
+++ ProtocolBooster.java 2001/04/20 18:09:54
@@ -242,6 +242,9 @@
// Allow the protocol to be loaded off the disk.
flow.exportClass(protocolName);
+ Trace.trace(Trace.ANTS_DYNLOAD, "ProtocolBooster.java: LOCAL_PROTOCOL "
+ +protocolName+ " principal is " +principal);
+
node.setPrincipal(principal);
/* Load and start it up */
Second to PrimordialNode.java:
diff -u -u -r1.27 PrimordialNode.java
--- PrimordialNode.java 2001/04/19 17:47:19 1.27
+++ PrimordialNode.java 2001/04/20 18:12:26
@@ -929,6 +929,10 @@
Node.abort(th, "Uh-oh. fireUpNewProtocolFlow() blew up.");
}
}
+
+ Trace.trace(Trace.ANTS_DYNLOAD, "installProtocol(pid="
+ +pid+ "; name=" +name+ "; principal=" +principal+ ")");
+
CommSpaceElement msg[] = {
new CommSpaceElement(ProtocolBooster.LOCAL_PROTOCOL),
new CommSpaceElement(name),
[ Janos ] [ OSKit ] [ Network Testbed ] [ Flick ] [ Fluke ]
Flux Research Group / Department of Computer Science / University of Utah