Summary
CI on main has been red since the v1.8.73–88 batch: five unit tests fail on every platform job (windows msvc-x64/x86, macos-14, ubuntu ninja-clang with and without TLS). The failure fingerprint is identical across the last three ci runs, including the run before any of our SQL-parity commits landed, so this is not fallout from f1f4339f/45e55a99.
Failing tests (same set in every job)
| Test |
Assertion |
network_server_test.cpp:654 — M12.7 remote SQL exec: SELECT cursor + COUNT round-trip |
REQUIRE(AdsExecuteSQLDirect(...) == 0) fails (FATAL) |
network_server_test.cpp:1497 — Enterprise pool: server-side SQL SELECT cursor over the pooled path |
REQUIRE(AdsExecuteSQLDirect(...) == 0) fails (FATAL) |
session_connection_test.cpp:189 — Connection legacy_paths ignores host-absolute file outside data root |
resolve_table_file(host_abs) == host_can fails |
session_connection_test.cpp:392 — remote server refuses host-absolute leftover and stays in the jail |
got.rfind(jail_can, 0) == 0 fails |
abi_lock_comprehensive_test.cpp:713 — Table lock and record locks coexist independently |
CHECK(cnt == 2) fails |
macos-14 additionally shows an intermittent ByteLock exclusive lock blocks a second exclusive lock (try) failure.
Evidence it pre-dates the parity commits
- Run 31996160296 (
2043964b — feat(session): process-wide RESOLVED sequence column): same 5 jobs, same 5 tests.
- Run 32060040670 (
45e55a99 — our push): identical fingerprint; the tests added/changed by the parity commits (abi_sql_show_deleted_test, ADI seek/keycount, copy-table) pass on all platforms.
- Run 32061472735 (feat(audit): A/U prefix, thread ID, and log retention): still failing after.
- Locally reproduced on a clean
origin/main build (Windows, ninja-clang) with all parity changes stashed: the same five tests fail.
Probable area
All five tests live in code reworked in v1.8.73–88: remote/network SQL execution, the RESOLVED path-resolution jail (resolve_table_file / legacy_paths), and the lock manager. The two session_connection cases fail on the host-absolute-path handling that the RESOLVED sequence work touched; the two network_server SQL execs fail at statement execution over the server path; the lock test count changed from 2.
Related note
45e55a99 made the new RESOLVED audit stderr echo opt-in (OPENADS_LOG / OPENADS_RESOLVE_VERBOSE, or an explicit set_audit_console() sink): the unconditional stderr write from inside the DLL polluted every embedded consumer's output (php under Apache, Harbour apps, the SAP-parity harness — the qa-diff gates dropped from 41/1 + 37/18 to 9/33 + 5/50 until it was gated). OPENADS_LOG_FILE behaviour is unchanged. Flagging here since the audit work is ongoing — if a different default is wanted for serverd, set_audit_console(&std::cerr) at serverd startup keeps the DLL silent for embedded hosts.
Summary
CI on
mainhas been red since the v1.8.73–88 batch: five unit tests fail on every platform job (windows msvc-x64/x86, macos-14, ubuntu ninja-clang with and without TLS). The failure fingerprint is identical across the last threeciruns, including the run before any of our SQL-parity commits landed, so this is not fallout fromf1f4339f/45e55a99.Failing tests (same set in every job)
network_server_test.cpp:654— M12.7 remote SQL exec: SELECT cursor + COUNT round-tripREQUIRE(AdsExecuteSQLDirect(...) == 0)fails (FATAL)network_server_test.cpp:1497— Enterprise pool: server-side SQL SELECT cursor over the pooled pathREQUIRE(AdsExecuteSQLDirect(...) == 0)fails (FATAL)session_connection_test.cpp:189— Connection legacy_paths ignores host-absolute file outside data rootresolve_table_file(host_abs) == host_canfailssession_connection_test.cpp:392— remote server refuses host-absolute leftover and stays in the jailgot.rfind(jail_can, 0) == 0failsabi_lock_comprehensive_test.cpp:713— Table lock and record locks coexist independentlyCHECK(cnt == 2)failsmacos-14 additionally shows an intermittent
ByteLock exclusive lock blocks a second exclusive lock (try)failure.Evidence it pre-dates the parity commits
2043964b— feat(session): process-wide RESOLVED sequence column): same 5 jobs, same 5 tests.45e55a99— our push): identical fingerprint; the tests added/changed by the parity commits (abi_sql_show_deleted_test, ADI seek/keycount, copy-table) pass on all platforms.origin/mainbuild (Windows, ninja-clang) with all parity changes stashed: the same five tests fail.Probable area
All five tests live in code reworked in v1.8.73–88: remote/network SQL execution, the RESOLVED path-resolution jail (
resolve_table_file/ legacy_paths), and the lock manager. The twosession_connectioncases fail on the host-absolute-path handling that the RESOLVED sequence work touched; the twonetwork_serverSQL execs fail at statement execution over the server path; the lock test count changed from 2.Related note
45e55a99made the new RESOLVED audit stderr echo opt-in (OPENADS_LOG/OPENADS_RESOLVE_VERBOSE, or an explicitset_audit_console()sink): the unconditional stderr write from inside the DLL polluted every embedded consumer's output (php under Apache, Harbour apps, the SAP-parity harness — the qa-diff gates dropped from 41/1 + 37/18 to 9/33 + 5/50 until it was gated).OPENADS_LOG_FILEbehaviour is unchanged. Flagging here since the audit work is ongoing — if a different default is wanted for serverd,set_audit_console(&std::cerr)at serverd startup keeps the DLL silent for embedded hosts.