Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Wiki / Kb95

Kb95

Emulab FAQ: Troubleshooting: I got an error in my swapin that says 'Temporary Resource Shortage' - what does it mean?

Emulab FAQ: Troubleshooting: I got an error in my swapin that says 'Temporary Resource Shortage' - what does it mean?

assign is the program that takes your virtual topology and Emulab's physical topology, and decides which nodes, links, etc. to instantiate your experiment on. So, if it fails, we were not able to find suitable nodes for your experiment.

We first run assign with the currently available physical topology. If it finds a mapping, we swap your experiment in. If it fails, we try again, but on the full Emulab topology - the whole testbed, as if it were empty. This way, we can help you distinguish between experiment that simply cannot be swapped in right now, and ones that have a topology that we cannot instantiate for some reason.

Precheck errors returned by assign

When assign starts, it does some "Type prechecks" and "Mapping Prechecks" to find some common types of errors. In this case, we can usually tell you exactly which nodes in your virtual topology was a problem, and why. If the error message says available nodes, it means that there are not enough free nodes of the type available right now. If it says suitable nodes, this means that there are enought nodes of the type available, but some of them are not suitable for your experiment. Say, for example, that some of the nodes in your topology request a large number of interfaces. This message could then mean that there are enough free PCs, but not enough free PCs that meet your interface requirements.

Type Precheck Errors

No physical nodes of type T found
One or more of your nodes requested to be placed on a physical node of type T. This usually means that there are simply no nodes of that type available right now. In the case of a mapping failure on an empty testbed, though, it means that you asked for a type of node we don't have.
X nodes of type T requested, but only Y found
Similar to the error above; there were some nodes of type T available, but not enough for your experiment.
X nodes of type T requested, but you are only allowed to use Y
Similar to the two above, but in this case, the issue is not with the available physical topology, but with Emulab policies which limit the number of nodes of a given type you're allowed to use.
No physical nodes can satisfy vclass V
You have asked for a virtual equivalence class, but there are no nodes available that fit your request for the class.

Mapping Precheck Errors

These errors take the form: "No possible mapping for N: E", where N is the name of one of the nodes in your virtual topology, and E is some error message. Usually, there will be only one error, though in some rare cases, there could be more.

No links of type T found
Node N had at least one link of type T (the default link type, if you don't specify one, is Ethernet), but we didn't find any physical links of that type in the testbed.
Too many links of type T
We found some links of type T, but no physical node had enough to satisfy node N. For example, if you ask for 5 Ethernet links on the same node, Utah's Emulab will not be able to instantiate your experiment, since its nodes currently only have 4 links.
Too much bandwidth on emulated links!
If you're using multiplexed links, you will get this error if the total bandwidth to and from some virtual node exceeds the total amount of bandwidth on any of our nodes. For example, if all nodes in the testbed have 4 100Mbit links, and one of your vnodes has 500Mbits of aggregate bandwidth across all of its links, you will get this error.
No physical nodes have feature F
assign uses a system of features and desires to model miscellaneous mapping constraints. Nodes in your topology have desires, and we try to map those to features on the physical testbed. One example of this is disk images. We attach a desire to each node in your topology for the disk image you've requested for it. We then ensure that the physical nodes that you get have a feature indicating that your OS on them.

Other assign error messages

assign is a big, complex program that uses a randomized heuristic to find solutions to an NP-hard problem. Thus, some types of failures are more difficult than those above to attribute to a specific node or link. assign calls these violations of its mapping constraints. Below we give a brief description of what each type of violation means. Each violation is associated with an integer, which tells you how many violations of that type there were.

unassigned
One or more of the nodes in your topology was not mapped. This could come from a number of sources: there might not be enough nodes of the right type free, there may not be enough nodes with enough interfaces of sufficient speed available, etc.
pnode_load
If you were trying to instantiate an experiments with vnodes, then the best mapping found by assign places too many vnodes onto at least one physical nodes. This is most often caused by insufficient physical nodes being available.
no_connect
assign didn't find a mapping for a link for which both of the endpoints were assigned. For example, if you asked for two nodes of a type which don't have gigabit interfaces, and a gigabit link between them, you would get this violation.
link_users
When using vnodes, this violation means that the best solution assignhas found mixes multiplexed and non-multiplexed virtual link on the same physical link, which is not allowed. This likely means that you've asked for too many links on one vnode, or its links ask for too much bandwidth.
bandwidth
assign tries to avoid artifacts from over-use of bottleneck links in the testbed's physical topology by limiting the traffic across inter-switch trunks. This violation means that in the best solution found, an inter-switch link was oversubscribed. The most common cause of this is big (>50 node), high speed LANs. Consider using a different topology.
desires
See the section on desires above - this violation means that assign was not able to fulfill all of the desires in your submitted topology.
vclass
If you put a tb-make-hard-vtype in your NS file, this violation means that assign was unable to find a solution that fit the constraints of your vtype.
delay
This type of violation is currently not generated.
trivial_mix
This type of violation is currently not generated.
subnodes
Some nodes are hosted 'in' or 'on' other nodes. For example, the IXP network processors are hosted inside of a PC, and sensor net motes are hosted on a programming board. This violation means that assign was unable to find a mapping in which the host and subnode in your topology correspond to a host/subnode pair in the physical topology.
max_types
Emulab policy may prevent you from using too many nodes of a given type at a time. This violation indicates that the best solution found used too many nodes of some type
endpoints
This type of violation is currently not generated