Dean Sheather
07fd73c4a0
chore: allow multiple agent subsystems, add exectrace ( #8933 )
2023-08-08 22:10:28 -07:00
Dean Sheather
3c52b01850
chore: add tailscale magicsock debug logging controls ( #8982 )
2023-08-08 17:56:08 +00:00
Dean Sheather
b955c5fefc
fix: avoid agent runLoop exiting due to ws ping ( #8852 )
2023-08-02 07:25:07 +00:00
Dean Sheather
c575292ba6
fix: fix tailnet netcheck issues ( #8802 )
2023-08-02 01:50:43 +10:00
Kyle Carberry
bd944e0d21
chore: rename startup logs to agent logs ( #8649 )
...
* chore: rename startup logs to agent logs
This also adds a `source` property to every agent log. It
should allow us to group logs and display them nicer in
the UI as they stream in.
* Fix migration order
* Fix naming
* Rename the frontend
* Fix tests
* Fix down migration
* Match enums for workspace agent logs
* Fix inserting log source
* Fix migration order
* Fix logs tests
* Fix psql insert
2023-07-28 15:57:23 +00:00
Ammar Bandukwala
25e30c6f41
feat(cli): support fine-grained server log filtering ( #8748 )
2023-07-26 16:46:22 -05:00
Dean Sheather
2f0a9996e7
chore: add derpserver to wsproxy, add proxies to derpmap ( #7311 )
2023-07-27 02:21:04 +10:00
Colin Adler
71d4e4e6e8
fix(agent): check agent metadata every second instead of minute ( #8614 )
2023-07-20 14:02:58 -05:00
Colin Adler
c8d65de4b7
test(agent): fix TestAgent_Metadata/Once flake ( #8613 )
2023-07-20 18:49:44 +00:00
Mathias Fredriksson
5fd77ad7cf
test(agent): fix service banner and metadata intervals ( #8516 )
2023-07-14 16:10:26 +03:00
Colin Adler
c47b78c44b
chore: replace wsconncache with a single tailnet ( #8176 )
2023-07-12 17:37:31 -05:00
Mathias Fredriksson
e508d9aa6e
fix(agent/usershell): check shell on darwin via dscl ( #8366 )
2023-07-11 20:27:50 +03:00
Mathias Fredriksson
34c3f919dc
fix(agent/agentssh): check for hushlogin via afero fs ( #8358 )
2023-07-07 13:30:23 +03:00
Mathias Fredriksson
3f058f28e7
test(agent): use afero for motd tests to allow parallel execution ( #8329 )
2023-07-06 10:57:51 +03:00
Asher
6015319e9d
feat: show service banner in SSH/TTY sessions ( #8186 )
...
* Allow workspace agents to get appearance
* Poll for service banner every two minutes
* Show service banner before MOTD if not quiet
2023-06-30 10:41:29 -08:00
Mathias Fredriksson
6d176aee5d
test(agent): fix lifecycle test flakeyness ( #8230 )
2023-06-27 12:44:16 +00:00
Mathias Fredriksson
3b9b06fe5a
feat(codersdk/agentsdk): add StartupLogsSender and StartupLogsWriter ( #8129 )
...
This commit adds two new `agentsdk` functions, `StartupLogsSender` and
`StartupLogsWriter` that can be used by any client looking to send
startup logs to coderd.
We also refactor the `agent` to use these new functions.
As a bonus, agent startup logs are separated into "info" and "error"
levels to separate stdout and stderr.
---------
Co-authored-by: Marcin Tojek <mtojek@users.noreply.github.com >
2023-06-22 23:28:59 +03:00
Spike Curtis
e738123a9c
chore: log ssh connection disconnects with errors ( #8143 )
...
Signed-off-by: Spike Curtis <spike@coder.com >
2023-06-22 11:37:50 +04:00
Dean Sheather
a28d422c35
feat: add flag to disable all direct connections ( #7936 )
2023-06-21 22:02:05 +00:00
Marcin Tojek
4fb4c9b270
chore: add more rules to ensure logs consistency ( #8104 )
2023-06-21 12:00:38 +02:00
Spike Curtis
1c8f564fdb
feat: add logging of ssh connections to agent ( #8096 )
...
* feat: adds logging of ssh connections to agent
Signed-off-by: Spike Curtis <spike@coder.com >
* code review improvements
Signed-off-by: Spike Curtis <spike@coder.com >
---------
Signed-off-by: Spike Curtis <spike@coder.com >
2023-06-21 13:49:58 +04:00
Mathias Fredriksson
ea4b7d60d7
fix(agent): refactor trackScriptLogs to avoid deadlock ( #8084 )
...
During agent close it was possible for the startup script logs consumer
to enter a deadlock state where by agent close was waiting via
`a.trackConnGoroutine` and the log reader for a flush event.
This refactor removes the mutex in favor of channel communication and
relies on two goroutines without shared state.
2023-06-20 18:05:11 +03:00
Mathias Fredriksson
8dac0356ed
refactor: replace startup script logs EOF with starting/ready time ( #8082 )
...
This commit reverts some of the changes in #8029 and implements an
alternative method of keeping track of when the startup script has ended
and there will be no more logs.
This is achieved by adding new agent fields for tracking when the agent
enters the "starting" and "ready"/"start_error" lifecycle states. The
timestamps simplify logic since we don't need understand if the current
state is before or after the state we're interested in. They can also be
used to show data like how long the startup script took to execute. This
also allowed us to remove the EOF field from the logs as the
implementation was problematic when we returned the EOF log entry in the
response since requesting _after_ that ID would give no logs and the API
would thus lose track of EOF.
2023-06-20 14:41:55 +03:00
Marcin Tojek
b1d1b63113
chore: ensure logs consistency across Coder ( #8083 )
2023-06-20 12:30:45 +02:00
Mathias Fredriksson
0c5077464b
fix: avoid missed logs when streaming startup logs ( #8029 )
...
* feat(coderd,agent): send startup log eof at the end
* fix(coderd): fix edge case in startup log pubsub
* fix(coderd): ensure startup logs are closed on lifecycle state change (fallback)
* fix(codersdk): fix startup log channel shared memory bug
* fix(site): remove the EOF log line
2023-06-16 17:14:22 +03:00
Marcin Tojek
247f8a973f
feat: replace ssh maxTimeout with keep-alive mechanism ( #8062 )
...
* Bump up coder/ssh
* feat: Set default agent timeout to ~72h
* Address PR comments
* Fix
2023-06-16 15:22:18 +02:00
Mathias Fredriksson
74fdcb1ace
fix(agent/agentssh): wait for sessions to exit ( #8008 )
2023-06-13 17:52:31 +00:00
Mathias Fredriksson
c916a9e67f
fix(agent): guard against multiple rpty race for same id ( #7998 )
...
* fix(agent): guard against multiple rpty race for same id
* fix(agent): ensure pty is closed on error
2023-06-13 15:14:07 +00:00
Ammar Bandukwala
fcca639d38
test(agent/agentssh): close SSH servers in all tests ( #7911 )
...
Potentially solves the flake seen here:
https://github.com/coder/coder/actions/runs/5167029213/jobs/9307647816 .
2023-06-07 23:43:38 +00:00
Marcin Tojek
14efdadd3c
feat: Collect agent SSH metrics ( #7584 )
2023-05-25 12:52:36 +02:00
Jon Ayers
00a2413c03
feat: add telemetry support for workspace agent subsystem ( #7579 )
2023-05-17 22:49:25 -05:00
Kyle Carberry
70d2203b9e
chore: reduce the log output of skipped tests ( #7520 )
...
With the introduction of the workspace proxy tests there was a lot
of output if a test was eventually skipped.
2023-05-14 19:37:00 -05:00
Spike Curtis
9c030a8888
fix: pty.Start respects context on Windows too ( #7373 )
...
* fix: pty.Start respects context on Windows too
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix windows imports; rename ToExec -> AsExec
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix import in windows test
Signed-off-by: Spike Curtis <spike@coder.com >
---------
Signed-off-by: Spike Curtis <spike@coder.com >
2023-05-03 11:43:05 +04:00
Ammar Bandukwala
465fe8658d
chore: skip timing-sensistive AgentMetadata test in the standard suite ( #7237 )
...
* chore: skip timing-sensistive AgentMetadata test in the standard suite
* Add test-timing target
* fix windows?
* Works on my Windows desktop?
* Use tag system
* fixup! Use tag system
2023-05-02 10:41:41 +00:00
Marcin Tojek
bb0a38b161
feat: Implement aggregator for agent metrics ( #7259 )
2023-04-27 12:34:00 +02:00
Spike Curtis
b6666cf1cf
chore: tailnet debug logging ( #7260 )
...
* Enable discovery (disco) debug
Signed-off-by: Spike Curtis <spike@coder.com >
* Better debug on reconnectingPTY
Signed-off-by: Spike Curtis <spike@coder.com >
* Agent logging in appstest
Signed-off-by: Spike Curtis <spike@coder.com >
* More reconnectingPTY logging
Signed-off-by: Spike Curtis <spike@coder.com >
* Add logging to coordinator
Signed-off-by: Spike Curtis <spike@coder.com >
* Update agent/agent.go
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
* Update agent/agent.go
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
* Update agent/agent.go
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
* Update agent/agent.go
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
* Clarify logs; remove unrelated changes
Signed-off-by: Spike Curtis <spike@coder.com >
---------
Signed-off-by: Spike Curtis <spike@coder.com >
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
2023-04-27 13:59:01 +04:00
Colin Adler
3eb7f06bf1
feat(agent): add http debug routes for magicsock ( #7287 )
2023-04-26 13:01:49 -05:00
Spike Curtis
29cbc5404a
Reconnecting PTY waits for command output or EOF ( #7279 )
...
Signed-off-by: Spike Curtis <spike@coder.com >
2023-04-26 09:02:06 +04:00
Spike Curtis
daee91c6dc
refactor: PTY & SSH ( #7100 )
...
* Add ssh tests for longoutput, orphan
Signed-off-by: Spike Curtis <spike@coder.com >
* PTY/SSH tests & improvements
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix some tests
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix linting
Signed-off-by: Spike Curtis <spike@coder.com >
* fmt
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix windows test
Signed-off-by: Spike Curtis <spike@coder.com >
* Windows copy test
Signed-off-by: Spike Curtis <spike@coder.com >
* WIP Windows pty handling
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix truncation tests
Signed-off-by: Spike Curtis <spike@coder.com >
* Appease linter/fmt
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix typo
Signed-off-by: Spike Curtis <spike@coder.com >
* Rework truncation test to not assume OS buffers
Signed-off-by: Spike Curtis <spike@coder.com >
* Disable orphan test on Windows --- uses sh
Signed-off-by: Spike Curtis <spike@coder.com >
* agent_test running SSH in pty use ptytest.Start
Signed-off-by: Spike Curtis <spike@coder.com >
* More detail about closing pseudoconsole on windows
Signed-off-by: Spike Curtis <spike@coder.com >
* Code review fixes
Signed-off-by: Spike Curtis <spike@coder.com >
* Rearrange ptytest method order
Signed-off-by: Spike Curtis <spike@coder.com >
* Protect pty.Resize on windows from races
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix windows bugs
Signed-off-by: Spike Curtis <spike@coder.com >
* PTY doesn't extend PTYCmd
Signed-off-by: Spike Curtis <spike@coder.com >
* Fix windows types
Signed-off-by: Spike Curtis <spike@coder.com >
---------
Signed-off-by: Spike Curtis <spike@coder.com >
2023-04-24 14:53:57 +04:00
Mathias Fredriksson
712098fa2b
test(agent): Increase the time to wait for agent reachable ( #7245 )
2023-04-21 19:40:17 +00:00
Kyle Carberry
fd84df769d
fix: add DISPLAY env var for X11 connections ( #7248 )
...
* fix: add `DISPLAY` env var for X11 connections
* Update agent/agentssh/agentssh.go
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
---------
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
2023-04-21 16:43:49 +00:00
Kyle Carberry
f39e6a79de
feat: add support for X11 forwarding ( #7205 )
...
* feat: add support for X11 forwarding
* Only run X forwarding on Linux
* Fix piping
* Fix comments
2023-04-21 15:52:40 +00:00
Mathias Fredriksson
300ae4a6bf
test(agent): Fix TestAgent_UnixRemoteForwarding timeout ( #7235 )
2023-04-21 01:35:51 +03:00
Mathias Fredriksson
b3b26a62f2
test(agent/reaper): Fix restructure issue ( #7168 )
...
In #7164 we accidentally removed the "in CI" check, this fixes it.
2023-04-17 17:39:10 +00:00
Mathias Fredriksson
bf0fed4f3f
chore: Update pion/udp and improve parallel/non-parallel tests ( #7164 )
...
* test(all): Improve and fix subtests with parallell/nonparallel parents
* chore: Update pion/udp to fix buffer close
2023-04-17 20:23:10 +03:00
Muhammad Atif Ali
bb43713d38
fix: VSCode desktop connection ( #7120 )
...
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com >
2023-04-14 17:32:18 +03:00
Ammar Bandukwala
24d8644c0b
chore: de-flake TestWorkspaceAgent_Metadata (round 2) ( #7039 )
...
This time, we keep the timing / "racey" tests, but avoid running
them in the harsher CI conditions.
2023-04-06 21:10:13 +00:00
Mathias Fredriksson
aa660e0631
feat(agentssh): Gracefully close SSH sessions on Close ( #7027 )
...
By tracking and closing sessions manually before closing the underlying
connections, we ensure that the termination is propagated to SSH/SFTP
clients and they're not left waiting for a connection timeout.
Refs: #6177
2023-04-06 19:57:30 +03:00
Mathias Fredriksson
0224426e5b
refactor(agent): Move SSH server into agentssh package ( #7004 )
...
Refs: #6177
2023-04-06 19:39:22 +03:00
Mathias Fredriksson
121c2bcde8
test(agent): Fix tests without cmd.Wait() ( #7029 )
2023-04-06 16:45:53 +03:00