world-federation-of-advertisers / cross-media-measurement

Apache License 2.0
34 stars 11 forks source link

Add HMSS in process tests. #1691

Closed ple13 closed 1 month ago

wfa-reviewable commented 1 month ago

This change is Reviewable

SanjayVas commented 1 month ago

I'm investigating this interesting failure:

1) create a Hmss RF measurement and check the result is equal to the expected result(org.wfanet.measurement.integration.deploy.gcloud.GCloudSpannerInProcessLifeOfAMeasurementIntegrationTest)
expected: HONEST_MAJORITY_SHARE_SHUFFLE
but was : DIRECT
    at org.wfanet.measurement.loadtest.measurementconsumer.MeasurementConsumerSimulator.testReachAndFrequency(MeasurementConsumerSimulator.kt:264)
    at org.wfanet.measurement.loadtest.measurementconsumer.MeasurementConsumerSimulator$testReachAndFrequency$1.invokeSuspend(MeasurementConsumerSimulator.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at org.wfanet.measurement.integration.common.InProcessLifeOfAMeasurementIntegrationTest.create a Hmss RF measurement and check the result is equal to the expected result(InProcessLifeOfAMeasurementIntegrationTest.kt:131)

My best guess at the moment is that there's a race condition where not all EDP simulators have updated their DataProvider resource capabilities. Likely the replaceDataProviderCapabilities RPC needs to be extracted to its own method rather than being called from run. This is similar to what was done with ensureEventGroup.

SanjayVas commented 1 month ago

Filed #1728 for the above.