cardano-node-8.7.2: The cardano full node
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cardano.Node.Handlers.Shutdown

Synopsis

Documentation

data ShutdownOn Source #

Constructors

ASlot !SlotNo 
ABlock !BlockNo 
NoShutdown 

Instances

Instances details
FromJSON ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Methods

parseJSON :: Value -> Parser ShutdownOn

parseJSONList :: Value -> Parser [ShutdownOn]

omittedField :: Maybe ShutdownOn

ToJSON ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Methods

toJSON :: ShutdownOn -> Value #

toEncoding :: ShutdownOn -> Encoding

toJSONList :: [ShutdownOn] -> Value

toEncodingList :: [ShutdownOn] -> Encoding

omitField :: ShutdownOn -> Bool

Generic ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Associated Types

type Rep ShutdownOn :: Type -> Type Source #

Show ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

NFData ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Methods

rnf :: ShutdownOn -> () Source #

Eq ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

type Rep ShutdownOn Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

type Rep ShutdownOn = D1 ('MetaData "ShutdownOn" "Cardano.Node.Handlers.Shutdown" "cardano-node-8.7.2-J48sTm7zM1ILYN8ovLbDl2" 'False) (C1 ('MetaCons "ASlot" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :+: (C1 ('MetaCons "ABlock" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockNo)) :+: C1 ('MetaCons "NoShutdown" 'PrefixI 'False) (U1 :: Type -> Type)))

Generalised shutdown handling

withShutdownHandling Source #

Arguments

:: ShutdownConfig 
-> Tracer IO ShutdownTrace 
-> IO ()

Action to potentially shutdown via file descriptor

-> IO () 

We provide an optional cross-platform method to politely request shut down. The parent process passes us the file descriptor number of the read end of a pipe, via the CLI with --shutdown-ipc FD

data ShutdownTrace Source #

Constructors

ShutdownRequested

Received shutdown request

AbnormalShutdown

Non-isEOFError shutdown request

ShutdownUnexpectedInput Text

Received shutdown request but found unexpected input in --shutdown-ipc FD:

RequestingShutdown Text

Ringing the node shutdown doorbell for reason

ShutdownArmedAt ShutdownOn

Will terminate upon reaching a ChainDB sync limit

Instances

Instances details
FromJSON ShutdownTrace Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Methods

parseJSON :: Value -> Parser ShutdownTrace

parseJSONList :: Value -> Parser [ShutdownTrace]

omittedField :: Maybe ShutdownTrace

ToJSON ShutdownTrace Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Generic ShutdownTrace Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Associated Types

type Rep ShutdownTrace :: Type -> Type Source #

NFData ShutdownTrace Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

Methods

rnf :: ShutdownTrace -> () Source #

HasPrivacyAnnotation ShutdownTrace Source # 
Instance details

Defined in Cardano.Tracing.Shutdown

HasSeverityAnnotation ShutdownTrace Source # 
Instance details

Defined in Cardano.Tracing.Shutdown

HasTextFormatter ShutdownTrace Source # 
Instance details

Defined in Cardano.Tracing.Shutdown

Methods

formatText :: ShutdownTrace -> Object -> Text #

ToObject ShutdownTrace Source # 
Instance details

Defined in Cardano.Tracing.Shutdown

Methods

toObject :: TracingVerbosity -> ShutdownTrace -> Object #

textTransformer :: ShutdownTrace -> Object -> Text #

LogFormatting ShutdownTrace 
Instance details

Defined in Cardano.Node.Tracing.Tracers.Shutdown

Methods

forMachine :: DetailLevel -> ShutdownTrace -> Object

forHuman :: ShutdownTrace -> Text

asMetrics :: ShutdownTrace -> [Metric]

MetaTrace ShutdownTrace 
Instance details

Defined in Cardano.Node.Tracing.Tracers.Shutdown

Methods

namespaceFor :: ShutdownTrace -> Namespace ShutdownTrace

severityFor :: Namespace ShutdownTrace -> Maybe ShutdownTrace -> Maybe SeverityS

privacyFor :: Namespace ShutdownTrace -> Maybe ShutdownTrace -> Maybe Privacy

detailsFor :: Namespace ShutdownTrace -> Maybe ShutdownTrace -> Maybe DetailLevel

documentFor :: Namespace ShutdownTrace -> Maybe Text

metricsDocFor :: Namespace ShutdownTrace -> [(Text, Text)]

allNamespaces :: [Namespace ShutdownTrace]

Transformable Text IO ShutdownTrace Source # 
Instance details

Defined in Cardano.Tracing.Shutdown

type Rep ShutdownTrace Source # 
Instance details

Defined in Cardano.Node.Handlers.Shutdown

type Rep ShutdownTrace = D1 ('MetaData "ShutdownTrace" "Cardano.Node.Handlers.Shutdown" "cardano-node-8.7.2-J48sTm7zM1ILYN8ovLbDl2" 'False) ((C1 ('MetaCons "ShutdownRequested" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AbnormalShutdown" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ShutdownUnexpectedInput" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: (C1 ('MetaCons "RequestingShutdown" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "ShutdownArmedAt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShutdownOn)))))

Watch ChainDB for passing a configured slot sync limit threshold,

maybeSpawnOnSlotSyncedShutdownHandler :: HasHeader (Header blk) => ShutdownConfig -> Tracer IO ShutdownTrace -> ResourceRegistry IO -> ChainDB IO blk -> IO () Source #

Spawn a thread that would cause node to shutdown upon ChainDB reaching the configuration-defined slot.