Commit 0347cf6
Dennis Sepede
fix(updater): self-replace bat retries move; hard-exit to release lock
Dennis's "Update app from tray" produced no UAC prompt and no
visible change — the old exe stayed in place silently. Cause: the
.bat did a single `move /y` after a 2-second wait. Windows held the
file lock on the just-exited PyInstaller exe (bootloader teardown
+ AV scanning the new file) for longer than 2 s. The single move
silently failed; the relaunch then started the still-old exe.
Two fixes baked in:
1) `_write_self_replace_bat` now retries `move /y` up to 30 times
with 1 s between attempts after a 3 s initial wait. As soon as
the move succeeds we relaunch; if all 30 retries fail we leave
the new exe in place so the user can swap it manually.
2) `install_and_restart` now calls `os._exit(0)` instead of
`sys.exit(0)`. SystemExit only unwinds the calling thread —
daemon threads + pystray's Windows message loop kept the
process alive (and the file lock with it) long enough that the
bat's retry loop sometimes still timed out. The tray icon,
bridge HTTP server, and presence loop are also stopped cleanly
before the hard exit so resources have a chance to release.
Bumps presence to 0.3.17. Firmware unchanged from 0.3.16.1 parent b534bbe commit 0347cf6
4 files changed
Lines changed: 67 additions & 24 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
10 | 18 | | |
11 | 19 | | |
12 | 20 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
444 | | - | |
| 444 | + | |
445 | 445 | | |
446 | 446 | | |
447 | 447 | | |
448 | 448 | | |
449 | | - | |
450 | | - | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
451 | 464 | | |
452 | | - | |
| 465 | + | |
453 | 466 | | |
454 | 467 | | |
455 | 468 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
204 | | - | |
205 | | - | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
206 | 209 | | |
207 | 210 | | |
208 | 211 | | |
| |||
214 | 217 | | |
215 | 218 | | |
216 | 219 | | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
232 | 231 | | |
233 | 232 | | |
234 | 233 | | |
| |||
250 | 249 | | |
251 | 250 | | |
252 | 251 | | |
253 | | - | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
254 | 262 | | |
255 | | - | |
256 | | - | |
257 | | - | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
258 | 266 | | |
259 | 267 | | |
260 | 268 | | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
265 | 286 | | |
| 287 | + | |
266 | 288 | | |
267 | | - | |
| 289 | + | |
268 | 290 | | |
269 | 291 | | |
270 | 292 | | |
0 commit comments