-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RC1 TCK: IdentityProcessorVerification expectations #30
Comments
In addition, I have trouble with Required_mustRequestFromUpstreamForElementsThatHaveBeenRequestedLongAgo:
Without line numbers, I speculate L552 fails due to the lockstep nature of my fanout |
|
@viktorklang If the upstream emission sequence was |
@akarnokd If the error has been detected/encountered by the upstream it should be propagated to current subscribers. |
In practice, many stream users want to process as many items as received and delay the error to the very end. This is why most operators that have an implicit or explicit async boundary have the option to have the
Doesn't say or require an immediate notification. |
@akarnokd Just to be clear, RS does not define the terms "fail-fast mode" nor "delay-error mode". Since there is no corresponding issue open against reactive-streams-jvm, I'm assuming that the above is not an issue there? If so, I'd like to understand why. |
These are issues in reactive-streams-jvm as well but I discovered them only when I implemented Since RS is in-memory, it is possible data is buffered and is available when the final event, an I think the best would be I post a PR to the JVM version that enables this behavior so actual Java code can be analyzed and discussed. |
Posted a PR to enhance the JVM version: |
Maybe this isn't the right place for this but currently I have code available for C# (RxJava 2 doesn't do
IdentityProcessorVerification
).I've encountered problems with the
IdentityProcessorVerification
:Required_spec104_mustCallOnErrorOnAllItsSubscribersIfItEncountersANonRecoverableError
Looking at the source code, this test expects that an
Exception
is delivered eagerly to anISubscriber
even if it hasn't requested. My fanoutIPublisher
implementation first delivers available items and then any error which I believe is also legal. Maybe the verification at L347 could first check if there was an error emitted and if not, request 1 from sub2 and then check for the value and the error.Required_exerciseWhiteboxHappyPath
Looks like this test expects that when a single the
ISubscriber
cancels itsISubscription
, theIProcessor
cancels itsISubscription
. The same fanoutIPublisher
won't cancel itsISubscription
asISubscriber
s are allowed to come and go at will. I think both behaviors are acceptable and maybe this check should be optionally disabled via apublic virtual long SupportsUpstreamCancelOnSubscriberCancel { get; }
parameter for example.The text was updated successfully, but these errors were encountered: