Opened 12 months ago

Closed 8 months ago

#16265 closed defect (fixed)

Failed notarizations should not be put in downloads

Reported by: Tom Goddard Owned by: Zach Pearson
Priority: high Milestone:
Component: Build System Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Mac notarization failure is supposed to be a build failure so the build
does not go on the web. That should be fixed.

Change History (10)

comment:1 by Zach Pearson, 12 months ago

Owner: changed from Zach Pearson to Greg Couch

FWIW, notarization failures are considered an error on Actions so Mac daily builds that don't get signed just don't get uploaded. I'm not sure how the old build scripts work.

comment:2 by Greg Couch, 12 months ago

The old build scripts just echoed "ERROR IN NOTARIZATION" and made the unnotarized application available to download. There is code to treat it as a failure, but the echo never fails.

comment:3 by pett, 12 months ago

Yeah, my dim recollection was that notarization failures still went on the web site. Nonetheless, since running the app when the notarization failed is basically impossible for the average user, it would be good to treat notarization failures the same as other build failures and not put them on the web site.

comment:4 by Zach Pearson, 8 months ago

My GitHub Actions script retries notarization until it succeeds, but even before I implemented that failing notarizations would fail builds. That meant that those ChimeraXes wouldn't get uploaded. I think it's safe to close this ticket.

comment:5 by Tom Goddard, 8 months ago

Doesn't retrying until it succeeds just make the build hang when notarization fails because a change to ChimeraX makes it not pass notarization? Even for the case when the Apple service is down or overloaded retrying with no limit seems like a bad idea, exchanging one bad behavior (failed notarization) for an equally bad one, hanging the builds. The past behavior of retrying 5 times seemed like the sensible compromise.

comment:6 by Zach Pearson, 8 months ago

It's always notarizing that fails and never signing, and double-checking the script I can see why: signing waits for 30 seconds before retrying, but notarizing doesn't! It fails 5 times fast and then my retry action waits ten seconds before retrying the whole step. I could just add a call to time.sleep where necessary and remove the retry action, but as it is it's limited to 100 tries or 60 minutes total, whichever ends up being lower. Notarizing takes ~5-7 minutes so probably the time limit will be hit first.

comment:7 by Tom Goddard, 8 months ago

I'm not sure I was clear before. Notarization can fail because or distribution does not meet Apple requirements. Then trying over and over for 60 minutes does not make too much sense. But maybe it is ok given that there is a 60 minute limit. Since the previous method was try up to 5 times I think it also could not distinguish an Apple service failure from a non-compliant distribution failure, so that also would waste 5 retries if or distribution does not meet some notarization requirement. So it sounds like the current behavior is ok. I didn't know about 60 minute limit since a few comments ago you said it retries until it succeeds.

comment:8 by Zach Pearson, 8 months ago

Yes, sorry, when I said that I failed to take into account the case where a build was doomed to fail because it didn't meet Apple requirements.

comment:9 by Greg Couch, 8 months ago

Owner: changed from Greg Couch to Zach Pearson

comment:10 by Zach Pearson, 8 months ago

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