parent
12536a3537
commit
dce668771e
5 changed files with 26 additions and 15 deletions
|
|
@ -107,10 +107,8 @@ abstract class NodeChurnSpec
|
|||
|
||||
def isArteryEnabled: Boolean = RARP(system).provider.remoteSettings.Artery.Enabled
|
||||
|
||||
// FIXME issue #21483
|
||||
if (isArteryEnabled) pending
|
||||
|
||||
"Cluster with short lived members" must {
|
||||
|
||||
"setup stable nodes" taggedAs LongRunningTest in within(15.seconds) {
|
||||
val logListener = system.actorOf(Props(classOf[LogListener], testActor), "logListener")
|
||||
system.eventStream.subscribe(logListener, classOf[Info])
|
||||
|
|
@ -119,6 +117,10 @@ abstract class NodeChurnSpec
|
|||
enterBarrier("stable")
|
||||
}
|
||||
|
||||
// FIXME issue #21483
|
||||
// note: there must be one test step before pending, otherwise afterTermination will not run
|
||||
if (isArteryEnabled) pending
|
||||
|
||||
"join and remove transient nodes without growing gossip payload" taggedAs LongRunningTest in {
|
||||
// This test is configured with log-frame-size-exceeding and the LogListener
|
||||
// will send to the testActor if unexpected increase in message payload size.
|
||||
|
|
|
|||
|
|
@ -1153,8 +1153,6 @@ abstract class StressSpec
|
|||
|
||||
"A cluster under stress" must {
|
||||
|
||||
if (isArteryEnabled) pending
|
||||
|
||||
"log settings" taggedAs LongRunningTest in {
|
||||
if (infolog) {
|
||||
log.info("StressSpec JVM:\n{}", jvmInfo)
|
||||
|
|
@ -1165,6 +1163,10 @@ abstract class StressSpec
|
|||
enterBarrier("after-" + step)
|
||||
}
|
||||
|
||||
// FIXME issue #21810
|
||||
// note: there must be one test step before pending, otherwise afterTermination will not run
|
||||
if (isArteryEnabled) pending
|
||||
|
||||
"join seed nodes" taggedAs LongRunningTest in within(30 seconds) {
|
||||
|
||||
val otherNodesJoiningSeedNodes = roles.slice(numberOfSeedNodes, numberOfSeedNodes + numberOfNodesJoiningToSeedNodesInitially)
|
||||
|
|
@ -1349,5 +1351,4 @@ abstract class StressSpec
|
|||
enterBarrier("after-" + step)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ import org.agrona.concurrent.BackoffIdleStrategy
|
|||
import org.agrona.hints.ThreadHints
|
||||
import akka.stream.stage.GraphStageWithMaterializedValue
|
||||
import scala.util.control.NonFatal
|
||||
import akka.stream.stage.StageLogging
|
||||
import io.aeron.exceptions.DriverTimeoutException
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
|
|
@ -86,7 +88,7 @@ private[remote] class AeronSource(
|
|||
override val shape: SourceShape[EnvelopeBuffer] = SourceShape(out)
|
||||
|
||||
override def createLogicAndMaterializedValue(inheritedAttributes: Attributes) = {
|
||||
val logic = new GraphStageLogic(shape) with OutHandler with ResourceLifecycle {
|
||||
val logic = new GraphStageLogic(shape) with OutHandler with ResourceLifecycle with StageLogging {
|
||||
|
||||
private val sub = aeron.addSubscription(channel, streamId)
|
||||
// spin between 100 to 10000 depending on idleCpuLevel
|
||||
|
|
@ -109,14 +111,20 @@ private[remote] class AeronSource(
|
|||
freeSessionBuffers()
|
||||
}
|
||||
|
||||
override protected def logSource = classOf[AeronSource]
|
||||
|
||||
override def preStart(): Unit = {
|
||||
flightRecorder.loFreq(AeronSource_Started, channelMetadata)
|
||||
}
|
||||
|
||||
override def postStop(): Unit = {
|
||||
sub.close()
|
||||
taskRunner.command(Remove(addPollTask.task))
|
||||
flightRecorder.loFreq(AeronSource_Stopped, channelMetadata)
|
||||
try sub.close() catch {
|
||||
case e: DriverTimeoutException ⇒
|
||||
// media driver was shutdown
|
||||
log.debug("DriverTimeout when closing subscription. {}", e.getMessage)
|
||||
} finally
|
||||
flightRecorder.loFreq(AeronSource_Stopped, channelMetadata)
|
||||
}
|
||||
|
||||
// OutHandler
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ private[remote] class ArteryTransport(_system: ExtendedActorSystem, _provider: R
|
|||
override def run(): Unit = {
|
||||
if (hasBeenShutdown.compareAndSet(false, true)) {
|
||||
log.debug("Shutting down [{}] via shutdownHook", localAddress)
|
||||
Await.result(internalShutdown(), 20.seconds)
|
||||
Await.result(internalShutdown(), settings.Advanced.DriverTimeout + 3.seconds)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@ import scala.concurrent.ExecutionContextExecutor
|
|||
|
||||
import scala.concurrent.duration.FiniteDuration
|
||||
|
||||
/**
|
||||
* Materializer SPI (Service Provider Interface)
|
||||
*
|
||||
/**
|
||||
* Materializer SPI (Service Provider Interface)
|
||||
*
|
||||
* Binary compatibility is NOT guaranteed on materializer internals.
|
||||
*
|
||||
*
|
||||
* Custom materializer implementations should be aware that the materializer SPI
|
||||
* is not yet final and may change in patch releases of Akka. Please note that this
|
||||
* does not impact end-users of Akka streams, only implementors of custom materializers,
|
||||
* with whom the Akka team co-ordinates such changes.
|
||||
*
|
||||
*
|
||||
* Once the SPI is final this notice will be removed.
|
||||
*/
|
||||
abstract class Materializer {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue