Repository navigation
test(cuda.core): check the event-record target after the graph completes - #3170
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
| Layer / File(s) | Summary |
|---|---|
Check event-record target after execution cuda_core/tests/graph/test_graph_node_update.py |
The test uses timing-enabled events and a synchronized reference event. Elapsed-time subtraction raises before graph execution and returns a float after the graph launch and synchronization. |
Assessment against linked issues
| Objective | Addressed | Explanation |
|---|---|---|
Remove the race in the event-record test by checking the record target after graph execution [#3106] |
✅ |
Suggested reviewers: andy-jost
Priority:
Change: Bug fix · Severity of issue fixed: Low
Merge Risk: 
Minimal · previous review f3637
-
The test checks both event-record targets after graph execution, without the blocking callback. No outstanding issue prevents merging.
Finishing Touches: 💡 1
-
🛠️ Fix failing CI checks: 💡
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
|
Sol 5.6 Ultra has this to say: I don’t think this bounded poll covers the failure we actually observed. All three failures took 30.00–30.01s (new occurrence, original attempt 1, attempt 2), exactly matching callback_release.wait(timeout=30). The passing rerun completed this case in about 6 ms. If cuEventQuery had immediately returned True for the untouched event, the finally block would have released the callback and the test would have failed quickly. Instead, either cuGraphLaunch or the first cuEventQuery appears to have blocked/serialized until the callback timed out and the downstream event-record node completed.
|
|
@jpascucci-nv confirmed in the logs. All three failures took 30.00 to 30.01s, so the poll couldn't help. Pushed your version in f36374a. Locally the file passes, 1000 repeats pass, and the record-target checks still catch an ignored or leaked update. I injected each fault against both the old and new versions. My objection to the elapsed_time route on the issue was wrong, since each expected event is fresh before its launch. Could you /ok to test f36374a? |
|
/ok to test f36374a |
|
Signed-off-by: Saiyam Bharara <saiyambharara@gmail.com>
Signed-off-by: Saiyam Bharara <saiyambharara@gmail.com>
f36374a to
62db871
Compare
|
/ok to test 62db871 |
|
@saiyambharara FYI, I rebased your change because it wasn't passing CI (due to a known and fixed problem). |
|
Approving. The rewrite removes the cause of the 30 s failure rather than narrowing it: the graph is a single event-record node, so nothing can block the launch or the first query, and the elapsed-time check after the sync still fails when a definition update is ignored, leaks into the old exec, or an exec-node update is ignored. CI on this head is green on every Windows and WSL row, including the MCDM runners where #3106 failed. One follow-up, not for this PR: the event-wait case ( |
Description
closes #3106
The event-record case failed after exactly 30s on the MCDM runner, so the launch or the first
is_donequery blocked until the callback timeout. Drop the blocking callback and check the record target after completion with timing-enabled events, as suggested by @jpascucci-nv.Checklist