error reporting is entirely absent
Bug #724096 reported by
Michael Hudson-Doyle
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro Android Mirror |
Fix Released
|
High
|
Paul Sokolovsky |
Bug Description
When a mirror fails, this should be somehow reported to the process on the receiving end of the mirror, at least including which host failed to mirror properly.
Related branches
lp://staging/~pfalcon/linaro-android-mirror/xmlrpc-error-msg
- Michael Hudson-Doyle: Pending requested
-
Diff: 81 lines (+48/-1)4 files modifiedlinaro_android_mirror/service.py (+17/-1)
linaro_android_mirror/tests/data/manifest-bad-loc.xml (+5/-0)
linaro_android_mirror/tests/data/manifest-no-rev.xml (+5/-0)
linaro_android_mirror/tests/test_mirrorer_integrational.py (+21/-0)
Changed in linaro-android-mirror: | |
assignee: | nobody → Paul Sokolovsky (pfalcon) |
status: | New → In Progress |
Changed in linaro-android-mirror: | |
importance: | Undecided → Low |
status: | In Progress → Triaged |
Changed in linaro-android-mirror: | |
importance: | Low → High |
Changed in linaro-android-mirror: | |
status: | Triaged → In Progress |
To post a comment you must log in.
Well, I guess we for sure should log such errors to mirror service logs, to see what kind of errors and how often we get. Btw, even from local runs it's clear that android. git.kernel. org is pretty overloaded and from time to time times out or resets connection. Moreover, I saw cases when git did report errors, but repo stills finished with 0 exit code.
Other question is if we should report such failures to XMLRPC caller. If we do, then build will fail (non-deterministic failure). On the other hand, if we don't, we may have a build from a stale codebase which is of course worse. Compromise might to have auto-retrying for repo sync failures, say, 3 times, and then return a failure. This way we'll minimize non-deterministic failures but won't have spurious false positives due to stale codebase.
Still, my first patch is just for capturing and logging results of repo invocations.