| Summary: |
ToasterUI adds 'ready' message in log for scripts embedding builds with ToasterUI startup to prevent event loss |
| Product: |
[Build System, Metadata & Runtime] Toaster
|
Reporter: |
Dave Lerner <dave.lerner> |
| Component: |
toaster | Assignee: |
Alexandru Damian <alexandru.damian> |
| Status: |
VERIFIED
FIXED
|
QA Contact: |
Mihail Stanciu <stanciux.mihail> |
| Severity: |
major
|
|
|
| Priority: |
Medium+
|
CC: |
alexandru.c.georgescu, alexandru.damian, belen.barros.pena, cristiana.voicu
|
| Version: |
1.6.2 | |
|
| Target Milestone: |
1.7 M2 | |
|
| Hardware: |
x86 | |
|
| OS: |
Multiple | |
|
| Whiteboard: |
|
|
OS type for building Yocto:
|
---
|
Type of Regression:
|
---
|
|
Verified:
|
|
Documentation change:
|
Don't know
|
Provide a synchronization message via the log that ToasterUi is ready to receive events so that scripts that include launching builds don't cause events to be lost. It was observed that a sequence in a script such as bitbake --server-only .. bitbake --observe-only .. bitbake <some target> could generate events from the server to the observer before the observer was ready to read the events, and the early events of builds were consistently dropped. Adding a "ready" note in the log allows the script to scan for that message before proceeding to building a target. A patch is provided that suffices by logging a "ready" message which the invoking script can poll for before proceeding with a build. This bug is blocking integration into the WindRiver build system where toaster could be stress tested. ========================== diff --git a/lib/bb/ui/toasterui.py b/lib/bb/ui/toasterui.py index b1c80cc..5f87a9d 100644 --- a/lib/bb/ui/toasterui.py +++ b/lib/bb/ui/toasterui.py @@ -91,6 +91,7 @@ def main(server, eventHandler, params ): errors = 0 warnings = 0 taskfailures = [] + first = True buildinfohelper = BuildInfoHelper(server, build_history_enabled) @@ -98,6 +99,9 @@ def main(server, eventHandler, params ): while True: try: event = eventHandler.waitEvent(0.25) + if first: + first = False + logger.info("ToasterUI waiting for events") if event is None: if main.shutdown > 0: