Skip to content

Ensure HTTP errors are raised when fetching crash signatures

f37ad87
Select commit
Loading
Failed to load commit list.
Merged

Ensure HTTP errors are raised when fetching crash signatures #5597

Ensure HTTP errors are raised when fetching crash signatures
f37ad87
Select commit
Loading
Failed to load commit list.
Community-TC Integration / bugbug http service tests succeeded Jan 7, 2026 in 7m 42s

Community-TC (pull_request)

bugbug http service tests

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-01-07T19:38:54.678Z
Resolved: 2026-01-07T19:44:16.130Z
Task Execution Time: 5 minutes, 21 seconds, 452 milliseconds
Task Status: completed
Reason Resolved: completed
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log


[taskcluster 2026-01-07T19:38:54.729Z] Worker Type (proj-bugbug/compute-smaller) settings:
[taskcluster 2026-01-07T19:38:54.729Z]   {
[taskcluster 2026-01-07T19:38:54.729Z]     "config": {
[taskcluster 2026-01-07T19:38:54.729Z]       "deploymentId": "72fae00379f1a0ca"
[taskcluster 2026-01-07T19:38:54.729Z]     },
[taskcluster 2026-01-07T19:38:54.729Z]     "generic-worker": {
[taskcluster 2026-01-07T19:38:54.729Z]       "config": {
[taskcluster 2026-01-07T19:38:54.729Z]         "headlessTasks": false
[taskcluster 2026-01-07T19:38:54.729Z]       },
[taskcluster 2026-01-07T19:38:54.729Z]       "engine": "multiuser",
[taskcluster 2026-01-07T19:38:54.729Z]       "go-arch": "amd64",
[taskcluster 2026-01-07T19:38:54.729Z]       "go-os": "linux",
[taskcluster 2026-01-07T19:38:54.729Z]       "go-version": "go1.25.5",
[taskcluster 2026-01-07T19:38:54.729Z]       "release": "https://github.com/taskcluster/taskcluster/releases/tag/v95.0.2",
[taskcluster 2026-01-07T19:38:54.729Z]       "revision": "1323d556b9fedc5394d5c83036147ee983cac54d",
[taskcluster 2026-01-07T19:38:54.729Z]       "source": "https://github.com/taskcluster/taskcluster/commits/1323d556b9fedc5394d5c83036147ee983cac54d",
[taskcluster 2026-01-07T19:38:54.729Z]       "version": "95.0.2"
[taskcluster 2026-01-07T19:38:54.729Z]     },
[taskcluster 2026-01-07T19:38:54.729Z]     "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-nobheorrncouiwgbtyfq",
[taskcluster 2026-01-07T19:38:54.729Z]     "instance-id": "14898020570303269",

...(842 lines hidden)...

Downloading flask_cors-6.0.1-py3-none-any.whl (13 kB)
Downloading gunicorn-23.0.0-py3-none-any.whl (85 kB)
Downloading kombu-5.6.1-py3-none-any.whl (214 kB)
Downloading marshmallow-3.26.1-py3-none-any.whl (50 kB)
Downloading rq-2.6.1-py3-none-any.whl (112 kB)
Downloading rq_dashboard-0.8.6-py2.py3-none-any.whl (213 kB)
Downloading sentry_sdk-2.45.0-py2.py3-none-any.whl (404 kB)
Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Downloading redis-7.1.0-py3-none-any.whl (354 kB)
Downloading webargs-8.7.1-py3-none-any.whl (32 kB)
Downloading croniter-6.0.0-py2.py3-none-any.whl (25 kB)
Downloading Redis_Sentinel_Url-1.0.1-py2.py3-none-any.whl (4.7 kB)
Building wheels for collected packages: bugbug-http-service
  Building wheel for bugbug-http-service (setup.py) ... -� �\�|� �/� �done
  Created wheel for bugbug-http-service: filename=bugbug_http_service-0.0.617-py3-none-any.whl size=35022 sha256=a932ae81986c0f9380ddcfcd85e17e7b248df079dac1068a317175aeec9ccb89
  Stored in directory: /tmp/pip-ephem-wheel-cache-h6kme8n6/wheels/95/f3/17/087a179ea056096ae433a20934a06ba3620178dfafa8d0c733
Successfully built bugbug-http-service
Installing collected packages: sentry-sdk, redis, marshmallow, itsdangerous, gunicorn, cerberus, blinker, apispec, webargs, redis-sentinel-url, kombu, Flask, croniter, rq, flask-cors, flask-apispec, apispec-webframeworks, rq-dashboard, bugbug-http-service
  Attempting uninstall: marshmallow
    Found existing installation: marshmallow 3.26.2
    Uninstalling marshmallow-3.26.2:
      Successfully uninstalled marshmallow-3.26.2
Successfully installed Flask-3.1.2 apispec-6.9.0 apispec-webframeworks-1.2.0 blinker-1.9.0 bugbug-http-service-0.0.617 cerberus-1.3.8 croniter-6.0.0 flask-apispec-0.11.4 flask-cors-6.0.1 gunicorn-23.0.0 itsdangerous-2.2.0 kombu-5.6.1 marshmallow-3.26.1 redis-7.1.0 redis-sentinel-url-1.0.1 rq-2.6.1 rq-dashboard-0.8.6 sentry-sdk-2.45.0 webargs-8.7.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+ hg clone -r ae4bf6620a9a3821cfb9709bd03cd3f5f1849ff3 https://hg.mozilla.org/hgcustom/version-control-tools /version-control-tools/
*** failed to import extension "robustcheckout" from /version-control-tools/hgext/robustcheckout/__init__.py: [Errno 2] No such file or directory: '/version-control-tools/hgext/robustcheckout/__init__.py'
*** failed to import extension "hgmo" from /version-control-tools/hgext/hgmo: [Errno 2] No such file or directory: '/version-control-tools/hgext/hgmo'
*** failed to import extension "pushlog" from /version-control-tools/hgext/pushlog: [Errno 2] No such file or directory: '/version-control-tools/hgext/pushlog'
*** failed to import extension "mozext" from /version-control-tools/hgext/mozext: [Errno 2] No such file or directory: '/version-control-tools/hgext/mozext'
real URL is https://hg-edge.mozilla.org/hgcustom/version-control-tools
adding changesets
adding manifests
adding file changes

files [=============================>                           ] 1584/2992 02s
files [=================================>                       ] 1794/2992 01s
files [====================================>                    ] 1949/2992 01s
files [======================================>                  ] 2080/2992 01s
files [==========================================>              ] 2286/2992 01s
files [=============================================>           ] 2447/2992 01s
files [===============================================>         ] 2541/2992 01s
files [==================================================>      ] 2683/2992 01s
files [===================================================>     ] 2780/2992 01s
files [=======================================================> ] 2949/2992 01s
                                                                                
added 8302 changesets with 19787 changes to 2992 files
new changesets 8277a178b3cb:ae4bf6620a9a
updating to branch default
1289 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ pytest --cov=http_service http_service/tests/ -vvv
;\============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.0.1, pluggy-1.6.0 -- /usr/local/bin/python
cachedir: .pytest_cache
hypothesis profile 'default'
rootdir: /bugbug/http_service/tests
configfile: pytest.ini
plugins: cov-7.0.0, responses-0.5.1, hypothesis-6.148.2, anyio-4.12.1, langsmith-0.6.1
collecting ... 
collecting 0 items                                                             
collected 27 items                                                             

http_service/tests/test_bug_classification.py::test_model_predict_id �\PASSED [  3%]
http_service/tests/test_bug_classification.py::test_model_predict_id_github �\PASSED [  7%]
http_service/tests/test_bug_classification.py::test_model_predict_batch �\PASSED [ 11%]
http_service/tests/test_bug_classification.py::test_model_predict_batch_broken_site_reports �\PASSED [ 14%]
http_service/tests/test_bug_classification.py::test_for_missing_bugs �\PASSED [ 18%]
http_service/tests/test_bug_classification.py::test_empty_batch �\PASSED   [ 22%]
http_service/tests/test_bug_classification.py::test_non_int_batch �\PASSED [ 25%]
http_service/tests/test_bug_classification.py::test_unknown_model �\PASSED [ 29%]
http_service/tests/test_bug_classification.py::test_no_api_key �\PASSED    [ 33%]
http_service/tests/test_get_config_specific_groups.py::test_get_config_specific_groups �\PASSED [ 37%]
http_service/tests/test_patch_schedules.py::test_patch_schedules_post_with_cache �\PASSED [ 40%]
http_service/tests/test_patch_schedules.py::test_patch_schedules_get_with_cache �\PASSED [ 44%]
http_service/tests/test_patch_schedules.py::test_patch_schedules_get_without_cache �\PASSED [ 48%]
http_service/tests/test_patch_schedules.py::test_patch_schedules_empty_patch �\PASSED [ 51%]
http_service/tests/test_patch_schedules.py::test_patch_schedules_patch_without_diffs �\PASSED [ 55%]
http_service/tests/test_push_schedules.py::test_queue_job_valid �\PASSED   [ 59%]
http_service/tests/test_push_schedules.py::test_no_api_key �\PASSED        [ 62%]
http_service/tests/test_readthrough_cache.py::test_doesnt_cache_unless_accessed_within_ttl �\PASSED [ 66%]
http_service/tests/test_readthrough_cache.py::test_cache_purges_after_ttl �\PASSED [ 70%]
http_service/tests/test_readthrough_cache.py::test_cache_ttl_refreshes_after_get �\PASSED [ 74%]
http_service/tests/test_readthrough_cache.py::test_force_store �\PASSED    [ 77%]
http_service/tests/test_readthrough_cache.py::test_cache_thread �\PASSED   [ 81%]
http_service/tests/test_schedule_tests.py::test_simple_schedule[labels_to_choose0-groups_to_choose0-reduced_labels0-config_groups0] �\PASSED [ 85%]
http_service/tests/test_schedule_tests.py::test_simple_schedule[labels_to_choose1-groups_to_choose1-reduced_labels1-config_groups1] �\PASSED [ 88%]
http_service/tests/test_schedule_tests.py::test_simple_schedule[labels_to_choose2-groups_to_choose2-reduced_labels2-config_groups2] �\PASSED [ 92%]
http_service/tests/test_schedule_tests.py::test_simple_schedule[labels_to_choose3-groups_to_choose3-reduced_labels3-config_groups3] �\PASSED [ 96%]
http_service/tests/test_schedule_tests.py::test_simple_schedule[labels_to_choose4-groups_to_choose4-reduced_labels4-config_groups4] �\PASSED [100%];�\

=============================== warnings summary ===============================
<frozen importlib._bootstrap>:488
  <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type SwigPyPacked has no __module__ attribute

<frozen importlib._bootstrap>:488
  <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type SwigPyObject has no __module__ attribute

<frozen importlib._bootstrap>:488
  <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type swigvarlink has no __module__ attribute

http_service/bugbug_http/readthrough_cache.py:73
test_readthrough_cache.py::test_cache_thread
  /bugbug/http_service/bugbug_http/readthrough_cache.py:73: DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead
    thread.setDaemon(True)

../usr/local/lib/python3.12/site-packages/marshmallow/fields.py:1218
  /usr/local/lib/python3.12/site-packages/marshmallow/fields.py:1218: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'enum': [False]}
    super().__init__(**kwargs)

http_service/bugbug_http/app.py:115
  /bugbug/http_service/bugbug_http/app.py:115: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'enum': ['defectenhancementtask', 'component', 'invalidcompatibilityreport', 'needsdiagnosis', 'regression', 'stepstoreproduce', 'spambug', 'testlabelselect', 'testgroupselect', 'accessibility', 'performancebug', 'worksforme', 'fenixcomponent'], 'example': 'component'}
    model_name = fields.Str(enum=MODELS_NAMES, example="component")

http_service/bugbug_http/app.py:119
  /bugbug/http_service/bugbug_http/app.py:119: RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead.
    message = fields.Str(default="Error, missing X-API-KEY")

http_service/bugbug_http/app.py:123
  /bugbug/http_service/bugbug_http/app.py:123: RemovedInMarshmallow4Warning: Passing field metadata as keyword arguments is deprecated. Use the explicit `metadata=...` argument instead. Additional metadata: {'example': 'autoland'}
    branch = fields.Str(example="autoland")

test_schedule_tests.py: 10 warnings
  /usr/local/lib/python3.12/site-packages/bugbug/repository.py:900: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    pushdate = datetime.utcnow()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.3-final-0 ________________

Name                                                    Stmts   Miss  Cover
---------------------------------------------------------------------------
http_service/bugbug_http/__init__.py                        4      0   100%
http_service/bugbug_http/app.py                           402     46    89%
http_service/bugbug_http/boot.py                          127    127     0%
http_service/bugbug_http/download_models.py                18     18     0%
http_service/bugbug_http/listener.py                       59     59     0%
http_service/bugbug_http/models.py                        176     98    44%
http_service/bugbug_http/readthrough_cache.py              44      0   100%
http_service/bugbug_http/sentry.py                          7      2    71%
http_service/bugbug_http/worker.py                         21     21     0%
http_service/setup.py                                      10     10     0%
http_service/tests/__init__.py                              0      0   100%
http_service/tests/conftest.py                            235      9    96%
http_service/tests/test_bug_classification.py             114      1    99%
http_service/tests/test_get_config_specific_groups.py      10      0   100%
http_service/tests/test_integration.py                     38     28    26%
http_service/tests/test_patch_schedules.py                 67      3    96%
http_service/tests/test_push_schedules.py                  24      1    96%
http_service/tests/test_readthrough_cache.py              113      6    95%
http_service/tests/test_schedule_tests.py                  30      0   100%
---------------------------------------------------------------------------
TOTAL                                                    1499    429    71%
======================= 27 passed, 19 warnings in 17.60s =======================
+ bash /dev/fd/63
++ curl -s https://codecov.io/bash

  _____          _
 / ____|        | |
| |     ___   __| | ___  ___ _____   __
| |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| |  __/ (_| (_) \ V /
 \_____\___/ \__,_|\___|\___\___/ \_/
                              Bash-1.0.6


==> git version 2.39.2 found
==> curl 7.88.1 (x86_64-pc-linux-gnu) libcurl/7.88.1 OpenSSL/3.0.11 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13
Release-Date: 2023-02-20, security patched: 7.88.1-10+deb12u5
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
x> No CI provider detected.
    Testing inside Docker? http://docs.codecov.io/docs/testing-with-docker
    Testing with Tox? https://docs.codecov.io/docs/python#section-testing-with-tox
    current dir:  /bugbug
    project root: .
--> token set from env
    Yaml found at: .codecov.yml
==> Running gcov in . (disable via -X gcov)
==> Python coveragepy exists disable via -X coveragepy
    -> Running coverage xml
==> Searching for coverage reports in:
    + .
    -> Found 1 reports
==> Detecting git/mercurial file structure
==> Reading reports
    + ./coverage.xml bytes=57812
==> Appending adjustments
    https://docs.codecov.io/docs/fixing-reports
    -> No adjustments found
==> Gzipping contents
        8.0K	/tmp/codecov.9RKIXf.gz
==> Uploading reports
    url: https://codecov.io
    query: branch=&commit=f37ad87a5033c570c2563c57cf0b9e5dda59273a&build=&build_url=&name=&tag=&slug=&service=&flags=&pr=&job=&cmd_args=
->  Pinging Codecov
https://codecov.io/upload/v4?package=bash-1.0.6&token=<hidden>&package=bash-1.0.6&token=66162f89-a4d9-420c-84bd-d10f12a428d9&branch=&commit=f37ad87a5033c570c2563c57cf0b9e5dda59273a&build=&build_url=&name=&tag=&slug=&service=&flags=&pr=&job=&cmd_args=
->  Uploading to
https://storage.googleapis.com/codecov-production/shelter/v4/github/mozilla/bugbug/f37ad87a5033c570c2563c57cf0b9e5dda59273a/6ed53aff-72a2-462b-b246-c43d6517451a.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=GOOG1EJWQHUGIBILH4J7Q6ZUSCIFNEOLYSNDS7L3B4N5SIBQ2J4YLYE5CRFCD%2F20260107%2Fus%2Fs3%2Faws4_request&X-Amz-Date=20260107T194413Z&X-Amz-Expires=120&X-Amz-SignedHeaders=host&X-Amz-Signature=057ee9cc17833871cded7ac5b444c727c8fbae24c7a872e918c214b2c14d2479
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  6222    0     0  100  6222      0  30509 --:--:-- --:--:-- --:--:-- 30500
100  6222    0     0  100  6222      0  23425 --:--:-- --:--:-- --:--:-- 23390
    -> Reports have been successfully queued for processing at https://app.codecov.io/github/mozilla/bugbug/commit/f37ad87a5033c570c2563c57cf0b9e5dda59273a
[taskcluster 2026-01-07T19:44:14.295Z]                        Exit Code: 0
[taskcluster 2026-01-07T19:44:14.295Z]                        User Time: 127.736ms
[taskcluster 2026-01-07T19:44:14.295Z]                      Kernel Time: 61.932ms
[taskcluster 2026-01-07T19:44:14.295Z]                        Wall Time: 4m49.409550925s
[taskcluster 2026-01-07T19:44:14.295Z]  Average Available System Memory: 5.72 GiB
[taskcluster 2026-01-07T19:44:14.295Z]       Average System Memory Used: 2.03 GiB
[taskcluster 2026-01-07T19:44:14.295Z]          Peak System Memory Used: 3.91 GiB
[taskcluster 2026-01-07T19:44:14.295Z]              Total System Memory: 7.75 GiB
[taskcluster 2026-01-07T19:44:14.295Z]                           Result: SUCCEEDED
[taskcluster 2026-01-07T19:44:14.296Z] === Task Finished ===
[taskcluster 2026-01-07T19:44:14.296Z] Task Duration: 4m49.410084664s