Skip to content

Encountered two out-of-order inputs despite eventlog-flush-interval #121

@jasagredo

Description

@jasagredo

I find this extremely useful, but I am having trouble setting it up. I start my application as:

./my-app +RTS -l -hi --eventlog-flush-interval=1

and the app is compiled with

❯ cat cabal.project.local
package *
  ghc-options: -finfo-table-map -fdistinct-constructor-tables

When starting eventlog-live-otelcol I get a period of silence and then the following errors:

❯ eventlog-live-otelcol \
  --eventlog-socket "$GHC_EVENTLOG_SOCKET" \
  -hi \
  --otelcol-host=localhost --service-name my-app --eventlog-flush-interval=1
[ERROR]Encountered two out-of-order inputs.
Did you pass --eventlog-flush-interval=SECONDS to the GHC RTS?
Did you pass the same flag to this program?
CallStack (from HasCallStack):
  writeLog, called at src/GHC/Eventlog/Live/Machine/Core.hs:776:22 in eventlog-live-0.5.0.0-39d483d17f5f7c69c5242af2bb3904f5f8b11594eb2dcc29581d51825d585ed1:GHC.Eventlog.Live.Machine.Core
[ERROR]Rejected 22232 metrics.
CallStack (from HasCallStack):
  writeLog, called at src/GHC/Eventlog/Live/Otelcol/Stats.hs:314:7 in eventlog-live-otelcol-0.6.0.0-82668d26395a507f970d76220f8ef1848e78d33b6569c636abce3fe6da011ac6:GHC.Eventlog.Live.Otelcol.Stats
[ERROR]ConnectionErrorIsSent EnhanceYourCalm 0 "too many ping"
CallStack (from HasCallStack):
  writeLog, called at src/GHC/Eventlog/Live/Otelcol/Stats.hs:318:7 in eventlog-live-otelcol-0.6.0.0-82668d26395a507f970d76220f8ef1848e78d33b6569c636abce3fe6da011ac6:GHC.Eventlog.Live.Otelcol.Stats
[ERROR]Rejected 7 logs.
CallStack (from HasCallStack):
  writeLog, called at src/GHC/Eventlog/Live/Otelcol/Stats.hs:300:7 in eventlog-live-otelcol-0.6.0.0-82668d26395a507f970d76220f8ef1848e78d33b6569c636abce3fe6da011ac6:GHC.Eventlog.Live.Otelcol.Stats

I installed eventlog-live-otelcol from the main branch of this repository instead of from Hackage, but the hackage version fails in a similar way:

❯ eventlog-live-otelcol \
  --eventlog-socket "$GHC_EVENTLOG_SOCKET" \
  -hi \
  --otelcol-host=localhost
Error (src/GHC/Eventlog/Live/Machine/Core.hs:497:15): Encountered two out-of-order inputs.
Did you pass --eventlog-flush-interval to the GHC RTS?
Did you set --batch-interval to be at least as big as the value of --eventlog-flush-interval?
❯ eventlog-live-otelcol \
  --eventlog-socket "$GHC_EVENTLOG_SOCKET" \
  -hi \
  --otelcol-host=localhost --batch-interval=2
eventlog-live-otelcol: ConnectionErrorIsSent EnhanceYourCalm 0 "too many ping"
❯ eventlog-live-otelcol \
  --eventlog-socket "$GHC_EVENTLOG_SOCKET" \
  -hi \
  --otelcol-host=localhost --batch-interval=1
eventlog-live-otelcol: ConnectionErrorIsSent EnhanceYourCalm 0 "too many ping"
❯ eventlog-live-otelcol \
  --eventlog-socket "$GHC_EVENTLOG_SOCKET" \
  -hi \
  --otelcol-host=localhost
Error (src/GHC/Eventlog/Live/Machine/Core.hs:497:15): Encountered two out-of-order inputs.
Did you pass --eventlog-flush-interval to the GHC RTS?
Did you set --batch-interval to be at least as big as the value of --eventlog-flush-interval?
eventlog-live-otelcol: GrpcException {grpcError = GrpcResourceExhausted, grpcErrorMessage = Just "grpc: received message larger than max (24771694 vs. 20971520)", grpcErrorDetails = Nothing, grpcErrorMetadata = []}

This is GHC 9.6.7, both for eventlog-live-otelcol and for my-app. I was able to have it run for some time (this one in particular was GHC 9.12.2 for my-app and 9.6.7 for eventlog-live-otelcol), but it crashed with these errors

Image

The time it worked, there were these many warnings in the logs, then it crashed:

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions