dotnet / dotnet/reactive

AsyncRx.NET GroupByUntil can crash when group keys reused

Open
#2,200 0 comments 0 reactions 1 assignee Claimed by @idg10 View on GitHub
[area] AsyncRx bug
Dominant language
C#
Stars
7.2k
Forks
798
PR merge metrics
No merged PRs in 30d

Description

#### Bug

> Which library version?

`6.0.0-alpha.18`

> What is the use case or problem?

When the source for `GroupByUntil` calls `OnCompleted`, if there are any unexpired groups still active the `GroupByUntil` operator ends up calling `OnCompleted` twice, which violates the Rx observer grammar.

This happens because there are two different code paths that call `OnCompletedAsync` on a group, but only one of them records the fact that has already completed the group, enabling the double call.

> What is the expected outcome?

Each group should call `OnCompleted` exactly once on each observer.

> What is the actual outcome?

Some groups call `OnCompleted` twice on their observers.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.