googleapis / googleapis/google-cloud-cpp

`ConnectionImplTest.MultiplexedPrecommitUpdated` failing in Kokoro Windows CMake build

Offen
#15,584 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
priority: p3
Vorherrschende Sprache
C++
Sterne
659
Forks
462
Ø Merge
1 T. 2 Std.
Gemergte PRs (30 T.)
89

Beschreibung

**Observed Behavior:**

The `ConnectionImplTest.MultiplexedPrecommitUpdated` test is failing in our Windows CMake builds on Kokoro. The test fails with an `Unexpected mock function call` for `StreamingRead`, immediately followed by a fatal `SEH exception with code 0xc0000005` (segmentation fault).

**Error Log:**
```
[ RUN ] ConnectionImplTest.MultiplexedPrecommitUpdated
unknown file: error:
Unexpected mock function call - returning default value.
Function call: StreamingRead((ptr = 0000024948901BC0, value = 384-byte object <00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 FF-FF FF-FF FF-FF FF-7F 00-00 00-00 01-00 00-00 ... 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00 00-00>), @0000024948946690 64-byte object <00-00 80-3F F6-7F 00-00 00-26 91-48 49-02 00-00 02-00 00-00 00-00 00-00 40-D0 91-48 49-02 00-00 C0-D0 91-48 49-02 00-00 C0-D0 91-48 49-02 00-00 07-00 00-00 00-00 00-00 08-00 00-00 00-00 00-00>, @0000024949256930 <
session: "multiplexed"
transaction {
id: "1234567890"
}
table: "table"
columns: "column1"
key_set {
all: true
}
request_options {
}
>)
Returns: (nullptr)
Google Mock tried the following 1 expectation, but it didn't match:

T:\src\github\google-cloud-cpp\google\cloud\spanner\internal\connection_impl_test.cc(3169): EXPECT_CALL(*mock, StreamingRead)...
Expected: all pre-requisites are satisfied
Actual: the following immediate pre-requisites are not satisfied:
T:\src\github\google-cloud-cpp\google\cloud\spanner\internal\connection_impl_test.cc(381): pre-requisite #0
(end of pre-requisites)
Expected: to be called once
Actual: never called - unsatisfied and active

unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
Stack trace:

[ FAILED ] ConnectionImplTest.MultiplexedPrecommitUpdated (4 ms)
```
**Temporary Workaround:**

The test has been temporarily disabled in the `ci/kokoro/windows/builds/cmake.ps1` script by adding an exclusion to the `ctest` command. This unblocks the CI while a proper fix is investigated.

**Action Required:**

Investigate the `ConnectionImplTest.MultiplexedPrecommitUpdated` test to understand why the call order is incorrect and fix the test. Once the test is fixed, the exclusion should be removed from the `cmake.ps1` build script.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit google/cloud/spanner/internal/connection_impl_test.cc, insbesondere mit den Erwartungen um die Zeilen 381 und 3169, und untersuche den deaktivierten Test in ci/kokoro/windows/builds/cmake.ps1. Reproduziere den Windows-CMake-Fehler und verfolge, warum StreamingRead vor seiner Voraussetzung auftritt. Die Aufgabe ist erledigt, wenn der Test bestanden wird und sein Ausschluss aus cmake.ps1 entfernt wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cmake, cpp
Bereich
ci-cd, testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.