Commit graph

21 commits

Author SHA1 Message Date
Konrad 'ktoso' Malawski
630beb0a5c =str #16315 fixes assumption that substream key is always present
Additional fix for race when timout put to mailbox, then timeout cancelled and subscribe succeeds.
So it could happen, that JUST BEFORE `subscriptionTimeout.cancel()` the
`SubstreamSubscriptionTimeout` was already put into the actor's mailbox,
the cancelling then kicks in (does nothing) and then the attaching of
the subscriber kicks in, it passes OK. So the actor gets the timeout
first and then the subscription... So the publisher is already
subscribed to by some subsciber. But now the actor gets the
SubstreamSubscriptionTimeout message, and wants to subscribe the
cancelling subscriber to it. The publisher can only handle 1 subscriber,
so attaching of the cancelling subscriber will fail - well this is not
very bad, because it will just onError the cancelling subscriber rigth
away, but it can be missleading because the debug log will contain the
"cancelling... after..." message, while it has not REALLY cancelled it.

The isAttached can not be added to handleSubscriptionTimeout because
there it's "too late" and the log message would already be sent..

So while writing this up I noticed that it's not an "error race", but
it's still a race we could avoid when putting this isAttached check
before cancelling the publisher... do you think it's worth it?
2014-11-19 10:17:33 +01:00
Björn Antonsson
d20d0570c9 Merge pull request #16282 from akka/wip-16263-subscription-timeout-ban
!str #16263 Made subscription timeout handling run mostly inside the actor
2014-11-12 13:31:01 +01:00
Björn Antonsson
5a26718050 !str #16263 Made subscription timeout handling run mostly inside the actor 2014-11-12 13:05:57 +01:00
Konrad 'ktoso' Malawski
0f4abb687f =str #16272 splitWhen should drop reference when done with substream
The completeSubstreamOutput is used to not early complete the stream,
where as invalidating would shutdown the stream too early (and elements
wouldn't be emitted as expected).
2014-11-12 11:59:06 +01:00
Konrad 'ktoso' Malawski
15abdaeb15 +str #15086 substream publishers now have subscription-timeouts 2014-11-06 15:30:50 +01:00
Konrad 'ktoso' Malawski
54e55a659c +str reintroduced the TCK, 0.4.0.M2-SNAPSHOT, passing all tests
Cheers from JavaZone!
2014-09-10 17:44:01 +02:00
Björn Antonsson
8265f92330 =str #15402 Split up MultiStream(Input|Output)Processor since SSL will use both 2014-09-10 12:14:09 +02:00
Endre Sándor Varga
3a60ed96d1 !str #15604: Removal of default fanout behavior 2014-09-04 15:49:14 +02:00
Patrik Nordwall
b6a915a68c !str #15289 Java API for ActorPublisher and ActorSubscriber
* had to change api because of trait+object not useable from java
* ActorSubscriber.RequestStrategy and its implementations moved to
  top level
* messages moved to ActorSubscriberMessage and ActorPublisherMessage
  object
2014-08-22 11:46:36 +02:00
Patrik Nordwall
4be757e492 =str #15608 Make sure ExposedPublisher is first 2014-08-21 12:30:16 +02:00
Endre Sándor Varga
d6fbadc61e !str: #15474: Migrate to reactive-streams 0.4.0.M1 2014-07-28 11:35:20 +02:00
Johannes Rudolph
3b77234eb8 =str #15347 in concat propagate errors in secondary upstream properly 2014-06-10 14:09:08 +02:00
Endre Sándor Varga
a99902077e +str #15088, #15200: Add takeAndTail and concatAll 2014-05-22 15:19:18 +02:00
Patrik Nordwall
902e6ee6f8 +str #15173 Add user support for actor consumer endpoint
* with full control over back pressure
* and pluggable request strategy
2014-05-22 08:44:25 +02:00
Endre Sándor Varga
646b376333 +str : Various cleanups of internal streams architecture
- factor out receive blocks for inputs and outputs
 - pump uses TransferPhases and become
 - Unification of Transformer and RecoveryTransformer
2014-05-19 14:26:41 +02:00
Patrik Nordwall
e9a2585050 +str #15174 Add dispatcher setting to FlowMaterializer
* Verify dispatcher with custom default mailbox
2014-05-14 22:04:44 +02:00
Endre Sándor Varga
406d06a540 !str Initial version of Tcp implementation 2014-04-16 17:12:27 +02:00
Endre Sándor Varga
14ef65262f !str Increased test coverage 2014-04-16 17:12:23 +02:00
Patrik Nordwall
a318676f4a !str Rename ProcessGenerator to FlowMaterializer 2014-04-16 17:12:21 +02:00
Endre Sándor Varga
441144e44f !str Fixed comments round 1 2014-04-16 17:11:30 +02:00
Roland Kuhn
429f68e9d9 !str Implementation of multi-stream operations
- groupBy and splitWhen
 - static fan-ins: merge, concat, zip
 - factored out input and output conditions
 - factored out side-stream management logic
2014-04-16 17:11:27 +02:00