tracing: Fix tracing

The store refactor (#1066) inadvertently broke runtime tracing as it
created new contexts containing trace spans.

Reworking the store changes to re-use the existing context resolves the
problem since runtime tracing assumes a single context.

Fixes #1277.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
This commit is contained in:
James O. D. Hunt 2019-03-01 17:25:18 +00:00
parent 2af09d1d58
commit c759cf5f37
2 changed files with 56 additions and 56 deletions

View File

@ -135,11 +135,11 @@ func DeleteSandbox(ctx context.Context, sandboxID string) (VCSandbox, error) {
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
// Fetch the sandbox from storage and create it. // Fetch the sandbox from storage and create it.
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
@ -168,11 +168,11 @@ func FetchSandbox(ctx context.Context, sandboxID string) (VCSandbox, error) {
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
// Fetch the sandbox from storage and create it. // Fetch the sandbox from storage and create it.
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
@ -205,11 +205,11 @@ func StartSandbox(ctx context.Context, sandboxID string) (VCSandbox, error) {
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
// Fetch the sandbox from storage and create it. // Fetch the sandbox from storage and create it.
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
@ -237,11 +237,11 @@ func StopSandbox(ctx context.Context, sandboxID string) (VCSandbox, error) {
return nil, errNeedSandbox return nil, errNeedSandbox
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
// Fetch the sandbox from storage and create it. // Fetch the sandbox from storage and create it.
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
@ -272,11 +272,11 @@ func RunSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor
} }
defer s.releaseStatelessSandbox() defer s.releaseStatelessSandbox()
lockFile, err := rwLockSandbox(s.id) lockFile, err := rwLockSandbox(ctx, s.id)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(s.id, lockFile) defer unlockSandbox(ctx, s.id, lockFile)
// Start the sandbox // Start the sandbox
err = s.Start() err = s.Start()
@ -331,15 +331,15 @@ func StatusSandbox(ctx context.Context, sandboxID string) (SandboxStatus, error)
return SandboxStatus{}, errNeedSandboxID return SandboxStatus{}, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return SandboxStatus{}, err return SandboxStatus{}, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
unlockSandbox(sandboxID, lockFile) unlockSandbox(ctx, sandboxID, lockFile)
return SandboxStatus{}, err return SandboxStatus{}, err
} }
defer s.releaseStatelessSandbox() defer s.releaseStatelessSandbox()
@ -377,11 +377,11 @@ func CreateContainer(ctx context.Context, sandboxID string, containerConfig Cont
return nil, nil, errNeedSandboxID return nil, nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -412,11 +412,11 @@ func DeleteContainer(ctx context.Context, sandboxID, containerID string) (VCCont
return nil, errNeedContainerID return nil, errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -441,11 +441,11 @@ func StartContainer(ctx context.Context, sandboxID, containerID string) (VCConta
return nil, errNeedContainerID return nil, errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -470,11 +470,11 @@ func StopContainer(ctx context.Context, sandboxID, containerID string) (VCContai
return nil, errNeedContainerID return nil, errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -499,11 +499,11 @@ func EnterContainer(ctx context.Context, sandboxID, containerID string, cmd type
return nil, nil, nil, errNeedContainerID return nil, nil, nil, errNeedContainerID
} }
lockFile, err := rLockSandbox(sandboxID) lockFile, err := rLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, nil, nil, err return nil, nil, nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -533,15 +533,15 @@ func StatusContainer(ctx context.Context, sandboxID, containerID string) (Contai
return ContainerStatus{}, errNeedContainerID return ContainerStatus{}, errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return ContainerStatus{}, err return ContainerStatus{}, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
unlockSandbox(sandboxID, lockFile) unlockSandbox(ctx, sandboxID, lockFile)
return ContainerStatus{}, err return ContainerStatus{}, err
} }
defer s.releaseStatelessSandbox() defer s.releaseStatelessSandbox()
@ -614,11 +614,11 @@ func KillContainer(ctx context.Context, sandboxID, containerID string, signal sy
return errNeedContainerID return errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return err return err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -661,11 +661,11 @@ func ProcessListContainer(ctx context.Context, sandboxID, containerID string, op
return nil, errNeedContainerID return nil, errNeedContainerID
} }
lockFile, err := rLockSandbox(sandboxID) lockFile, err := rLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -690,11 +690,11 @@ func UpdateContainer(ctx context.Context, sandboxID, containerID string, resourc
return errNeedContainerID return errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return err return err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -718,12 +718,12 @@ func StatsContainer(ctx context.Context, sandboxID, containerID string) (Contain
if containerID == "" { if containerID == "" {
return ContainerStats{}, errNeedContainerID return ContainerStats{}, errNeedContainerID
} }
lockFile, err := rLockSandbox(sandboxID) lockFile, err := rLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return ContainerStats{}, err return ContainerStats{}, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -743,11 +743,11 @@ func togglePauseContainer(ctx context.Context, sandboxID, containerID string, pa
return errNeedContainerID return errNeedContainerID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return err return err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -787,11 +787,11 @@ func AddDevice(ctx context.Context, sandboxID string, info deviceConfig.DeviceIn
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -807,11 +807,11 @@ func toggleInterface(ctx context.Context, sandboxID string, inf *vcTypes.Interfa
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -851,11 +851,11 @@ func ListInterfaces(ctx context.Context, sandboxID string) ([]*vcTypes.Interface
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rLockSandbox(sandboxID) lockFile, err := rLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -875,11 +875,11 @@ func UpdateRoutes(ctx context.Context, sandboxID string, routes []*vcTypes.Route
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {
@ -899,11 +899,11 @@ func ListRoutes(ctx context.Context, sandboxID string) ([]*vcTypes.Route, error)
return nil, errNeedSandboxID return nil, errNeedSandboxID
} }
lockFile, err := rLockSandbox(sandboxID) lockFile, err := rLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)
if err != nil { if err != nil {

View File

@ -567,8 +567,8 @@ func (s *Sandbox) storeSandbox() error {
return nil return nil
} }
func rLockSandbox(sandboxID string) (string, error) { func rLockSandbox(ctx context.Context, sandboxID string) (string, error) {
store, err := store.NewVCSandboxStore(context.Background(), sandboxID) store, err := store.NewVCSandboxStore(ctx, sandboxID)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -576,8 +576,8 @@ func rLockSandbox(sandboxID string) (string, error) {
return store.RLock() return store.RLock()
} }
func rwLockSandbox(sandboxID string) (string, error) { func rwLockSandbox(ctx context.Context, sandboxID string) (string, error) {
store, err := store.NewVCSandboxStore(context.Background(), sandboxID) store, err := store.NewVCSandboxStore(ctx, sandboxID)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -585,15 +585,15 @@ func rwLockSandbox(sandboxID string) (string, error) {
return store.Lock() return store.Lock()
} }
func unlockSandbox(sandboxID, token string) error { func unlockSandbox(ctx context.Context, sandboxID, token string) error {
// If the store no longer exists, we won't be able to unlock. // If the store no longer exists, we won't be able to unlock.
// Creating a new store for locking an item that does not even exist // Creating a new store for locking an item that does not even exist
// does not make sense. // does not make sense.
if !store.VCSandboxStoreExists(context.Background(), sandboxID) { if !store.VCSandboxStoreExists(ctx, sandboxID) {
return nil return nil
} }
store, err := store.NewVCSandboxStore(context.Background(), sandboxID) store, err := store.NewVCSandboxStore(ctx, sandboxID)
if err != nil { if err != nil {
return err return err
} }
@ -614,7 +614,7 @@ func fetchSandbox(ctx context.Context, sandboxID string) (sandbox *Sandbox, err
} }
// We're bootstrapping // We're bootstrapping
vcStore, err := store.NewVCSandboxStore(context.Background(), sandboxID) vcStore, err := store.NewVCSandboxStore(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -1457,11 +1457,11 @@ func togglePauseSandbox(ctx context.Context, sandboxID string, pause bool) (*San
return nil, errNeedSandbox return nil, errNeedSandbox
} }
lockFile, err := rwLockSandbox(sandboxID) lockFile, err := rwLockSandbox(ctx, sandboxID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer unlockSandbox(sandboxID, lockFile) defer unlockSandbox(ctx, sandboxID, lockFile)
// Fetch the sandbox from storage and create it. // Fetch the sandbox from storage and create it.
s, err := fetchSandbox(ctx, sandboxID) s, err := fetchSandbox(ctx, sandboxID)