ci: Print go test stats (#6855)

Fixes #6676
This commit is contained in:
Mathias Fredriksson 2023-04-03 14:07:25 +03:00 committed by GitHub
parent 7738274b3e
commit d9d44c1188
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 4255 additions and 18 deletions

View File

@ -299,7 +299,14 @@ jobs:
echo "cover=false" >> $GITHUB_OUTPUT
fi
gotestsum --junitfile="gotests.xml" --packages="./..." -- -parallel=8 -timeout=7m -short -failfast $COVERAGE_FLAGS
gotestsum --junitfile="gotests.xml" --jsonfile="gotests.json" --packages="./..." -- -parallel=8 -timeout=7m -short -failfast $COVERAGE_FLAGS
- name: Print test stats
if: success() || failure()
run: |
# Artifacts are not available after rerunning a job,
# so we need to print the test stats to the log.
go run ./scripts/ci-report/main.go gotests.json | tee gotests_stats.json
- uses: actions/upload-artifact@v3
if: success() || failure()
@ -369,6 +376,13 @@ jobs:
run: |
make test-postgres
- name: Print test stats
if: success() || failure()
run: |
# Artifacts are not available after rerunning a job,
# so we need to print the test stats to the log.
go run ./scripts/ci-report/main.go gotests.json | tee gotests_stats.json
- uses: actions/upload-artifact@v3
if: success() || failure()
with:

View File

@ -24,4 +24,5 @@ extend-exclude = [
# These files contain base64 strings that confuse the detector
"**XService**.ts",
"**identity.go",
"scripts/ci-report/testdata/**",
]

8
.gitignore vendored
View File

@ -6,7 +6,8 @@
**/*.swp
gotests.coverage
gotests.xml
gotestsum.json
gotests_stats.json
gotests.json
node_modules/
vendor/
yarn-error.log
@ -29,9 +30,8 @@ site/e2e/states/*.json
site/playwright-report/*
site/.swc
# Make target for updating golden files.
cli/testdata/.gen-golden
helm/tests/testdata/.gen-golden
# Make target for updating golden files (any dir).
.gen-golden
# Build
/build/

View File

@ -9,7 +9,8 @@
**/*.swp
gotests.coverage
gotests.xml
gotestsum.json
gotests_stats.json
gotests.json
node_modules/
vendor/
yarn-error.log
@ -32,9 +33,8 @@ site/e2e/states/*.json
site/playwright-report/*
site/.swc
# Make target for updating golden files.
cli/testdata/.gen-golden
helm/tests/testdata/.gen-golden
# Make target for updating golden files (any dir).
.gen-golden
# Build
/build/

View File

@ -514,7 +514,7 @@ coderd/apidoc/swagger.json: $(shell find ./scripts/apidocgen $(FIND_EXCLUSIONS)
./scripts/apidocgen/generate.sh
yarn run --cwd=site format:write:only ../docs/api ../docs/manifest.json ../coderd/apidoc/swagger.json
update-golden-files: cli/testdata/.gen-golden helm/tests/testdata/.gen-golden
update-golden-files: cli/testdata/.gen-golden helm/tests/testdata/.gen-golden scripts/ci-report/testdata/.gen-golden
.PHONY: update-golden-files
cli/testdata/.gen-golden: $(wildcard cli/testdata/*.golden) $(wildcard cli/*.tpl) $(GO_SRC_FILES)
@ -525,6 +525,10 @@ helm/tests/testdata/.gen-golden: $(wildcard helm/tests/testdata/*.golden) $(GO_S
go test ./helm/tests -run=TestUpdateGoldenFiles -update
touch "$@"
scripts/ci-report/testdata/.gen-golden: $(wildcard scripts/ci-report/testdata/*) $(wildcard scripts/ci-report/*.go)
go test ./scripts/ci-report -run=TestOutputMatchesGoldenFile -update
touch "$@"
# Generate a prettierrc for the site package that uses relative paths for
# overrides. This allows us to share the same prettier config between the
# site and the root of the repo.
@ -596,6 +600,7 @@ test-postgres: test-clean test-postgres-docker
# more consistent execution.
DB=ci DB_FROM=$(shell go run scripts/migrate-ci/main.go) gotestsum \
--junitfile="gotests.xml" \
--jsonfile="gotests.json" \
--packages="./..." -- \
-covermode=atomic -coverprofile="gotests.coverage" -timeout=20m \
-parallel=4 \

View File

@ -0,0 +1,7 @@
# ci-report
This program generates a CI report from the `gotests.json` generated by `go test -json` (we use `gotestsum` as a frontend).
## Limitations
We won't generate any report/stats for tests that weren't run. To find all existing tests, we could use: `go test ./... -list=. -json`, but the time it takes is probably not worth it. Usually most tests will run, even if there are errors and we're using `-failfast`.

258
scripts/ci-report/main.go Normal file
View File

@ -0,0 +1,258 @@
package main
import (
"bufio"
"encoding/json"
"errors"
"fmt"
"io"
"os"
"strings"
"time"
"golang.org/x/exp/slices"
"golang.org/x/xerrors"
)
func main() {
if len(os.Args) != 2 {
_, _ = fmt.Println("usage: ci-report <gotests.json>")
os.Exit(1)
}
name := os.Args[1]
goTests, err := parseGoTestJSON(name)
if err != nil {
_, _ = fmt.Printf("error parsing gotestsum report: %v", err)
os.Exit(1)
}
rep, err := parseCIReport(goTests)
if err != nil {
_, _ = fmt.Printf("error parsing ci report: %v", err)
os.Exit(1)
}
err = printCIReport(os.Stdout, rep)
if err != nil {
_, _ = fmt.Printf("error printing report: %v", err)
os.Exit(1)
}
}
func parseGoTestJSON(name string) (GotestsumReport, error) {
f, err := os.Open(name)
if err != nil {
return GotestsumReport{}, xerrors.Errorf("error opening gotestsum json file: %w", err)
}
defer f.Close()
dec := json.NewDecoder(f)
var report GotestsumReport
for {
var e GotestsumReportEntry
err = dec.Decode(&e)
if errors.Is(err, io.EOF) {
break
}
if err != nil {
return GotestsumReport{}, xerrors.Errorf("error decoding json: %w", err)
}
e.Package = strings.TrimPrefix(e.Package, "github.com/coder/coder/")
report = append(report, e)
}
return report, nil
}
func parseCIReport(report GotestsumReport) (CIReport, error) {
packagesSortedByName := []string{}
packageTimes := map[string]float64{}
packageFail := map[string]int{}
packageSkip := map[string]bool{}
testTimes := map[string]float64{}
testSkip := map[string]bool{}
testOutput := map[string]string{}
testSortedByName := []string{}
timeouts := map[string]string{}
timeoutRunningTests := map[string]bool{}
for i, e := range report {
switch e.Action {
// A package/test may fail or pass.
case Fail:
if e.Test == "" {
packageTimes[e.Package] = *e.Elapsed
} else {
packageFail[e.Package]++
name := e.Package + "." + e.Test
testTimes[name] = *e.Elapsed
}
case Pass:
if e.Test == "" {
packageTimes[e.Package] = *e.Elapsed
} else {
name := e.Package + "." + e.Test
delete(testOutput, name)
testTimes[name] = *e.Elapsed
}
// Gather all output (deleted when irrelevant).
case Output:
name := e.Package + "." + e.Test // May be pkg.Test or pkg.
if _, ok := timeouts[name]; ok || strings.HasPrefix(e.Output, "panic: test timed out") {
timeouts[name] += e.Output
continue
}
if e.Test != "" {
name := e.Package + "." + e.Test
testOutput[name] += e.Output
}
// Packages start, tests run and either may be skipped.
case Start:
packagesSortedByName = append(packagesSortedByName, e.Package)
case Run:
name := e.Package + "." + e.Test
testSortedByName = append(testSortedByName, name)
case Skip:
if e.Test == "" {
packageSkip[e.Package] = true
} else {
name := e.Package + "." + e.Test
testSkip[name] = true
delete(testOutput, name)
}
// Ignore.
case Cont:
case Pause:
default:
return CIReport{}, xerrors.Errorf("unknown action: %v in entry %d (%v)", e.Action, i, e)
}
}
// Normalize timeout from "pkg." or "pkg.Test" to "pkg".
timeoutsNorm := make(map[string]string)
for k, v := range timeouts {
names := strings.SplitN(k, ".", 2)
pkg := names[0]
if _, ok := timeoutsNorm[pkg]; ok {
panic("multiple timeouts for package: " + pkg)
}
timeoutsNorm[pkg] = v
// Mark all running tests as timed out.
// panic: test timed out after 2s\nrunning tests:\n\tTestAgent_Session_TTY_Hushlogin (0s)\n\n ...
parts := strings.SplitN(v, "\n", 3)
if len(parts) == 3 && strings.HasPrefix(parts[1], "running tests:") {
s := bufio.NewScanner(strings.NewReader(parts[2]))
for s.Scan() {
name := s.Text()
if !strings.HasPrefix(name, "\tTest") {
break
}
name = strings.TrimPrefix(name, "\t")
name = strings.SplitN(name, " ", 2)[0]
timeoutRunningTests[pkg+"."+name] = true
packageFail[pkg]++
}
}
}
timeouts = timeoutsNorm
sortAZ := func(a, b string) bool { return a < b }
slices.SortFunc(packagesSortedByName, sortAZ)
slices.SortFunc(testSortedByName, sortAZ)
var rep CIReport
for _, pkg := range packagesSortedByName {
output, timeout := timeouts[pkg]
rep.Packages = append(rep.Packages, PackageReport{
Name: pkg,
Time: packageTimes[pkg],
Skip: packageSkip[pkg],
Fail: packageFail[pkg] > 0,
Timeout: timeout,
Output: output,
NumFailed: packageFail[pkg],
})
}
for _, test := range testSortedByName {
names := strings.SplitN(test, ".", 2)
skip := testSkip[test]
out, fail := testOutput[test]
rep.Tests = append(rep.Tests, TestReport{
Package: names[0],
Name: names[1],
Time: testTimes[test],
Skip: skip,
Fail: fail,
Timeout: timeoutRunningTests[test],
Output: out,
})
}
return rep, nil
}
func printCIReport(dst io.Writer, rep CIReport) error {
enc := json.NewEncoder(dst)
enc.SetIndent("", " ")
err := enc.Encode(rep)
if err != nil {
return xerrors.Errorf("error encoding json: %w", err)
}
return nil
}
type CIReport struct {
Packages []PackageReport `json:"packages"`
Tests []TestReport `json:"tests"`
}
type PackageReport struct {
Name string `json:"name"`
Time float64 `json:"time"`
Skip bool `json:"skip,omitempty"`
Fail bool `json:"fail,omitempty"`
NumFailed int `json:"num_failed,omitempty"`
Timeout bool `json:"timeout,omitempty"`
Output string `json:"output,omitempty"` // Output present e.g. for timeout.
}
type TestReport struct {
Package string `json:"package"`
Name string `json:"name"`
Time float64 `json:"time"`
Skip bool `json:"skip,omitempty"`
Fail bool `json:"fail,omitempty"`
Timeout bool `json:"timeout,omitempty"`
Output string `json:"output,omitempty"`
}
type GotestsumReport []GotestsumReportEntry
type GotestsumReportEntry struct {
Time time.Time `json:"Time"`
Action Action `json:"Action"`
Package string `json:"Package"`
Test string `json:"Test,omitempty"`
Output string `json:"Output,omitempty"`
Elapsed *float64 `json:"Elapsed,omitempty"`
}
type Action string
const (
Cont Action = "cont"
Fail Action = "fail"
Output Action = "output"
Pass Action = "pass"
Pause Action = "pause"
Run Action = "run"
Skip Action = "skip"
Start Action = "start"
)

View File

@ -0,0 +1,89 @@
package main
import (
"bytes"
"flag"
"os"
"path/filepath"
"runtime"
"testing"
"github.com/stretchr/testify/require"
)
// To update the golden files:
// make update-golden-files
var updateGoldenFiles = flag.Bool("update", false, "update .golden files")
func TestOutputMatchesGoldenFile(t *testing.T) {
t.Parallel()
for _, name := range []string{
// Sample created via:
// gotestsum --jsonfile ./scripts/ci-report/testdata/gotests.json.sample -- \
// ./agent ./cli ./cli/cliui \
// -count=1 \
// -timeout=5m \
// -parallel=24 \
// -run='^(TestServer|TestAgent_Session|TestGitAuth$|TestPrompt$)'
filepath.Join("testdata", "gotests.json.sample"),
// Sample created via:
// gotestsum --jsonfile ./scripts/ci-report/testdata/gotests-timeout.json.sample -- \
// ./agent -run='^TestAgent_Session' -count=1 -timeout=5m -parallel=24 -timeout=2s
filepath.Join("testdata", "gotests-timeout.json.sample"),
// https://github.com/golang/go/issues/57305
filepath.Join("testdata", "gotests-go-issue-57305.json.sample"),
filepath.Join("testdata", "gotests-go-issue-57305-parallel.json.sample"),
} {
name := name
t.Run(name, func(t *testing.T) {
t.Parallel()
goTests, err := parseGoTestJSON(name)
if err != nil {
t.Fatalf("error parsing gotestsum report: %v", err)
}
rep, err := parseCIReport(goTests)
if err != nil {
t.Fatalf("error parsing ci report: %v", err)
}
var b bytes.Buffer
err = printCIReport(&b, rep)
if err != nil {
t.Fatalf("error printing report: %v", err)
}
goldenFile := filepath.Join("testdata", "ci-report_"+filepath.Base(name)+".golden")
got := b.Bytes()
if updateGoldenFile(t, goldenFile, got) {
return
}
want := readGoldenFile(t, goldenFile)
if runtime.GOOS == "windows" {
want = bytes.ReplaceAll(want, []byte("\r\n"), []byte("\n"))
got = bytes.ReplaceAll(got, []byte("\r\n"), []byte("\n"))
}
require.Equal(t, string(want), string(got))
})
}
}
func readGoldenFile(t *testing.T, name string) []byte {
t.Helper()
b, err := os.ReadFile(name)
require.NoError(t, err, "error reading golden file")
return b
}
func updateGoldenFile(t *testing.T, name string, content []byte) bool {
t.Helper()
if *updateGoldenFiles {
err := os.WriteFile(name, content, 0o600)
require.NoError(t, err, "error updating golden file")
return true
}
return false
}

View File

@ -0,0 +1,28 @@
{
"packages": [
{
"name": "test",
"time": 1.007,
"fail": true,
"num_failed": 2,
"timeout": true,
"output": "panic: test timed out after 1s\nrunning tests:\n\tTestHello (1s)\n\tTestWorld (1s)\n\ngoroutine 17 [running]:\ntesting.(*M).startAlarm.func1()\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2240 +0x3b9\ncreated by time.goFunc\n\t/home/mafredri/sdk/go1.20rc1/src/time/sleep.go:176 +0x32\n\ngoroutine 1 [chan receive]:\ntesting.tRunner.func1()\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1541 +0x4a5\ntesting.tRunner(0xc000007ba0, 0xc00025fc88)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1581 +0x144\ntesting.runTests(0xc000110500?, {0x739320, 0x2, 0x2}, {0x0?, 0x100c00010f098?, 0x743080?})\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2033 +0x489\ntesting.(*M).Run(0xc000110500)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1905 +0x63a\nmain.main()\n\t_testmain.go:49 +0x1aa\n\ngoroutine 7 [sleep]:\ntime.Sleep(0x77359400)\n\t/home/mafredri/sdk/go1.20rc1/src/runtime/time.go:195 +0x135\ngithub.com/coder/coder/test.TestWorld(0xc0002801a0)\n\t/home/mafredri/src/mafredri/test/main_test.go:16 +0x28\ntesting.tRunner(0xc0002801a0, 0x607348)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1575 +0x10b\ncreated by testing.(*T).Run\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1628 +0x3ea\n"
}
],
"tests": [
{
"package": "test",
"name": "TestHello",
"time": 1,
"timeout": true
},
{
"package": "test",
"name": "TestWorld",
"time": 0,
"fail": true,
"timeout": true,
"output": "=== RUN TestWorld\n=== PAUSE TestWorld\n=== CONT TestWorld\n"
}
]
}

View File

@ -0,0 +1,20 @@
{
"packages": [
{
"name": "test",
"time": 1.012,
"fail": true,
"num_failed": 1,
"timeout": true,
"output": "panic: test timed out after 1s\nrunning tests:\n\tTestHello (1s)\n\ngoroutine 33 [running]:\ntesting.(*M).startAlarm.func1()\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2240 +0x3b9\ncreated by time.goFunc\n\t/home/mafredri/sdk/go1.20rc1/src/time/sleep.go:176 +0x32\n\ngoroutine 1 [runnable]:\ntesting.(*T).Run(0xc000083040, {0x5be88c?, 0x4ce6c5?}, 0x6072a0)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1629 +0x405\ntesting.runTests.func1(0x7438e0?)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2035 +0x45\ntesting.tRunner(0xc000083040, 0xc00025fc88)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1575 +0x10b\ntesting.runTests(0xc0000c0500?, {0x739320, 0x2, 0x2}, {0x0?, 0x100c0000ab938?, 0x743080?})\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2033 +0x489\ntesting.(*M).Run(0xc0000c0500)\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1905 +0x63a\nmain.main()\n\t_testmain.go:49 +0x1aa\n\ngoroutine 20 [runnable]:\nruntime.goexit1()\n\t/home/mafredri/sdk/go1.20rc1/src/runtime/proc.go:3616 +0x54\nruntime.goexit()\n\t/home/mafredri/sdk/go1.20rc1/src/runtime/asm_amd64.s:1599 +0x6\ncreated by testing.(*T).Run\n\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1628 +0x3ea\n"
}
],
"tests": [
{
"package": "test",
"name": "TestHello",
"time": 1,
"timeout": true
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,50 @@
{"Time":"2022-12-14T09:55:13.434571388Z","Action":"start","Package":"github.com/coder/coder/test"}
{"Time":"2022-12-14T09:55:13.43773263Z","Action":"run","Package":"github.com/coder/coder/test","Test":"TestHello"}
{"Time":"2022-12-14T09:55:13.437785391Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"=== RUN TestHello\n"}
{"Time":"2022-12-14T09:55:13.437810964Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"=== PAUSE TestHello\n"}
{"Time":"2022-12-14T09:55:13.437814886Z","Action":"pause","Package":"github.com/coder/coder/test","Test":"TestHello"}
{"Time":"2022-12-14T09:55:13.437818949Z","Action":"run","Package":"github.com/coder/coder/test","Test":"TestWorld"}
{"Time":"2022-12-14T09:55:13.437821771Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestWorld","Output":"=== RUN TestWorld\n"}
{"Time":"2022-12-14T09:55:13.437825158Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestWorld","Output":"=== PAUSE TestWorld\n"}
{"Time":"2022-12-14T09:55:13.437832833Z","Action":"pause","Package":"github.com/coder/coder/test","Test":"TestWorld"}
{"Time":"2022-12-14T09:55:13.437836266Z","Action":"cont","Package":"github.com/coder/coder/test","Test":"TestHello"}
{"Time":"2022-12-14T09:55:13.437838918Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"=== CONT TestHello\n"}
{"Time":"2022-12-14T09:55:13.437843993Z","Action":"cont","Package":"github.com/coder/coder/test","Test":"TestWorld"}
{"Time":"2022-12-14T09:55:13.437846615Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestWorld","Output":"=== CONT TestWorld\n"}
{"Time":"2022-12-14T09:55:14.438061577Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":" main_test.go:11: Hello\n"}
{"Time":"2022-12-14T09:55:14.438107688Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"--- PASS: TestHello (1.00s)\n"}
{"Time":"2022-12-14T09:55:14.440255876Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"panic: test timed out after 1s\n"}
{"Time":"2022-12-14T09:55:14.440265298Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"running tests:\n"}
{"Time":"2022-12-14T09:55:14.440268652Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\tTestHello (1s)\n"}
{"Time":"2022-12-14T09:55:14.440271669Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\tTestWorld (1s)\n"}
{"Time":"2022-12-14T09:55:14.440278625Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:55:14.440282363Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 17 [running]:\n"}
{"Time":"2022-12-14T09:55:14.440301449Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.(*M).startAlarm.func1()\n"}
{"Time":"2022-12-14T09:55:14.440328262Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2240 +0x3b9\n"}
{"Time":"2022-12-14T09:55:14.440345871Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"created by time.goFunc\n"}
{"Time":"2022-12-14T09:55:14.440377095Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/time/sleep.go:176 +0x32\n"}
{"Time":"2022-12-14T09:55:14.440386657Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:55:14.440401693Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 1 [chan receive]:\n"}
{"Time":"2022-12-14T09:55:14.44043358Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.tRunner.func1()\n"}
{"Time":"2022-12-14T09:55:14.440460579Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1541 +0x4a5\n"}
{"Time":"2022-12-14T09:55:14.440490626Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.tRunner(0xc000007ba0, 0xc00025fc88)\n"}
{"Time":"2022-12-14T09:55:14.440516299Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1581 +0x144\n"}
{"Time":"2022-12-14T09:55:14.440631272Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.runTests(0xc000110500?, {0x739320, 0x2, 0x2}, {0x0?, 0x100c00010f098?, 0x743080?})\n"}
{"Time":"2022-12-14T09:55:14.440659038Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2033 +0x489\n"}
{"Time":"2022-12-14T09:55:14.440688016Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.(*M).Run(0xc000110500)\n"}
{"Time":"2022-12-14T09:55:14.440716982Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1905 +0x63a\n"}
{"Time":"2022-12-14T09:55:14.440734567Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"main.main()\n"}
{"Time":"2022-12-14T09:55:14.440795664Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t_testmain.go:49 +0x1aa\n"}
{"Time":"2022-12-14T09:55:14.440804655Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:55:14.440822033Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 7 [sleep]:\n"}
{"Time":"2022-12-14T09:55:14.440845811Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"time.Sleep(0x77359400)\n"}
{"Time":"2022-12-14T09:55:14.440873545Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/runtime/time.go:195 +0x135\n"}
{"Time":"2022-12-14T09:55:14.440892453Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"github.com/coder/coder/test.TestWorld(0xc0002801a0)\n"}
{"Time":"2022-12-14T09:55:14.440928546Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/src/mafredri/test/main_test.go:16 +0x28\n"}
{"Time":"2022-12-14T09:55:14.440978215Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.tRunner(0xc0002801a0, 0x607348)\n"}
{"Time":"2022-12-14T09:55:14.440996639Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1575 +0x10b\n"}
{"Time":"2022-12-14T09:55:14.441008328Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"created by testing.(*T).Run\n"}
{"Time":"2022-12-14T09:55:14.441045254Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1628 +0x3ea\n"}
{"Time":"2022-12-14T09:55:14.441926648Z","Action":"pass","Package":"github.com/coder/coder/test","Test":"TestHello","Elapsed":1}
{"Time":"2022-12-14T09:55:14.441961258Z","Action":"output","Package":"github.com/coder/coder/test","Output":"FAIL\tgithub.com/coder/coder/test\t1.007s\n"}
{"Time":"2022-12-14T09:55:14.441978318Z","Action":"fail","Package":"github.com/coder/coder/test","Elapsed":1.007}

View File

@ -0,0 +1,39 @@
{"Time":"2022-12-14T09:49:01.562401799Z","Action":"start","Package":"github.com/coder/coder/test"}
{"Time":"2022-12-14T09:49:01.569546938Z","Action":"run","Package":"github.com/coder/coder/test","Test":"TestHello"}
{"Time":"2022-12-14T09:49:01.569700427Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"=== RUN TestHello\n"}
{"Time":"2022-12-14T09:49:02.569759117Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":" main_test.go:11: Hello\n"}
{"Time":"2022-12-14T09:49:02.56982657Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"--- PASS: TestHello (1.00s)\n"}
{"Time":"2022-12-14T09:49:02.572963923Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"panic: test timed out after 1s\n"}
{"Time":"2022-12-14T09:49:02.572982687Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"running tests:\n"}
{"Time":"2022-12-14T09:49:02.572992095Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\tTestHello (1s)\n"}
{"Time":"2022-12-14T09:49:02.573000907Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:49:02.573019868Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 33 [running]:\n"}
{"Time":"2022-12-14T09:49:02.573029067Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.(*M).startAlarm.func1()\n"}
{"Time":"2022-12-14T09:49:02.573038878Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2240 +0x3b9\n"}
{"Time":"2022-12-14T09:49:02.573064315Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"created by time.goFunc\n"}
{"Time":"2022-12-14T09:49:02.573079975Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/time/sleep.go:176 +0x32\n"}
{"Time":"2022-12-14T09:49:02.573097493Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:49:02.573119064Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 1 [runnable]:\n"}
{"Time":"2022-12-14T09:49:02.573141104Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.(*T).Run(0xc000083040, {0x5be88c?, 0x4ce6c5?}, 0x6072a0)\n"}
{"Time":"2022-12-14T09:49:02.573162696Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1629 +0x405\n"}
{"Time":"2022-12-14T09:49:02.573178743Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.runTests.func1(0x7438e0?)\n"}
{"Time":"2022-12-14T09:49:02.573203585Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2035 +0x45\n"}
{"Time":"2022-12-14T09:49:02.57321895Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.tRunner(0xc000083040, 0xc00025fc88)\n"}
{"Time":"2022-12-14T09:49:02.573239542Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1575 +0x10b\n"}
{"Time":"2022-12-14T09:49:02.573342015Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.runTests(0xc0000c0500?, {0x739320, 0x2, 0x2}, {0x0?, 0x100c0000ab938?, 0x743080?})\n"}
{"Time":"2022-12-14T09:49:02.573376752Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:2033 +0x489\n"}
{"Time":"2022-12-14T09:49:02.573403856Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"testing.(*M).Run(0xc0000c0500)\n"}
{"Time":"2022-12-14T09:49:02.573433691Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1905 +0x63a\n"}
{"Time":"2022-12-14T09:49:02.573456763Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"main.main()\n"}
{"Time":"2022-12-14T09:49:02.573483156Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t_testmain.go:49 +0x1aa\n"}
{"Time":"2022-12-14T09:49:02.573503088Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\n"}
{"Time":"2022-12-14T09:49:02.573520911Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"goroutine 20 [runnable]:\n"}
{"Time":"2022-12-14T09:49:02.573539195Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"runtime.goexit1()\n"}
{"Time":"2022-12-14T09:49:02.573576101Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/runtime/proc.go:3616 +0x54\n"}
{"Time":"2022-12-14T09:49:02.573596375Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"runtime.goexit()\n"}
{"Time":"2022-12-14T09:49:02.573620424Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/runtime/asm_amd64.s:1599 +0x6\n"}
{"Time":"2022-12-14T09:49:02.573637148Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"created by testing.(*T).Run\n"}
{"Time":"2022-12-14T09:49:02.573690092Z","Action":"output","Package":"github.com/coder/coder/test","Test":"TestHello","Output":"\t/home/mafredri/sdk/go1.20rc1/src/testing/testing.go:1628 +0x3ea\n"}
{"Time":"2022-12-14T09:49:02.574702109Z","Action":"pass","Package":"github.com/coder/coder/test","Test":"TestHello","Elapsed":1}
{"Time":"2022-12-14T09:49:02.57473959Z","Action":"output","Package":"github.com/coder/coder/test","Output":"FAIL\tgithub.com/coder/coder/test\t1.012s\n"}
{"Time":"2022-12-14T09:49:02.574754586Z","Action":"fail","Package":"github.com/coder/coder/test","Elapsed":1.012}

View File

@ -0,0 +1,382 @@
{"Time":"2023-03-29T13:59:30.419140864Z","Action":"start","Package":"github.com/coder/coder/agent"}
{"Time":"2023-03-29T13:59:30.440137227Z","Action":"run","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionExec"}
{"Time":"2023-03-29T13:59:30.440225617Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionExec","Output":"=== RUN TestAgent_SessionExec\n"}
{"Time":"2023-03-29T13:59:30.440252351Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionExec","Output":"=== PAUSE TestAgent_SessionExec\n"}
{"Time":"2023-03-29T13:59:30.440264139Z","Action":"pause","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionExec"}
{"Time":"2023-03-29T13:59:30.44029211Z","Action":"run","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYShell"}
{"Time":"2023-03-29T13:59:30.440307898Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYShell","Output":"=== RUN TestAgent_SessionTTYShell\n"}
{"Time":"2023-03-29T13:59:30.440330948Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYShell","Output":"=== PAUSE TestAgent_SessionTTYShell\n"}
{"Time":"2023-03-29T13:59:30.440340646Z","Action":"pause","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYShell"}
{"Time":"2023-03-29T13:59:30.440351592Z","Action":"run","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYExitCode"}
{"Time":"2023-03-29T13:59:30.440360503Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYExitCode","Output":"=== RUN TestAgent_SessionTTYExitCode\n"}
{"Time":"2023-03-29T13:59:30.440373253Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYExitCode","Output":"=== PAUSE TestAgent_SessionTTYExitCode\n"}
{"Time":"2023-03-29T13:59:30.440389091Z","Action":"pause","Package":"github.com/coder/coder/agent","Test":"TestAgent_SessionTTYExitCode"}
{"Time":"2023-03-29T13:59:30.440406592Z","Action":"run","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD"}
{"Time":"2023-03-29T13:59:30.440417518Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":"=== RUN TestAgent_Session_TTY_MOTD\n"}
{"Time":"2023-03-29T13:59:30.68885571Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.688 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:270\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) tun device\n"}
{"Time":"2023-03-29T13:59:30.688902548Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.688 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:274\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) OS network configurator\n"}
{"Time":"2023-03-29T13:59:30.688936919Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.688 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:278\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) DNS configurator\n"}
{"Time":"2023-03-29T13:59:30.688952573Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.688 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: using dns.noopManager\n"}
{"Time":"2023-03-29T13:59:30.688978288Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.688 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:334\u003e\tNewUserspaceEngine\tlink state: interfaces.State{defaultRoute=eth0 ifs={eth0:[172.20.0.2/16]} v4=true v6=false}\n"}
{"Time":"2023-03-29T13:59:30.689138933Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:306\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP read buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.689169612Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:310\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP write buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.689278237Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:306\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP read buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.689311927Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:310\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP write buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.689422904Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:666\u003e\tNewConn\t[v1] couldn't create raw v4 disco listener, using regular listener instead: raw disco listening disabled, SO_MARK unavailable\n"}
{"Time":"2023-03-29T13:59:30.689462324Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:672\u003e\tNewConn\t[v1] couldn't create raw v6 disco listener, using regular listener instead: raw disco listening disabled, SO_MARK unavailable\n"}
{"Time":"2023-03-29T13:59:30.689635363Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1056\u003e\t(*Conn).DiscoPublicKey\tmagicsock: disco key = d:1ad81e5115245108\n"}
{"Time":"2023-03-29T13:59:30.689668719Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:412\u003e\tNewUserspaceEngine\tCreating WireGuard device...\n"}
{"Time":"2023-03-29T13:59:30.689762323Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:437\u003e\tNewUserspaceEngine\tBringing WireGuard device up...\n"}
{"Time":"2023-03-29T13:59:30.689824046Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] UDP bind has been updated\n"}
{"Time":"2023-03-29T13:59:30.689876569Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Interface state was Down, requested Up, now Up\n"}
{"Time":"2023-03-29T13:59:30.689906309Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:441\u003e\tNewUserspaceEngine\tBringing router up...\n"}
{"Time":"2023-03-29T13:59:30.689964141Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:21\u003e\tfakeRouter.Up\t[v1] warning: fakeRouter.Up: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.690006177Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:449\u003e\tNewUserspaceEngine\tClearing router settings...\n"}
{"Time":"2023-03-29T13:59:30.690054052Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.689 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:26\u003e\tfakeRouter.Set\t[v1] warning: fakeRouter.Set: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.690100827Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:453\u003e\tNewUserspaceEngine\tStarting link monitor...\n"}
{"Time":"2023-03-29T13:59:30.690166644Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:456\u003e\tNewUserspaceEngine\tEngine created.\n"}
{"Time":"2023-03-29T13:59:30.690333879Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2444\u003e\t(*Conn).SetPrivateKey\tmagicsock: SetPrivateKey called (init)\n"}
{"Time":"2023-03-29T13:59:30.69067189Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:187\u003e\tNewConn\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.690716053Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 0 peers\n"}
{"Time":"2023-03-29T13:59:30.690874768Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1241\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): no matching peer\n"}
{"Time":"2023-03-29T13:59:30.690920653Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [INFO]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:188\u003e\t(*agent).runLoop\tconnecting to coderd\n"}
{"Time":"2023-03-29T13:59:30.691236077Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.690 [INFO]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:286\u003e\t(*agent).run\tfetched metadata\t{\"metadata\": {\"git_auth_configs\": 0, \"vscode_port_proxy_uri\": \"\", \"apps\": null, \"derpmap\": {\"Regions\": {\"1\": {\"EmbeddedRelay\": false, \"RegionID\": 1, \"RegionCode\": \"test\", \"RegionName\": \"Test\", \"Nodes\": [{\"Name\": \"t2\", \"RegionID\": 1, \"HostName\": \"\", \"IPv4\": \"127.0.0.1\", \"IPv6\": \"none\", \"STUNPort\": 55526, \"DERPPort\": 33325, \"InsecureForTests\": true}]}}}, \"environment_variables\": null, \"startup_script\": \"\", \"startup_script_timeout\": 0, \"directory\": \"\", \"motd_file\": \"/tmp/TestAgent_Session_TTY_MOTD2921078/001/motd\", \"shutdown_script\": \"\", \"shutdown_script_timeout\": 0}}\n"}
{"Time":"2023-03-29T13:59:30.691266926Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:263\u003e\t(*agent).setLifecycle\tset lifecycle state\t{\"state\": \"starting\", \"last\": \"\"}\n"}
{"Time":"2023-03-29T13:59:30.691645376Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:270\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) tun device\n"}
{"Time":"2023-03-29T13:59:30.691681569Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:274\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) OS network configurator\n"}
{"Time":"2023-03-29T13:59:30.691697309Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:278\u003e\tNewUserspaceEngine\t[v1] using fake (no-op) DNS configurator\n"}
{"Time":"2023-03-29T13:59:30.691834882Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: using dns.noopManager\n"}
{"Time":"2023-03-29T13:59:30.691894444Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:334\u003e\tNewUserspaceEngine\tlink state: interfaces.State{defaultRoute=eth0 ifs={eth0:[172.20.0.2/16]} v4=true v6=false}\n"}
{"Time":"2023-03-29T13:59:30.691990111Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:306\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP read buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.692037682Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.691 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:310\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP write buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.692117014Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:306\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP read buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.69217036Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock_linux.go:310\u003e\ttrySetSocketBuffer.func1\tmagicsock: failed to force-set UDP write buffer size to 7340032: operation not permitted\n"}
{"Time":"2023-03-29T13:59:30.692223588Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:666\u003e\tNewConn\t[v1] couldn't create raw v4 disco listener, using regular listener instead: raw disco listening disabled, SO_MARK unavailable\n"}
{"Time":"2023-03-29T13:59:30.692269654Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:672\u003e\tNewConn\t[v1] couldn't create raw v6 disco listener, using regular listener instead: raw disco listening disabled, SO_MARK unavailable\n"}
{"Time":"2023-03-29T13:59:30.692436067Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1056\u003e\t(*Conn).DiscoPublicKey\tmagicsock: disco key = d:19af0f91ddbc2673\n"}
{"Time":"2023-03-29T13:59:30.692486153Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:412\u003e\tNewUserspaceEngine\tCreating WireGuard device...\n"}
{"Time":"2023-03-29T13:59:30.692600638Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:437\u003e\tNewUserspaceEngine\tBringing WireGuard device up...\n"}
{"Time":"2023-03-29T13:59:30.692643998Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] UDP bind has been updated\n"}
{"Time":"2023-03-29T13:59:30.692706838Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Interface state was Down, requested Up, now Up\n"}
{"Time":"2023-03-29T13:59:30.692750609Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:441\u003e\tNewUserspaceEngine\tBringing router up...\n"}
{"Time":"2023-03-29T13:59:30.692799088Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:21\u003e\tfakeRouter.Up\t[v1] warning: fakeRouter.Up: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.692845724Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:449\u003e\tNewUserspaceEngine\tClearing router settings...\n"}
{"Time":"2023-03-29T13:59:30.692892868Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:26\u003e\tfakeRouter.Set\t[v1] warning: fakeRouter.Set: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.692943768Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:453\u003e\tNewUserspaceEngine\tStarting link monitor...\n"}
{"Time":"2023-03-29T13:59:30.692994617Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.692 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:456\u003e\tNewUserspaceEngine\tEngine created.\n"}
{"Time":"2023-03-29T13:59:30.693130711Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2444\u003e\t(*Conn).SetPrivateKey\tmagicsock: SetPrivateKey called (init)\n"}
{"Time":"2023-03-29T13:59:30.693421144Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:187\u003e\tNewConn\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.693467015Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 0 peers\n"}
{"Time":"2023-03-29T13:59:30.693571784Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:402\u003e\t(*agent).run\trunning tailnet connection coordinator\n"}
{"Time":"2023-03-29T13:59:30.693599238Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [INFO]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:620\u003e\t(*agent).runCoordinator\tconnected to coordination endpoint\n"}
{"Time":"2023-03-29T13:59:30.693798141Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.693 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.693596Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": []}}\n"}
{"Time":"2023-03-29T13:59:30.699379222Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.699 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v4 - started\n"}
{"Time":"2023-03-29T13:59:30.702070777Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.701 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v6 - started\n"}
{"Time":"2023-03-29T13:59:30.702521256Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.702 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming receiveDERP - started\n"}
{"Time":"2023-03-29T13:59:30.705825444Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.705 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.690745Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": []}}\n"}
{"Time":"2023-03-29T13:59:30.705969348Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.705 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1241\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): no matching peer\n"}
{"Time":"2023-03-29T13:59:30.706047452Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.705 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:229\u003e\t(*agent).reportLifecycleLoop\treporting lifecycle state\t{\"state\": \"starting\"}\n"}
{"Time":"2023-03-29T13:59:30.706117981Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.706 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:263\u003e\t(*agent).setLifecycle\tset lifecycle state\t{\"state\": \"ready\", \"last\": \"starting\"}\n"}
{"Time":"2023-03-29T13:59:30.706167259Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.706 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:229\u003e\t(*agent).reportLifecycleLoop\treporting lifecycle state\t{\"state\": \"ready\"}\n"}
{"Time":"2023-03-29T13:59:30.70672858Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.706 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v4 - started\n"}
{"Time":"2023-03-29T13:59:30.707193213Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.707 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v6 - started\n"}
{"Time":"2023-03-29T13:59:30.707713648Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.707 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:58\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming receiveDERP - started\n"}
{"Time":"2023-03-29T13:59:30.711327936Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:423\u003e\t(*Conn).UpdateNodes\tno preferred DERP, skipping node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.693596Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": []}}\n"}
{"Time":"2023-03-29T13:59:30.711351236Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.711484437Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client.netstack)\t\u003ctailscale.com/wgengine/netstack/netstack.go:367\u003e\t(*Impl).updateIPs\t[v2] netstack: registered IP fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\n"}
{"Time":"2023-03-29T13:59:30.711757724Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 0/0 peers)\n"}
{"Time":"2023-03-29T13:59:30.711895059Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] UAPI: Updating private key\n"}
{"Time":"2023-03-29T13:59:30.712001206Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:921\u003e\t(*userspaceEngine).Reconfig\twgengine: Reconfig: configuring router\n"}
{"Time":"2023-03-29T13:59:30.712012787Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.711 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:26\u003e\tfakeRouter.Set\t[v1] warning: fakeRouter.Set: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.712044402Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.712 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:931\u003e\t(*userspaceEngine).Reconfig\twgengine: Reconfig: configuring DNS\n"}
{"Time":"2023-03-29T13:59:30.712080254Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.712 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: Set: {DefaultResolvers:[] Routes:{} SearchDomains:[] Hosts:0}\n"}
{"Time":"2023-03-29T13:59:30.712196969Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.712 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: Resolvercfg: {Routes:{} Hosts:0 LocalDomains:[]}\n"}
{"Time":"2023-03-29T13:59:30.712224408Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.712 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: OScfg: {Nameservers:[] SearchDomains:[] MatchDomains:[] Hosts:[]}\n"}
{"Time":"2023-03-29T13:59:30.712251498Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.712 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.713321731Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:423\u003e\t(*Conn).UpdateNodes\tno preferred DERP, skipping node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.690745Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": []}}\n"}
{"Time":"2023-03-29T13:59:30.713345626Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.713438727Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.netstack)\t\u003ctailscale.com/wgengine/netstack/netstack.go:367\u003e\t(*Impl).updateIPs\t[v2] netstack: registered IP fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\n"}
{"Time":"2023-03-29T13:59:30.713542134Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 0/0 peers)\n"}
{"Time":"2023-03-29T13:59:30.713653049Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] UAPI: Updating private key\n"}
{"Time":"2023-03-29T13:59:30.713794466Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:921\u003e\t(*userspaceEngine).Reconfig\twgengine: Reconfig: configuring router\n"}
{"Time":"2023-03-29T13:59:30.713831747Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:26\u003e\tfakeRouter.Set\t[v1] warning: fakeRouter.Set: not implemented.\n"}
{"Time":"2023-03-29T13:59:30.713873796Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:931\u003e\t(*userspaceEngine).Reconfig\twgengine: Reconfig: configuring DNS\n"}
{"Time":"2023-03-29T13:59:30.71391978Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: Set: {DefaultResolvers:[] Routes:{} SearchDomains:[] Hosts:0}\n"}
{"Time":"2023-03-29T13:59:30.713976575Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: Resolvercfg: {Routes:{} Hosts:0 LocalDomains:[]}\n"}
{"Time":"2023-03-29T13:59:30.71401037Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.713 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/net/dns/logger.go:98\u003e\tNewManager.func1\tdns: OScfg: {Nameservers:[] SearchDomains:[] MatchDomains:[] Hosts:[]}\n"}
{"Time":"2023-03-29T13:59:30.714059091Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.714 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.762911536Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.762 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest=false hair= portmap= v4a=127.0.0.1:40423 derp=1 derpdist=1v4:2ms\n"}
{"Time":"2023-03-29T13:59:30.763010472Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.762 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1092\u003e\t(*Conn).setNearestDERP\tmagicsock: home is now derp-1 (test)\n"}
{"Time":"2023-03-29T13:59:30.763604178Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.763 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2759\u003e\t(*Conn).logEndpointChange\tmagicsock: endpoints changed: 127.0.0.1:40423 (stun), 172.20.0.2:40423 (local)\n"}
{"Time":"2023-03-29T13:59:30.764002966Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.763 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.76358648 +0000 UTC m=+0.341643633 Peers:[] LocalAddrs:[{Addr:127.0.0.1:40423 Type:stun} {Addr:172.20.0.2:40423 Type:local}] DERPs:0}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.764243833Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.764 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest=false hair= portmap= v4a=127.0.0.1:51077 derp=1 derpdist=1v4:1ms\n"}
{"Time":"2023-03-29T13:59:30.764368314Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.764 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1092\u003e\t(*Conn).setNearestDERP\tmagicsock: home is now derp-1 (test)\n"}
{"Time":"2023-03-29T13:59:30.764813395Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.764 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2759\u003e\t(*Conn).logEndpointChange\tmagicsock: endpoints changed: 127.0.0.1:51077 (stun), 172.20.0.2:51077 (local)\n"}
{"Time":"2023-03-29T13:59:30.765032404Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.764 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.764800711 +0000 UTC m=+0.342857833 Peers:[] LocalAddrs:[{Addr:127.0.0.1:51077 Type:stun} {Addr:172.20.0.2:51077 Type:local}] DERPs:0}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.766066288Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.765 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1480\u003e\t(*Conn).derpWriteChanOfAddr\tmagicsock: adding connection to derp-1 for home-keep-alive\n"}
{"Time":"2023-03-29T13:59:30.766178166Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.766 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2747\u003e\t(*Conn).logActiveDerpLocked\tmagicsock: 1 active derp conns: derp-1=cr0s,wr0s\n"}
{"Time":"2023-03-29T13:59:30.766459711Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.766 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.766177132 +0000 UTC m=+0.344234254 Peers:[] LocalAddrs:[{Addr:127.0.0.1:40423 Type:stun} {Addr:172.20.0.2:40423 Type:local}] DERPs:1}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.766803271Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.766 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:246\u003e\tNewConn.func7\tnetinfo callback\t{\"netinfo\": {\"MappingVariesByDestIP\": false, \"HairPinning\": null, \"WorkingIPv6\": false, \"OSHasIPv6\": false, \"WorkingUDP\": true, \"WorkingICMPv4\": false, \"UPnP\": false, \"PMP\": false, \"PCP\": false, \"PreferredDERP\": 1, \"DERPLatency\": {\"1-v4\": 0.001851767}}}\n"}
{"Time":"2023-03-29T13:59:30.767031778Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.766 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.763989Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.767745656Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.767 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:423\u003e\t(*Conn).UpdateNodes\tno preferred DERP, skipping node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.763989Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.767803589Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.767 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.7681905Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.767 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.769269486Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.769 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1480\u003e\t(*Conn).derpWriteChanOfAddr\tmagicsock: adding connection to derp-1 for home-keep-alive\n"}
{"Time":"2023-03-29T13:59:30.769423531Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.769 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2747\u003e\t(*Conn).logActiveDerpLocked\tmagicsock: 1 active derp conns: derp-1=cr0s,wr0s\n"}
{"Time":"2023-03-29T13:59:30.76964587Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.769 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1241\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): no matching peer\n"}
{"Time":"2023-03-29T13:59:30.76985461Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.769 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:246\u003e\tNewConn.func7\tnetinfo callback\t{\"netinfo\": {\"MappingVariesByDestIP\": false, \"HairPinning\": null, \"WorkingIPv6\": false, \"OSHasIPv6\": false, \"WorkingUDP\": true, \"WorkingICMPv4\": false, \"UPnP\": false, \"PMP\": false, \"PCP\": false, \"PreferredDERP\": 1, \"DERPLatency\": {\"1-v4\": 0.001439212}}}\n"}
{"Time":"2023-03-29T13:59:30.770057617Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.769 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.765018Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.770543054Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.770 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:423\u003e\t(*Conn).UpdateNodes\tno preferred DERP, skipping node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.765018Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 0, \"derp_latency\": null, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.770576926Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.770 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.770805865Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.770 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.771214469Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.771 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/derp/derphttp/derphttp_client.go:401\u003e\t(*Client).connect\tderphttp.Client.Connect: connecting to derp-1 (test)\n"}
{"Time":"2023-03-29T13:59:30.771672983Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.771 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.77151Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.001851767}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.77196162Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.771 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:426\u003e\t(*Conn).UpdateNodes\tadding node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.77151Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.001851767}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.772249568Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.772286673Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 1 peers\n"}
{"Time":"2023-03-29T13:59:30.772417712Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 0/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.772485685Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.772763889Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/derp/derphttp/derphttp_client.go:401\u003e\t(*Client).connect\tderphttp.Client.Connect: connecting to derp-1 (test)\n"}
{"Time":"2023-03-29T13:59:30.772990304Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.772846286 +0000 UTC m=+0.350903351 Peers:[] LocalAddrs:[{Addr:127.0.0.1:51077 Type:stun} {Addr:172.20.0.2:51077 Type:local}] DERPs:1}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.77305219Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.772 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.772974Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.001439212}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.773283722Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.773 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:426\u003e\t(*Conn).UpdateNodes\tadding node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.772974Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.001439212}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.773486653Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.773 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.773528203Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.773 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 1 peers\n"}
{"Time":"2023-03-29T13:59:30.773629095Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.773 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 0/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.773696573Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.773 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.781245292Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.781 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1705\u003e\t(*Conn).runDerpReader\tmagicsock: derp-1 connected; connGen=1\n"}
{"Time":"2023-03-29T13:59:30.781769525Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.781 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1705\u003e\t(*Conn).runDerpReader\tmagicsock: derp-1 connected; connGen=1\n"}
{"Time":"2023-03-29T13:59:30.821304727Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.821 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest=false hair= portmap= v4a=127.0.0.1:51077 derp=1 derpdist=1v4:4ms\n"}
{"Time":"2023-03-29T13:59:30.823014931Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.822 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest=false hair= portmap= v4a=127.0.0.1:40423 derp=1 derpdist=1v4:1ms\n"}
{"Time":"2023-03-29T13:59:30.842118323Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): sending disco ping to [tUb7c] ...\n"}
{"Time":"2023-03-29T13:59:30.842325421Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1599\u003e\t(*Conn).setPeerLastDerpLocked\t[v1] magicsock: derp route for [tUb7c] set to derp-1 (shared home)\n"}
{"Time":"2023-03-29T13:59:30.842743216Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:1599\u003e\t(*Conn).setPeerLastDerpLocked\t[v1] magicsock: derp route for [s78jr] set to derp-1 (shared home)\n"}
{"Time":"2023-03-29T13:59:30.842835058Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:4387\u003e\t(*endpoint).handlePongConnLocked\tmagicsock: disco: node [tUb7c] d:19af0f91ddbc2673 now using 172.20.0.2:51077\n"}
{"Time":"2023-03-29T13:59:30.842945452Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): sending disco ping to [tUb7c] ...\n"}
{"Time":"2023-03-29T13:59:30.843017307Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.842 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4): sending disco ping to [tUb7c] ...\n"}
{"Time":"2023-03-29T13:59:30.843455848Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 1/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.843724102Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Created\n"}
{"Time":"2023-03-29T13:59:30.843761613Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Updating endpoint\n"}
{"Time":"2023-03-29T13:59:30.843824129Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Removing all allowedips\n"}
{"Time":"2023-03-29T13:59:30.843866119Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Adding allowedip\n"}
{"Time":"2023-03-29T13:59:30.843967657Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Updating persistent keepalive interval\n"}
{"Time":"2023-03-29T13:59:30.843978436Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Starting\n"}
{"Time":"2023-03-29T13:59:30.844024904Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.843 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Sending handshake initiation\n"}
{"Time":"2023-03-29T13:59:30.844361886Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:584\u003e\t(*userspaceEngine).noteRecvActivity\twgengine: idle peer [s78jr] now active, reconfiguring WireGuard\n"}
{"Time":"2023-03-29T13:59:30.84441357Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 1/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.844612597Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Created\n"}
{"Time":"2023-03-29T13:59:30.844652368Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Updating endpoint\n"}
{"Time":"2023-03-29T13:59:30.844692139Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Removing all allowedips\n"}
{"Time":"2023-03-29T13:59:30.844742198Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Adding allowedip\n"}
{"Time":"2023-03-29T13:59:30.844790446Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Updating persistent keepalive interval\n"}
{"Time":"2023-03-29T13:59:30.844839046Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Starting\n"}
{"Time":"2023-03-29T13:59:30.845054904Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.844 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Received handshake initiation\n"}
{"Time":"2023-03-29T13:59:30.845091562Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.845 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Sending handshake response\n"}
{"Time":"2023-03-29T13:59:30.845575288Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.845 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.845411293 +0000 UTC m=+0.423468375 Peers:[{TxBytes:92 RxBytes:148 LastHandshake:1970-01-01 00:00:00 +0000 UTC NodeKey:nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359}] LocalAddrs:[{Addr:127.0.0.1:51077 Type:stun} {Addr:172.20.0.2:51077 Type:local}] DERPs:1}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.846073274Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.846 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Received handshake response\n"}
{"Time":"2023-03-29T13:59:30.846152172Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.846 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:4387\u003e\t(*endpoint).handlePongConnLocked\tmagicsock: disco: node [s78jr] d:1ad81e5115245108 now using 172.20.0.2:40423\n"}
{"Time":"2023-03-29T13:59:30.846323335Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.846 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:225\u003e\tNewConn.func6\twireguard status\t{\"status\": \"\\u0026{AsOf:2023-03-29 13:59:30.846216257 +0000 UTC m=+0.424273332 Peers:[{TxBytes:148 RxBytes:92 LastHandshake:2023-03-29 13:59:30.846070709 +0000 UTC NodeKey:nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b}] LocalAddrs:[{Addr:127.0.0.1:40423 Type:stun} {Addr:172.20.0.2:40423 Type:local}] DERPs:1}\", \"err\": null}\n"}
{"Time":"2023-03-29T13:59:30.846820565Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.846 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:4387\u003e\t(*endpoint).handlePongConnLocked\tmagicsock: disco: node [tUb7c] d:19af0f91ddbc2673 now using 127.0.0.1:51077\n"}
{"Time":"2023-03-29T13:59:30.872225511Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" agent_test.go:298: 2023-03-29 13:59:30.872: cmd: stdin: \"exit 0\\r\"\n"}
{"Time":"2023-03-29T13:59:30.872911108Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.872 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest= hair= portmap= v4a=127.0.0.1:51077 derp=1 derpdist=1v4:1ms\n"}
{"Time":"2023-03-29T13:59:30.873619058Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.873 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:246\u003e\tNewConn.func7\tnetinfo callback\t{\"netinfo\": {\"MappingVariesByDestIP\": null, \"HairPinning\": null, \"WorkingIPv6\": false, \"OSHasIPv6\": false, \"WorkingUDP\": true, \"WorkingICMPv4\": false, \"UPnP\": false, \"PMP\": false, \"PCP\": false, \"PreferredDERP\": 1, \"DERPLatency\": {\"1-v4\": 0.000537347}}}\n"}
{"Time":"2023-03-29T13:59:30.873901772Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.873 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.873622Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.000537347}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.874560964Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.874 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/logger.go:98\u003e\tNewConn.func6\tnetcheck: [v1] report: udp=true v6=false v6os=false mapvarydest= hair= portmap= v4a=127.0.0.1:40423 derp=1 derpdist=1v4:0s\n"}
{"Time":"2023-03-29T13:59:30.875202519Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.874 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:426\u003e\t(*Conn).UpdateNodes\tadding node\t{\"node\": {\"id\": 7662552826698250063, \"as_of\": \"2023-03-29T13:59:30.873622Z\", \"key\": \"nodekey:b546fb7238fa44f6eb2eca16d2f6bc594b0fddda4dec86205f89af643b13b37b\", \"disco\": \"discokey:19af0f91ddbc267311e247d5dcefbf2c73a92431c7efac1902ced549bc2fd71c\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.000537347}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:49d6:b259:b7ac:b1b2:48f4/128\"], \"endpoints\": [\"127.0.0.1:51077\", \"172.20.0.2:51077\"]}}\n"}
{"Time":"2023-03-29T13:59:30.875651396Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.875 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:246\u003e\tNewConn.func7\tnetinfo callback\t{\"netinfo\": {\"MappingVariesByDestIP\": null, \"HairPinning\": null, \"WorkingIPv6\": false, \"OSHasIPv6\": false, \"WorkingUDP\": true, \"WorkingICMPv4\": false, \"UPnP\": false, \"PMP\": false, \"PCP\": false, \"PreferredDERP\": 1, \"DERPLatency\": {\"1-v4\": 0.0001832}}}\n"}
{"Time":"2023-03-29T13:59:30.875737105Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.875 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:642\u003e\t(*Conn).sendNode.func1\tsending node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.875642Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.0001832}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.876040926Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.875 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:426\u003e\t(*Conn).UpdateNodes\tadding node\t{\"node\": {\"id\": 3088035564585519863, \"as_of\": \"2023-03-29T13:59:30.875642Z\", \"key\": \"nodekey:b3bf23adfe2e0f25fd088299b4fedb0da1a938fc36d2c925b85332f4cf681359\", \"disco\": \"discokey:1ad81e511524510849b5f4d4d0c86a4ff083af67002259e793939de53bc1c421\", \"preferred_derp\": 1, \"derp_latency\": {\"1-v4\": 0.0001832}, \"derp_forced_websockets\": {}, \"addresses\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"allowed_ips\": [\"fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8/128\"], \"endpoints\": [\"127.0.0.1:40423\", \"172.20.0.2:40423\"]}}\n"}
{"Time":"2023-03-29T13:59:30.876278217Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.8763513Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 1 peers\n"}
{"Time":"2023-03-29T13:59:30.87651371Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 1/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.876622881Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - UAPI: Updating persistent keepalive interval\n"}
{"Time":"2023-03-29T13:59:30.876654135Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Sending keepalive packet\n"}
{"Time":"2023-03-29T13:59:30.876695566Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.876878296Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(client)\t\u003cgithub.com/coder/coder/tailnet/conn.go:454\u003e\t(*Conn).UpdateNodes\tupdating network map\n"}
{"Time":"2023-03-29T13:59:30.876944605Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2578\u003e\t(*Conn).SetNetworkMap\t[v1] magicsock: got updated network map; 1 peers\n"}
{"Time":"2023-03-29T13:59:30.877050858Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.876 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:706\u003e\t(*userspaceEngine).maybeReconfigWireguardLocked\twgengine: Reconfig: configuring userspace WireGuard config (with 1/1 peers)\n"}
{"Time":"2023-03-29T13:59:30.877194231Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.877 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - UAPI: Updating persistent keepalive interval\n"}
{"Time":"2023-03-29T13:59:30.877218701Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.877 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Sending keepalive packet\n"}
{"Time":"2023-03-29T13:59:30.877269173Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.877 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:967\u003e\t(*userspaceEngine).Reconfig\t[v1] wgengine: Reconfig done\n"}
{"Time":"2023-03-29T13:59:30.877353148Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:121: 2023-03-29 13:59:30.877: cmd: \"exit 0\"\n"}
{"Time":"2023-03-29T13:59:30.877482007Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.877 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Receiving keepalive packet\n"}
{"Time":"2023-03-29T13:59:30.877522599Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:30.877 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Receiving keepalive packet\n"}
{"Time":"2023-03-29T13:59:31.212200169Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:31.212 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8): sending disco ping to [s78jr] ...\n"}
{"Time":"2023-03-29T13:59:31.711519305Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:31.711 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8): sending disco ping to [s78jr] ...\n"}
{"Time":"2023-03-29T13:59:32.2114982Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.211 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8): sending disco ping to [s78jr] ...\n"}
{"Time":"2023-03-29T13:59:32.277108499Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:83: 2023-03-29 13:59:32.277: cmd: closing tpty: close\n"}
{"Time":"2023-03-29T13:59:32.277144197Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:74: 2023-03-29 13:59:32.277: cmd: closing pty\n"}
{"Time":"2023-03-29T13:59:32.277157734Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:110: 2023-03-29 13:59:32.277: cmd: copy done: read /dev/ptmx: file already closed\n"}
{"Time":"2023-03-29T13:59:32.277164721Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:111: 2023-03-29 13:59:32.277: cmd: closing out\n"}
{"Time":"2023-03-29T13:59:32.2771729Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:113: 2023-03-29 13:59:32.277: cmd: closed out: read /dev/ptmx: file already closed\n"}
{"Time":"2023-03-29T13:59:32.277306699Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:76: 2023-03-29 13:59:32.277: cmd: closed pty: \u003cnil\u003e\n"}
{"Time":"2023-03-29T13:59:32.277350733Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:74: 2023-03-29 13:59:32.277: cmd: closing logw\n"}
{"Time":"2023-03-29T13:59:32.277374575Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:76: 2023-03-29 13:59:32.277: cmd: closed logw: \u003cnil\u003e\n"}
{"Time":"2023-03-29T13:59:32.277394938Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:74: 2023-03-29 13:59:32.277: cmd: closing logr\n"}
{"Time":"2023-03-29T13:59:32.277415507Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:76: 2023-03-29 13:59:32.277: cmd: closed logr: \u003cnil\u003e\n"}
{"Time":"2023-03-29T13:59:32.277434743Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" ptytest.go:102: 2023-03-29 13:59:32.277: cmd: closed tpty\n"}
{"Time":"2023-03-29T13:59:32.277579778Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [INFO]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:201\u003e\t(*agent).runLoop\tdisconnected from coderd\n"}
{"Time":"2023-03-29T13:59:32.277611563Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2736\u003e\t(*Conn).closeDerpLocked\tmagicsock: closing connection to derp-1 (conn-close), age 2s\n"}
{"Time":"2023-03-29T13:59:32.277638668Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2747\u003e\t(*Conn).logActiveDerpLocked\tmagicsock: 0 active derp conns\n"}
{"Time":"2023-03-29T13:59:32.277693383Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:31\u003e\tfakeRouter.Close\t[v1] warning: fakeRouter.Close: not implemented.\n"}
{"Time":"2023-03-29T13:59:32.277732009Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Device closing\n"}
{"Time":"2023-03-29T13:59:32.277947928Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v6 - stopped\n"}
{"Time":"2023-03-29T13:59:32.277973674Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v4 - stopped\n"}
{"Time":"2023-03-29T13:59:32.278017899Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.277 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming receiveDERP - stopped\n"}
{"Time":"2023-03-29T13:59:32.278057207Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [tUb7c] - Stopping\n"}
{"Time":"2023-03-29T13:59:32.278134475Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(client.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Device closed\n"}
{"Time":"2023-03-29T13:59:32.278241902Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:263\u003e\t(*agent).setLifecycle\tset lifecycle state\t{\"state\": \"shutting_down\", \"last\": \"ready\"}\n"}
{"Time":"2023-03-29T13:59:32.278284628Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:263\u003e\t(*agent).setLifecycle\tset lifecycle state\t{\"state\": \"off\", \"last\": \"shutting_down\"}\n"}
{"Time":"2023-03-29T13:59:32.278337186Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent)\t\u003cgithub.com/coder/coder/agent/agent.go:229\u003e\t(*agent).reportLifecycleLoop\treporting lifecycle state\t{\"state\": \"off\"}\n"}
{"Time":"2023-03-29T13:59:32.27868397Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2736\u003e\t(*Conn).closeDerpLocked\tmagicsock: closing connection to derp-1 (conn-close), age 2s\n"}
{"Time":"2023-03-29T13:59:32.278698095Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/magicsock/magicsock.go:2747\u003e\t(*Conn).logActiveDerpLocked\tmagicsock: 0 active derp conns\n"}
{"Time":"2023-03-29T13:59:32.278769886Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/router/router_fake.go:31\u003e\tfakeRouter.Close\t[v1] warning: fakeRouter.Close: not implemented.\n"}
{"Time":"2023-03-29T13:59:32.278808018Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Device closing\n"}
{"Time":"2023-03-29T13:59:32.278879735Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming receiveDERP - stopped\n"}
{"Time":"2023-03-29T13:59:32.278965521Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.278 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/userspace.go:1254\u003e\t(*userspaceEngine).Ping\tping(fd7a:115c:a1e0:4574:9c80:638b:7d8b:1bd8): sending disco ping to [s78jr] ...\n"}
{"Time":"2023-03-29T13:59:32.279089367Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.279 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v6 - stopped\n"}
{"Time":"2023-03-29T13:59:32.279122263Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.279 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Routine: receive incoming v4 - stopped\n"}
{"Time":"2023-03-29T13:59:32.279168949Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.279 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] [s78jr] - Stopping\n"}
{"Time":"2023-03-29T13:59:32.279275932Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" t.go:81: 2023-03-29 13:59:32.279 [DEBUG]\t(agent.tailnet.wgengine)\t\u003ctailscale.com/wgengine/wglog/wglog.go:81\u003e\tNewLogger.func1\twg: [v2] Device closed\n"}
{"Time":"2023-03-29T13:59:32.279696417Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":" stuntest.go:63: STUN server shutdown\n"}
{"Time":"2023-03-29T13:59:32.279872392Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Output":"--- PASS: TestAgent_Session_TTY_MOTD (1.84s)\n"}
{"Time":"2023-03-29T13:59:32.279886475Z","Action":"pass","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_MOTD","Elapsed":1.84}
{"Time":"2023-03-29T13:59:32.27989796Z","Action":"run","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin"}
{"Time":"2023-03-29T13:59:32.279902938Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"=== RUN TestAgent_Session_TTY_Hushlogin\n"}
{"Time":"2023-03-29T13:59:32.457943185Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"panic: test timed out after 2s\n"}
{"Time":"2023-03-29T13:59:32.45796911Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"running tests:\n"}
{"Time":"2023-03-29T13:59:32.457977422Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\tTestAgent_Session_TTY_Hushlogin (0s)\n"}
{"Time":"2023-03-29T13:59:32.457982677Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.457987323Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 411 [running]:\n"}
{"Time":"2023-03-29T13:59:32.457991361Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*M).startAlarm.func1()\n"}
{"Time":"2023-03-29T13:59:32.457995716Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:2241 +0x3b9\n"}
{"Time":"2023-03-29T13:59:32.4580029Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by time.goFunc\n"}
{"Time":"2023-03-29T13:59:32.458007365Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/time/sleep.go:176 +0x32\n"}
{"Time":"2023-03-29T13:59:32.45801203Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.45801607Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 1 [chan receive]:\n"}
{"Time":"2023-03-29T13:59:32.458020121Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*T).Run(0xc0004e1040, {0x16a5e92?, 0x535fa5?}, 0x17462c0)\n"}
{"Time":"2023-03-29T13:59:32.458024235Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1630 +0x405\n"}
{"Time":"2023-03-29T13:59:32.458028654Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.runTests.func1(0x236db60?)\n"}
{"Time":"2023-03-29T13:59:32.45803313Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:2036 +0x45\n"}
{"Time":"2023-03-29T13:59:32.458037122Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.tRunner(0xc0004e1040, 0xc000589bb8)\n"}
{"Time":"2023-03-29T13:59:32.458041079Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1576 +0x10b\n"}
{"Time":"2023-03-29T13:59:32.45804729Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.runTests(0xc000341a40?, {0x235c580, 0x21, 0x21}, {0x4182d0?, 0xc000589c78?, 0x236cb40?})\n"}
{"Time":"2023-03-29T13:59:32.458051787Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:2034 +0x489\n"}
{"Time":"2023-03-29T13:59:32.458055836Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*M).Run(0xc000341a40)\n"}
{"Time":"2023-03-29T13:59:32.458059703Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1906 +0x63a\n"}
{"Time":"2023-03-29T13:59:32.458066931Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"go.uber.org/goleak.VerifyTestMain({0x18f5540?, 0xc000341a40?}, {0x0, 0x0, 0x0})\n"}
{"Time":"2023-03-29T13:59:32.458071333Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/.local/go/pkg/mod/go.uber.org/goleak@v1.2.1/testmain.go:53 +0x6b\n"}
{"Time":"2023-03-29T13:59:32.458075235Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.TestMain(...)\n"}
{"Time":"2023-03-29T13:59:32.458081052Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:53\n"}
{"Time":"2023-03-29T13:59:32.45808506Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"main.main()\n"}
{"Time":"2023-03-29T13:59:32.458088903Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t_testmain.go:115 +0x1e5\n"}
{"Time":"2023-03-29T13:59:32.458094468Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.458102106Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 9 [chan receive]:\n"}
{"Time":"2023-03-29T13:59:32.45810621Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*T).Parallel(0xc0004e11e0)\n"}
{"Time":"2023-03-29T13:59:32.45811231Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1384 +0x225\n"}
{"Time":"2023-03-29T13:59:32.458116485Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.TestAgent_SessionExec(0x0?)\n"}
{"Time":"2023-03-29T13:59:32.458120426Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:188 +0x33\n"}
{"Time":"2023-03-29T13:59:32.458126141Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.tRunner(0xc0004e11e0, 0x1746298)\n"}
{"Time":"2023-03-29T13:59:32.458130428Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1576 +0x10b\n"}
{"Time":"2023-03-29T13:59:32.458135189Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by testing.(*T).Run\n"}
{"Time":"2023-03-29T13:59:32.458144082Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1629 +0x3ea\n"}
{"Time":"2023-03-29T13:59:32.458150718Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.458156738Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 10 [chan receive]:\n"}
{"Time":"2023-03-29T13:59:32.458165162Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*T).Parallel(0xc0004e1520)\n"}
{"Time":"2023-03-29T13:59:32.458171886Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1384 +0x225\n"}
{"Time":"2023-03-29T13:59:32.458178556Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.TestAgent_SessionTTYShell(0xc0004e1520)\n"}
{"Time":"2023-03-29T13:59:32.458182782Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:213 +0x36\n"}
{"Time":"2023-03-29T13:59:32.458188646Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.tRunner(0xc0004e1520, 0x17462a8)\n"}
{"Time":"2023-03-29T13:59:32.458192664Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1576 +0x10b\n"}
{"Time":"2023-03-29T13:59:32.458196426Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by testing.(*T).Run\n"}
{"Time":"2023-03-29T13:59:32.458200247Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1629 +0x3ea\n"}
{"Time":"2023-03-29T13:59:32.458204698Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.458208395Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 11 [chan receive]:\n"}
{"Time":"2023-03-29T13:59:32.458215562Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.(*T).Parallel(0xc0004e1860)\n"}
{"Time":"2023-03-29T13:59:32.458219487Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1384 +0x225\n"}
{"Time":"2023-03-29T13:59:32.458223369Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.TestAgent_SessionTTYExitCode(0xc0004e1520?)\n"}
{"Time":"2023-03-29T13:59:32.458228633Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:244 +0x36\n"}
{"Time":"2023-03-29T13:59:32.458234377Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.tRunner(0xc0004e1860, 0x17462a0)\n"}
{"Time":"2023-03-29T13:59:32.458238258Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1576 +0x10b\n"}
{"Time":"2023-03-29T13:59:32.458242179Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by testing.(*T).Run\n"}
{"Time":"2023-03-29T13:59:32.458246008Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1629 +0x3ea\n"}
{"Time":"2023-03-29T13:59:32.458249635Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.45825516Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 408 [runnable]:\n"}
{"Time":"2023-03-29T13:59:32.458282465Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"math/big.nat.montgomery({0xc004aa4500?, 0x10?, 0x26?}, {0xc004aa4280?, 0x10?, 0x26?}, {0xc004aa4280?, 0x10?, 0x26?}, {0xc000732820, ...}, ...)\n"}
{"Time":"2023-03-29T13:59:32.458291741Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/math/big/nat.go:216 +0x565\n"}
{"Time":"2023-03-29T13:59:32.458330298Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"math/big.nat.expNNMontgomery({0xc004aa4280, 0xc0003c2e70?, 0x26}, {0xc004a9adc0?, 0x21?, 0x24?}, {0xc004a9ac80, 0x10, 0x24?}, {0xc000732820, ...})\n"}
{"Time":"2023-03-29T13:59:32.458336764Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/math/big/nat.go:1271 +0xb1c\n"}
{"Time":"2023-03-29T13:59:32.458384114Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"math/big.nat.expNN({0xc004aa4280?, 0x14?, 0x22c2900?}, {0xc004a9adc0?, 0x10, 0x14}, {0xc004a9ac80?, 0x10, 0x14?}, {0xc000732820, ...}, ...)\n"}
{"Time":"2023-03-29T13:59:32.458393699Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/math/big/nat.go:996 +0x3b1\n"}
{"Time":"2023-03-29T13:59:32.458403406Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"math/big.nat.probablyPrimeMillerRabin({0xc000732820?, 0x10, 0x14}, 0x15, 0x1)\n"}
{"Time":"2023-03-29T13:59:32.458413208Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/math/big/prime.go:106 +0x5b8\n"}
{"Time":"2023-03-29T13:59:32.458420936Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"math/big.(*Int).ProbablyPrime(0xc0047208c0, 0x14)\n"}
{"Time":"2023-03-29T13:59:32.458424869Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/math/big/prime.go:78 +0x225\n"}
{"Time":"2023-03-29T13:59:32.458430384Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"crypto/rand.Prime({0x18f04c0, 0xc00007e020}, 0x400)\n"}
{"Time":"2023-03-29T13:59:32.45843919Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/crypto/rand/util.go:55 +0x1e5\n"}
{"Time":"2023-03-29T13:59:32.45845888Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"crypto/rsa.GenerateMultiPrimeKey({0x18f04c0, 0xc00007e020}, 0x2, 0x800)\n"}
{"Time":"2023-03-29T13:59:32.458469074Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/crypto/rsa/rsa.go:369 +0x745\n"}
{"Time":"2023-03-29T13:59:32.458474102Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"crypto/rsa.GenerateKey(...)\n"}
{"Time":"2023-03-29T13:59:32.45847985Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/crypto/rsa/rsa.go:264\n"}
{"Time":"2023-03-29T13:59:32.458483767Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent.(*agent).init(0xc00485eea0, {0x1902c20?, 0xc00485d770})\n"}
{"Time":"2023-03-29T13:59:32.458489397Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent.go:810 +0x6c\n"}
{"Time":"2023-03-29T13:59:32.458522193Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent.New({{0x190cbc0, 0xc0005b7710}, {0x166d829, 0x4}, {0x166d829, 0x4}, 0x17461d8, {0x1907c90, 0xc000278280}, 0x45d964b800, ...})\n"}
{"Time":"2023-03-29T13:59:32.458531042Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent.go:134 +0x549\n"}
{"Time":"2023-03-29T13:59:32.458565925Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.setupAgent(0xc00485eb60, {0x0, {0x0, 0x0}, {0x0, 0x0, 0x0}, 0xc0005b8da0, 0x0, {0x0, ...}, ...}, ...)\n"}
{"Time":"2023-03-29T13:59:32.458576217Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:1568 +0x63e\n"}
{"Time":"2023-03-29T13:59:32.458605192Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.setupSSHSession(0xc00485eb60, {0x0, {0x0, 0x0}, {0x0, 0x0, 0x0}, 0x0, 0x0, {0x0, ...}, ...})\n"}
{"Time":"2023-03-29T13:59:32.458614801Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:1524 +0xc5\n"}
{"Time":"2023-03-29T13:59:32.458625161Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"github.com/coder/coder/agent_test.TestAgent_Session_TTY_Hushlogin(0xc00485eb60)\n"}
{"Time":"2023-03-29T13:59:32.458630015Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/src/coder/coder/agent/agent_test.go:330 +0x2fa\n"}
{"Time":"2023-03-29T13:59:32.458635887Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"testing.tRunner(0xc00485eb60, 0x17462c0)\n"}
{"Time":"2023-03-29T13:59:32.458639744Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1576 +0x10b\n"}
{"Time":"2023-03-29T13:59:32.458643595Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by testing.(*T).Run\n"}
{"Time":"2023-03-29T13:59:32.458649393Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/testing/testing.go:1629 +0x3ea\n"}
{"Time":"2023-03-29T13:59:32.458653156Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.458657314Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 409 [IO wait]:\n"}
{"Time":"2023-03-29T13:59:32.458662763Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.runtime_pollWait(0x7f5230766628, 0x72)\n"}
{"Time":"2023-03-29T13:59:32.458668522Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/runtime/netpoll.go:306 +0x89\n"}
{"Time":"2023-03-29T13:59:32.45867585Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*pollDesc).wait(0xc00475bf80?, 0xc0005ec5e2?, 0x0)\n"}
{"Time":"2023-03-29T13:59:32.458681918Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32\n"}
{"Time":"2023-03-29T13:59:32.458688307Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*pollDesc).waitRead(...)\n"}
{"Time":"2023-03-29T13:59:32.458708219Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_poll_runtime.go:89\n"}
{"Time":"2023-03-29T13:59:32.458712856Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*FD).Accept(0xc00475bf80)\n"}
{"Time":"2023-03-29T13:59:32.458717364Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_unix.go:614 +0x2bd\n"}
{"Time":"2023-03-29T13:59:32.458721204Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*netFD).accept(0xc00475bf80)\n"}
{"Time":"2023-03-29T13:59:32.458727021Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/fd_unix.go:172 +0x35\n"}
{"Time":"2023-03-29T13:59:32.458731155Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*TCPListener).accept(0xc00486ecd8)\n"}
{"Time":"2023-03-29T13:59:32.458737943Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/tcpsock_posix.go:148 +0x25\n"}
{"Time":"2023-03-29T13:59:32.458744974Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*TCPListener).Accept(0xc00486ecd8)\n"}
{"Time":"2023-03-29T13:59:32.458752245Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/tcpsock.go:297 +0x3d\n"}
{"Time":"2023-03-29T13:59:32.458758039Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"crypto/tls.(*listener).Accept(0xc00486ef18)\n"}
{"Time":"2023-03-29T13:59:32.458763674Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/crypto/tls/tls.go:66 +0x2d\n"}
{"Time":"2023-03-29T13:59:32.458770104Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net/http.(*Server).Serve(0xc00029da40, {0x18fefa0, 0xc00486ef18})\n"}
{"Time":"2023-03-29T13:59:32.458778229Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/http/server.go:3059 +0x385\n"}
{"Time":"2023-03-29T13:59:32.45878539Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net/http/httptest.(*Server).goServe.func1()\n"}
{"Time":"2023-03-29T13:59:32.458793477Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/http/httptest/server.go:310 +0x6a\n"}
{"Time":"2023-03-29T13:59:32.458797511Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by net/http/httptest.(*Server).goServe\n"}
{"Time":"2023-03-29T13:59:32.458801374Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/http/httptest/server.go:308 +0x6a\n"}
{"Time":"2023-03-29T13:59:32.458805093Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\n"}
{"Time":"2023-03-29T13:59:32.458810472Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"goroutine 410 [IO wait]:\n"}
{"Time":"2023-03-29T13:59:32.458814744Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.runtime_pollWait(0x7f5230765908, 0x72)\n"}
{"Time":"2023-03-29T13:59:32.458819038Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/runtime/netpoll.go:306 +0x89\n"}
{"Time":"2023-03-29T13:59:32.458824589Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*pollDesc).wait(0xc00043a300?, 0xc004880000?, 0x0)\n"}
{"Time":"2023-03-29T13:59:32.458830327Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32\n"}
{"Time":"2023-03-29T13:59:32.458835463Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*pollDesc).waitRead(...)\n"}
{"Time":"2023-03-29T13:59:32.458840944Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_poll_runtime.go:89\n"}
{"Time":"2023-03-29T13:59:32.458850643Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"internal/poll.(*FD).ReadFromInet4(0xc00043a300, {0xc004880000, 0x10000, 0x10000}, 0x0?)\n"}
{"Time":"2023-03-29T13:59:32.458859626Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/internal/poll/fd_unix.go:250 +0x24f\n"}
{"Time":"2023-03-29T13:59:32.458872383Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*netFD).readFromInet4(0xc00043a300, {0xc004880000?, 0x0?, 0x0?}, 0x0?)\n"}
{"Time":"2023-03-29T13:59:32.458879419Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/fd_posix.go:66 +0x29\n"}
{"Time":"2023-03-29T13:59:32.458901901Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*UDPConn).readFrom(0x30?, {0xc004880000?, 0xc0005b7770?, 0x0?}, 0xc0005b7770)\n"}
{"Time":"2023-03-29T13:59:32.458908829Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/udpsock_posix.go:52 +0x1b8\n"}
{"Time":"2023-03-29T13:59:32.458922969Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*UDPConn).readFromUDP(0xc000015a08, {0xc004880000?, 0x4102c7?, 0x10000?}, 0x13e45e0?)\n"}
{"Time":"2023-03-29T13:59:32.458928418Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/udpsock.go:149 +0x31\n"}
{"Time":"2023-03-29T13:59:32.458942888Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"net.(*UDPConn).ReadFrom(0x59a?, {0xc004880000, 0x10000, 0x10000})\n"}
{"Time":"2023-03-29T13:59:32.45894865Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/usr/local/go/src/net/udpsock.go:158 +0x50\n"}
{"Time":"2023-03-29T13:59:32.458972992Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"tailscale.com/net/stun/stuntest.runSTUN({0x1911ec0, 0xc00485eb60}, {0x1907f60, 0xc000015a08}, 0xc00481baa0, 0x17462c0?)\n"}
{"Time":"2023-03-29T13:59:32.458979652Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/.local/go/pkg/mod/github.com/coder/tailscale@v1.1.1-0.20230327205451-058fa46a3723/net/stun/stuntest/stuntest.go:59 +0xc6\n"}
{"Time":"2023-03-29T13:59:32.458988938Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"created by tailscale.com/net/stun/stuntest.ServeWithPacketListener\n"}
{"Time":"2023-03-29T13:59:32.458996325Z","Action":"output","Package":"github.com/coder/coder/agent","Test":"TestAgent_Session_TTY_Hushlogin","Output":"\t/home/mafredri/.local/go/pkg/mod/github.com/coder/tailscale@v1.1.1-0.20230327205451-058fa46a3723/net/stun/stuntest/stuntest.go:47 +0x26a\n"}
{"Time":"2023-03-29T13:59:32.464073774Z","Action":"output","Package":"github.com/coder/coder/agent","Output":"FAIL\tgithub.com/coder/coder/agent\t2.045s\n"}
{"Time":"2023-03-29T13:59:32.464093085Z","Action":"fail","Package":"github.com/coder/coder/agent","Elapsed":2.045}

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,8 @@
**/*.swp
gotests.coverage
gotests.xml
gotestsum.json
gotests_stats.json
gotests.json
node_modules/
vendor/
yarn-error.log
@ -32,9 +33,8 @@ e2e/states/*.json
playwright-report/*
.swc
# Make target for updating golden files.
../cli/testdata/.gen-golden
../helm/tests/testdata/.gen-golden
# Make target for updating golden files (any dir).
.gen-golden
# Build
../build/

View File

@ -9,7 +9,8 @@
**/*.swp
gotests.coverage
gotests.xml
gotestsum.json
gotests_stats.json
gotests.json
node_modules/
vendor/
yarn-error.log
@ -32,9 +33,8 @@ e2e/states/*.json
playwright-report/*
.swc
# Make target for updating golden files.
../cli/testdata/.gen-golden
../helm/tests/testdata/.gen-golden
# Make target for updating golden files (any dir).
.gen-golden
# Build
../build/