-
Notifications
You must be signed in to change notification settings - Fork 2
fix(ci): retry ETXTBSY spawns and stop reporting them as missing libraries #1368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+257
−7
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
311ce81
fix(ci): retry ETXTBSY spawns and stop reporting them as missing libr…
zackees 25cc4ab
fix(ci): gate the ETXTBSY tests to Linux and route through the platfo…
zackees 58695bc
chore(ci): refresh the platform-boundary inventory for shifted line n…
zackees d63536c
fix(qemu): name the probe variant for what it can actually claim
zackees fb4c5b0
test(subprocess): arm the releaser before the probe starts
zackees File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: FastLED/fbuild
Length of output: 28185
🌐 Web query:
Tokio tokio::spawn scheduling guarantee task may not be immediately polled tokio::join poll futures documentation💡 Result:
Tokio does not provide a strict guarantee that a spawned task or a joined future will be polled immediately, nor does it guarantee a specific execution order [1]. Regarding tokio::spawn: When you call tokio::spawn, the task is submitted to the Tokio runtime to be executed in the background [2][3]. While it is guaranteed that spawn will not synchronously poll the task being spawned [2][4]—preventing immediate deadlock risks—there is no guarantee that it will be polled immediately after the call [1]. The runtime schedules tasks based on its own internal state, and while it aims to be fair, it does not guarantee that a newly spawned task will preempt currently running tasks [1]. Regarding tokio::join!: The join! macro multiplexes multiple futures onto the same task [5]. These futures are polled concurrently, not in parallel [5][6]. By default, join! rotates which future is polled first whenever it is woken to help ensure fairness among the joined futures [5][7]. This default rotation behavior can be overridden by using the biased; modifier, which forces the macro to poll futures in the order they appear, from top to bottom [5]. In biased mode, the developer assumes responsibility for ensuring fair execution, as futures appearing later in the list may be delayed if earlier futures take a significant amount of time to return Poll::Ready or return Poll::Pending [5][7]. General Scheduling: Tokio uses cooperative multitasking [8][9]. Tasks are generally only scheduled when they have been woken, although spurious wakeups can occur [1]. While Tokio provides fairness guarantees—ensuring that if the number of tasks remains bounded and no task blocks the thread, tasks will eventually be scheduled [1]—it does not offer strict real-time guarantees regarding exactly when a task will be polled next [1][10].
Citations:
🏁 Script executed:
Repository: FastLED/fbuild
Length of output: 432
Make the transient-release test scheduling-safe.
A detached task can start its 10 ms timer after the probe begins. This can keep the writable handle open through all three retry attempts. Use
tokio::join!, or signal readiness after arming the timer before starting the probe.🤖 Prompt for AI Agents