Skip to content

fix: Clone DIRACGrid/DIRAC in the integration tests again - #199

Merged
chrisburr merged 2 commits into
DIRACGrid:mainfrom
chrisburr:fix/remove-integration-test-hack
Aug 31, 2026
Merged

fix: Clone DIRACGrid/DIRAC in the integration tests again#199
chrisburr merged 2 commits into
DIRACGrid:mainfrom
chrisburr:fix/remove-integration-test-hack

Conversation

@chrisburr

Copy link
Copy Markdown
Member

🤖 ccf6911 ("Bump prefix-dev/setup-pixi from 0.10.0 to 0.10.1 (#196)") accidentally merged a temporary hack that pointed the integration tests at chrisburr/DIRAC fix/plot-tests-numpy-bins-{v8r0,v9r0,integration} instead of DIRACGrid/DIRAC, so main has not been testing against the real DIRAC branches since then.

No need for release notes.

ccf6911 ("Bump prefix-dev/setup-pixi from 0.10.0 to 0.10.1 (DIRACGrid#196)")
accidentally merged a temporary hack that pointed the integration tests
at chrisburr/DIRAC fix/plot-tests-numpy-bins-{v8r0,v9r0,integration}
instead of DIRACGrid/DIRAC, so main has not been testing against the
real DIRAC branches since then.

The plot test fixes those branches carried have been merged upstream
(DIRACGrid/DIRAC#8753, #8754 and #8755) and are present in rel-v8r0,
rel-v9r0 and integration, so the hack is no longer needed.
conda-forge published m2crypto 0.46.0 through 0.49.0 on 2026-08-28,
which broke every integration test with:

    SystemError: <built-in function ssl_read> returned a result with an
    exception set

0.46.0 rewrote ssl_read() in src/SWIG/_ssl.i and inverted the handling
of ssl_sleep_with_timeout()'s return value: that helper returns 0 when
poll() reports the fd is ready and -1 on timeout, but the new code
treats 0 as a failure and falls through to retry on -1. It also dropped
the gettimeofday() that initialised the deadline, so the timeout is
computed from an uninitialised struct timeval.

The result is that any read() on a connection with a timeout set spins
on SSL_read() until data arrives and then returns a value with a stale
SSLTimeoutError still set, which breaks all DIRAC DISET/dips traffic.
ssl_connect(), ssl_write() and ssl_accept() are unaffected.

Reproduced against the conda-forge builds of 0.46.0 and 0.49.0; 0.45.1
is the last working release and the bug is still present upstream.
@chrisburr
chrisburr merged commit a34e72b into DIRACGrid:main Aug 31, 2026
16 checks passed
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.

1 participant