You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The main goals here are, in roughly decreasing order:
1. Make the startup flow of bootstrap agent more obvious/clear
2. Simplify the handoff from bootstrap agent to sled agent
3. Use fewer tokio `Mutex`es
4. In general, use less shared memory objects and more message passing
The two big changes I made to work towards those:
1. Removed the `bootstrap::Agent` type entirely. The bootstrap server
now spawns a tokio task that handles messages and holds the sled agent
state in a local, non-mutex variable that it is free to mutate as
needed.
2. Removed `HardwareMonitor`. This was the source of a lot of confusion
for me personally, and also made the handoff to sled-agent quite
complex. Now the bootstrap agent is solely responsible for monitoring
for hardware changes. (This is the place where I am most likely to have
introduced issues, hence needing to test this more.)
There are many smaller changes, including a few things that now happen
in a slightly different order (but I believe to be correct either way);
for example, prior to this PR, on a cold boot the sled-agent dropshot
server would start before the bootstrap agent dropshot server. Now, the
bootstrap server always starts first.
0 commit comments