Commit d8cc1c7
[bugfix] Fix watchdog.reset() race that silently dropped WebSocket
cancels on CI
xquery.execute(resetContext=true) calls watchdog.reset() after the
"evaluating"
signal is sent. On slow CI machines, sendText() blocks long enough for
the client
cancel roundtrip to complete: kill() sets terminate=true, then
watchdog.reset()
immediately clears it to false, dropping the cancel silently.
Fix: call watchdog.reset() manually before
registerQuery()/sendProgress(), then
pass resetContext=false to xquery.execute() so the internal reset is
skipped.
Add context.reset() to the outer finally block to cover what
resetContext=false
no longer handles in xquery.execute().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 807535d commit d8cc1c7
2 files changed
Lines changed: 7 additions & 4 deletions
File tree
- exist-core/src
- main/java/org/exist/http/ws
- test/java/org/exist/http/ws
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
107 | 106 | | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
| 123 | + | |
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| 167 | + | |
167 | 168 | | |
168 | 169 | | |
169 | 170 | | |
| |||
Lines changed: 4 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
658 | 658 | | |
659 | 659 | | |
660 | 660 | | |
661 | | - | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
662 | 664 | | |
663 | 665 | | |
664 | | - | |
| 666 | + | |
665 | 667 | | |
666 | 668 | | |
667 | 669 | | |
| |||
0 commit comments