Skip to content

Instantly share code, notes, and snippets.

@mem
Created May 30, 2019 17:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mem/bb549849e2afccb878bfb79359cbe0df to your computer and use it in GitHub Desktop.
Save mem/bb549849e2afccb878bfb79359cbe0df to your computer and use it in GitHub Desktop.
Description of generic mount flow
@startuml
autonumber
hide footbox
participant "wrapper\n(stage 2)" as wrapper
participant "stage 1" as stage_1
participant master
participant "rpc server" as rpc_server
wrapper -> stage_1 ** : spawn
activate stage_1
note over stage_1: prepare config
stage_1 -> wrapper: send config
deactivate stage_1
note over wrapper: create socket pair A
note over wrapper: create socket pair B
wrapper -> master ** : spawn
note over wrapper: close A[0]
activate master
note over master: close A[1]
note over master: close B[0]
wrapper -> rpc_server ** : spawn
note over rpc_server: close B[1]
note over wrapper: close B[0]
note over wrapper: close B[1]
activate rpc_server
master -> rpc_server: request open over B[1]
rpc_server -> master: send fd over B[0]
note over master: mount passing\nfd as option
master -> wrapper: send fd over A[0]
note over wrapper: enter stage 2
note over wrapper: start pre-process\nuse fd
note over wrapper: start process
@enduml
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment