Opened 2 years ago

Closed 2 years ago

#17959 closed bug (fixed)

Some build failures not detected by concourse

Reported by: bipolar Owned by: kallisti5
Priority: critical Milestone: R1/beta4
Component: Sys-Admin Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Reported on IRC by rubberduck:

For hrev56490 and hrev56480, the download .zip files from

https://download.haiku-os.org/nightly-images/x86_gcc2h/

and

https://download.haiku-os.org/nightly-images/x86_64/

Only contain the Readme.md file, but no .iso files (zip size 1.2 KB).

---

See (for example): https://ci.haiku-os.org/teams/nightly/pipelines/master-x86_64/jobs/image-master-x86_64/builds/1125

Task "build-master-anyboot" appears green despite ending in "BUILD FAILURE".

Change History (8)

comment:1 by pulkomandy, 2 years ago

Milestone: UnscheduledR1/beta4
Priority: normalcritical

comment:2 by waddlesplash, 2 years ago

Component: - GeneralSys-Admin
Owner: changed from nobody to kallisti5
Status: newassigned

comment:3 by kallisti5, 2 years ago

Checking. I've seen concourse not detect failures before resulting in empty zip files. This appears to be what happened in this instance.

https://ci.haiku-os.org/teams/nightly/pipelines/master-x86_64/jobs/image-master-x86_64/builds/1125#L631da77d:2318

When the build failure isn't detected, the zip gets created minus the actual iso file (since the build failed)

comment:4 by kallisti5, 2 years ago

See https://dev.haiku-os.org/ticket/17961 to fix the actual bug.

lets keep this one open to track the build system issue.

comment:5 by kallisti5, 2 years ago

Summary: Download (.zip) files for the latest nightlies do not contain the .iso fileSome build failures not detected by concourse

So, the suspect cause is concourse only detects the "last" return status in a set of steps.

The build pipeline for nightly images is as follows:

run:
        path: /bin/bash
        args:
          - -c
          - |
             doing
             stuff
             jam
             rm

If Jam returns non-0, the failure isn't detected by concourse since rm is the "final" command to run. The continuous builds have jam as the last command executed (so failures are properly detected)

I think an easy solution would be a "jam
exit 1" instead. This would guarantee an exit on error.
Version 0, edited 2 years ago by kallisti5 (next)

comment:6 by kallisti5, 2 years ago

waddlesplash mentioned passing -e to bash which is an even better solution. I'm going to give that a try as soon as the CI builds slow down

comment:7 by pulkomandy, 2 years ago

You should be able to use "set -e" to make bash fail at the first failed command instead of continuing the script.

comment:8 by waddlesplash, 2 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.