Repository navigation
Commit eaa5931
Handle version-details timeout and stalled connects during startup
Two latent startup-path bugs in `src/session.ts`, surfaced while
investigating #5031 (neither caused it):
- `getVersionDetails()` set a 60s timeout that only cancelled the token,
so when it fired `sendRequest(...)` rejected and the `await` threw
straight out of `start()` — the intended graceful failure handling was
never reached. We now catch the rejection, log the underlying cause as
a warning, and return `undefined` so the existing failure branch runs
and surfaces a friendlier, more actionable message to the user. While
here, fix the timer leak: we capture the `setTimeout` handle to
`clearTimeout` it and `dispose()` the `CancellationTokenSource`.
- `connectFunc` had no error or timeout handler, so a transport that
never connected just hung with nothing actionable. We add an `error`
handler and a 60s connect timeout that destroys the socket and rejects
with a clear, logged message naming the pipe. Both paths clear the
timer so a healthy but idle connection is never torn down.
Adds unit tests for `getVersionDetails()` covering the reject-to-
`undefined` path and the normal fast path. `connectFunc` is a private
closure over a live `net` socket with no test seam, so I left it
uncovered rather than add socket-mocking infra the repo deliberately
avoids.
Closes #5521.
Drafted by Copilot (Claude Opus 4.8).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 7884b75 commit eaa5931
2 files changed
Lines changed: 143 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
283 | | - | |
| 283 | + | |
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
| |||
849 | 849 | | |
850 | 850 | | |
851 | 851 | | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
856 | 865 | | |
| 866 | + | |
857 | 867 | | |
858 | 868 | | |
859 | 869 | | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
860 | 877 | | |
861 | 878 | | |
862 | 879 | | |
| |||
1070 | 1087 | | |
1071 | 1088 | | |
1072 | 1089 | | |
1073 | | - | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
1074 | 1094 | | |
1075 | | - | |
| 1095 | + | |
1076 | 1096 | | |
1077 | 1097 | | |
1078 | 1098 | | |
1079 | | - | |
1080 | | - | |
1081 | | - | |
1082 | | - | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
1083 | 1118 | | |
1084 | 1119 | | |
1085 | 1120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
| |||
163 | 166 | | |
164 | 167 | | |
165 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
166 | 262 | | |
167 | 263 | | |
168 | 264 | | |
| |||
0 commit comments