Skip to content

Getting some negative "Alloc" fields in a ticky profile

In our ticky profile we see some negative allocation counts, which isn't sensible IIUC:


    Entries       Alloc     Alloc'd  Non-void Arguments                                              STG Name
--------------------------------------------------------------------------------
   .....snip.....
        505         -24           0   0                                                              sat_s1fAL{v} (Network.Wai.Handler.Warp.Run) (fun) in r1dtD
      46859        -192           0   1 S                                                            lvl5{v s1JCwb} (Hasura.GraphQL.Transport.HTTP) (fun) in s1JCwQ
      46968        -264           0   3 PMi                                                          Data.Aeson.Internal.Integer.$wbsToInteger{v rlgi} (fun)
      46864        -448           0   3 Pii                                                          $wvalidate{v sL5l} (Hasura.GraphQL.Parser.Internal.Input) (fun) in rFUi
      93664        -576           0   1 S                                                            lvl12{v s1JCUz} (Hasura.GraphQL.Transport.HTTP) (fun) in s1JCVd
      93894        -912           0   4 +iSS                                                         $l$s$wprocessBlocks_g4c4h{v} (Crypto.Hash) (fun)
      46884       -1024           0   3 PMi                                                          $wparseQueryString'{v sor1} (Network.HTTP.Types.URI) (fun) in rhz3
      54150       -1968           0   3 D.M                                                          System.Metrics.Prometheus.Histogram.$sgo8{v r2t} (fun)
      93663       -2184           0   2 iS                                                           $wouterLoop{v sEZR} (Database.PG.Query.Class) (fun) in sF15
    1030390       -4848           0   3 S.M                                                          Data.Aeson.KeyMap.$sgo3{v ruXg} (fun)
    3061922     -234192           0   2 iS                                                           $wouterLoop{v s2rjJ} (Data.Aeson.Encoding.Builder) (fun) in r2jXE
      46845    -1603368           0   0                                                              sat_s4cDi{v} (Data.Aeson.Parser.Internal) (fun) in s4cCg

In general these allocation numbers have always seemed untrustworthy; summing them has never seemed to give a value that makes sense with respect to what gets reported from +RTS -s

I will need to follow up later with more repro steps, as we haven't merged the migration to 9.6.3, but maybe there's an obvious bug.

Environment

  • GHC version used: 9.6.3

Optional:

  • Operating System: Linux
  • System Architecture: x86_64
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information