Closed Bug 1440287 Opened 6 years ago Closed 6 years ago

add 1yr artifact_expiration_hours to production scriptworker instances

Categories

(Release Engineering :: Release Automation: Other, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mozilla, Assigned: mozilla)

References

Details

Attachments

(2 files, 2 obsolete files)

Per bug 1425571 - we want our release automation to have logs that last at least a year.
Comment on attachment 8953054 [details]
bug 1440287 - 1yr artifact expiration for production scriptworkers.

https://reviewboard.mozilla.org/r/222328/#review228250

LGTM!
Attachment #8953054 - Flags: review?(jlorenzo) → review+
Attachment #8953054 - Attachment is obsolete: true
Landed the previous patch, but it looks like we need to use $env_config[...] instead.
Comment on attachment 8953127 [details]
bug 1440287 - fix artifact_expiration_hours.

https://reviewboard.mozilla.org/r/222396/#review228338

Let's file a follow up to be consistent across scriptworker modules. In my opinion, init.pp should be agnostic of how a setting is computed.

::: modules/pushapk_scriptworker/manifests/init.pp:17
(Diff revision 1)
>      include packages::libffi
>      include pushapk_scriptworker::jarsigner_init
>      include pushapk_scriptworker::mime_types
>      include tweaks::scriptworkerlogrotate
>  
> +    $env_config      = $pushapk_scriptworker::settings::env_config[$pushapk_scriptworker_env]

Nit: In the case of push-apk and ship-it, $env_config is an implentation detail that isn't exposed. Instead, we should define `$pushapk_scriptworker::settings::artifact_expiration_hours` in settings.pp.

We can keep your change as is, as a matter of consistency. In an ideal world, I'd prefer to let the config logic in settings.pp
Attachment #8953127 - Flags: review?(jlorenzo) → review+
Comment on attachment 8953127 [details]
bug 1440287 - fix artifact_expiration_hours.

https://reviewboard.mozilla.org/r/222396/#review228338

> Nit: In the case of push-apk and ship-it, $env_config is an implentation detail that isn't exposed. Instead, we should define `$pushapk_scriptworker::settings::artifact_expiration_hours` in settings.pp.
> 
> We can keep your change as is, as a matter of consistency. In an ideal world, I'd prefer to let the config logic in settings.pp

Fixed!
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Backed out because it broke nightly signing on central[1]: 
* from default https://hg.mozilla.org/build/puppet/rev/1f567d6f5cd60f6aaaeca53b9539d9944652091d
* from production https://hg.mozilla.org/build/puppet/rev/25b2fffd4a4e6fdafb779740b66483c66359f8b7

The error gotten (from papertrail): 
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker taskcluster.exceptions.TaskclusterRestFailure: Artifact expires (2019-02-23T12:29:56.220Z) after the task expiration 2019-02-23T09:59:28.158Z (task.expires < expires) - this is not allowed, artifacts may not expire after the task they belong to expires
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker ----
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker method:     createArtifact
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker errorCode:  InputError
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker statusCode: 400
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker time:       2018-02-23T12:29:57.020Z
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker Traceback (most recent call last):
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/bin/scriptworker", line 9, in <module>
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     load_entry_point('scriptworker==8.1.0', 'console_scripts', 'scriptworker')()
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/worker.py", line 112, in main
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     loop.run_until_complete(async_main(context))
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/tools/python35/lib/python3.5/asyncio/base_events.py", line 387, in run_until_complete
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     return future.result()
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/tools/python35/lib/python3.5/asyncio/futures.py", line 274, in result
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     raise self._exception
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/tools/python35/lib/python3.5/asyncio/tasks.py", line 239, in _step
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     result = coro.send(None)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/worker.py", line 97, in async_main
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     await run_loop(context)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/worker.py", line 67, in run_loop
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     await upload_artifacts(context)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/artifacts.py", line 86, in upload_artifacts
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     await raise_future_exceptions(tasks)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/utils.py", line 321, in raise_future_exceptions
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     succeeded_results, _ = await _process_future_exceptions(tasks, raise_at_first_error=True)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/utils.py", line 357, in _process_future_exceptions
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     raise exc
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/tools/python35/lib/python3.5/asyncio/tasks.py", line 239, in _step
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     result = coro.send(None)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/artifacts.py", line 153, in retry_create_artifact
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     kwargs=kwargs
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/utils.py", line 254, in retry_async
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     return await func(*args, **kwargs)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/scriptworker/artifacts.py", line 189, in create_artifact
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     tc_response = await context.temp_queue.createArtifact(*args)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/taskcluster/async/queue.py", line 461, in createArtifact
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     return await self._makeApiCall(self.funcinfo["createArtifact"], *args, **kwargs)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/taskcluster/async/asyncclient.py", line 74, in _makeApiCall
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     response = await self._makeHttpRequest(entry['method'], _route, payload)
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker   File "/builds/scriptworker/lib/python3.5/site-packages/taskcluster/async/asyncclient.py", line 197, in _makeHttpRequest
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker     superExc=None
> Feb 23 04:29:57 signing-linux-7.srv.releng.use1.mozilla.com python: signing_scriptworker taskcluster.exceptions.TaskclusterRestFailure: Artifact expires (2019-02-23T12:29:56.220Z) after the task expiration 2019-02-23T09:59:28.158Z (task.expires < expires) - this is not allowed, artifacts may not expire after the task they belong to expires 

[1] https://tools.taskcluster.net/groups/Q9B8UWWrRmSgi3PJCUuNwA/tasks/L5Fy42AbT6SbtKww4CCRmg/runs/5
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
https://tools.taskcluster.net/groups/ULHX1tJhQa6KsVmoqsmFXw/tasks/eadDvmbwQfifN1gkh-nSFw/details expires in 1year.
I should do what the taskgraph does, and set my artifact expiration to the same time.
Attachment #8953127 - Attachment is obsolete: true
Attachment #8954593 - Flags: review?(jlorenzo)
Attachment #8954599 - Flags: review?(jlorenzo)
Comment on attachment 8954599 [details] [diff] [review]
puppet-artifact.diff

Review of attachment 8954599 [details] [diff] [review]:
-----------------------------------------------------------------

This new approach is great :D
Attachment #8954599 - Flags: review?(jlorenzo) → review+
Attachment #8954593 - Flags: review?(jlorenzo) → review+
This works!

https://tools.taskcluster.net/groups/ACuI42HkR2OdWwziG4q0Dw/tasks/URB9n9HbS5WmD-60X-LgDw/details expires 2018-03-30T22:31:07.272Z
https://queue.taskcluster.net/v1/task/URB9n9HbS5WmD-60X-LgDw/runs/0/artifacts shows they expire 2018-03-30T22:31:07.272Z

I just need to cut a new scriptworker release and push it out with the attached puppet patch.
Appears to have worked: https://queue.taskcluster.net/v1/task/Nh9D7wVeScSA3Rx7Ad6Qcw/runs/0/artifacts expire in 1 year's time.
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: