-
Notifications
You must be signed in to change notification settings - Fork 269
Errors caused by invalid user input should not panic/abort/deadlock #1275
Copy link
Copy link
Closed
Labels
Component: MainComposing the core Shadow executableComposing the core Shadow executableType: EnhancementNew functionality or improved designNew functionality or improved design
Milestone
Description
There are a few places in Shadow that call panic() if user input is invalid, which prints a backtrace. Instead we should exit gracefully.
Known issues:
- panic when network graph file doesn't exist — Crash when network graph file does not exist #1459
- panic when the managed process binary doesn't exist - Provide a clearer error message when process binary isn't found #1522
- panic when data directory already exists
- panic when template directory does not exist
- abort (no message or backtrace) when the managed process path exists but is not executable
- panic when an out-of-range
network_node_idis given (networkgraph_nodeBandwidthDownBitspanicked at 'calledOption::unwrap()on aNonevalue') - panic when the configuration has no hosts (
config_getWorkerspanicked at 'calledOption::unwrap()on aNonevalue') - panic when the network has an edge with a latency of 0 ("Message: need nonzero latency to set buffer sizes, source=1 dest=2 send=0 recv=0")
- deadlock when a process specifies a
stop_timewherestop_time <= start_time - panic when a host IP address is specified as an IPv6 address
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Component: MainComposing the core Shadow executableComposing the core Shadow executableType: EnhancementNew functionality or improved designNew functionality or improved design