Skip to content

Conversation

@achamayou
Copy link
Member

@achamayou achamayou commented Nov 7, 2025

Fresh start on remaining parts of #7417 to pack the tests more efficiently.

Commit CI Time
main 28m
6f92e74 26m

Those steps have been tested successfully so far:

  1. Merge committable, reconfiguration, rotation and election tests
  2. Merge connections (+reduce network size) and fuzzing tests
  3. Merge membership and governance tests
  4. Merge redirect and programmability tests

@achamayou
Copy link
Member Author

achamayou commented Nov 9, 2025

Really strange failure, with the schema endpoint returning an empty body:

2025-11-09 15:31:06.005 | ERROR    | {schema} infra.runner:log_exception:194 - Failure in schema: JSONDecodeError('Expecting value: line 1 column 1 (char 0)')
Traceback (most recent call last):

  File "/usr/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
    self.run()
    └ <Thread(schema, started 127166095406784)>
  File "/usr/lib/python3.12/threading.py", line 1012, in run
    self._target(*self._args, **self._kwargs)
    │             │             └ <Thread(schema, started 127166095406784)>
    │             └ <Thread(schema, started 127166095406784)>
    └ <Thread(schema, started 127166095406784)>
  File "/__w/CCF/CCF/tests/schema.py", line 127, in run
    if not fetch_schema(
  File "/__w/CCF/CCF/tests/schema.py", line 39, in fetch_schema
    response_body = api_response.body.json()
                    └ Response(status_code=200, body=b'', seqno=None, view=None, headers=Headers({'content-length': '0', 'content-type': 'application/...
  File "/__w/CCF/CCF/tests/infra/clients.py", line 234, in json
    return self._response.json()
           └ b''
  File "/__w/CCF/CCF/build/env/lib/python3.12/site-packages/httpx/_models.py", line 756, in json
    return jsonlib.loads(self.text, **kwargs)
           │             │            └ {}
           │             └ <Response [200 OK]>
           └ <module 'json' from '/usr/lib/python3.12/json/__init__.py'>
  File "/usr/lib/python3.12/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           │                       └ ''
           └ <json.decoder.JSONDecoder object at 0x73a85990c230>
  File "/usr/lib/python3.12/json/decoder.py", line 338, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               │               │      │  └ ''
               │               │      └ <built-in method match of re.Pattern object at 0x73a85972c2b0>
               │               └ ''
               └ <json.decoder.JSONDecoder object at 0x73a85990c230>
  File "/usr/lib/python3.12/json/decoder.py", line 356, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
          │                                  └ ''
          └ <class 'json.decoder.JSONDecodeError'>

https://github.com/microsoft/CCF/actions/runs/19175402504/job/54911735292?pr=7448

@achamayou
Copy link
Member Author

This is caused by the GOV_API_SCHEMA_2023_06_01_PREVIEW cmake var being expanded in api_schema.h.in. The test failing is comparing the contents of the file to what is returned by /gov/api?api-version=2023-06-01-preview.

In a build with a clean cmake cache, GOV_API_SCHEMA_2023_06_01_PREVIEW is empty, and so the endpoint legitimately returns an empty body.

I am restoring the cmake variable for now, and will PR a separate removal of 2023-06-01-preview, or at least its deprecation for 7.x (depending on the usage situation).

@achamayou
Copy link
Member Author

2024-07-01 is mostly a fairly small extension of 2023-06-01-preview to add /gov/service/js-modules/* endpoints, which is why we stopped duplicating the governance API tests. I think we can deprecate 2023-06-01-preview in 7.x, and drop it in 8.x. There is very little code that will be removed when it goes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants