mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-14 08:02:15 +03:00
4d86cd3a62
A fix for #9447 Before this change, for the workload in the ticket, we saw a memory stay at around 4 GB an hour after the workload ended. after this change we see both a lower memory high watermark, and also see memory come back to baseline at the end as we expect (after the `HASURA_GRAPHQL_PG_CONN_LIFETIME` and a subsequent `_idleStaleReaperThread` interval elapses). But note the numbers given on any given machine may be slightly different, since the behavior depends on the version of glibc and processor speed (Since the test case depends on the server being overloaded). This might also help some users commenting in https://github.com/hasura/graphql-engine/issues/9592 PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9823 GitOrigin-RevId: 5650aa42d10d46c418c21686983a982d69011884
130 lines
4.4 KiB
Plaintext
130 lines
4.4 KiB
Plaintext
-- Global project configuration.
|
|
|
|
--
|
|
-- This file can be overridden with cabal.project.local (see e.g. cabal/dev.project)
|
|
--
|
|
-- If you need to switch between several local configurations you can also create a
|
|
-- symbolic link to this file in the project root directory; e.g.:
|
|
-- $ ln -s cabal.project myconfig.project
|
|
-- $ ln -s cabal.project.freeze myconfig.project.freeze
|
|
--
|
|
-- ...and then create a new set of overrides in:
|
|
-- myconfig.project.local
|
|
--
|
|
-- ...and then invoke cabal with
|
|
-- $ cabal new-build --project-file=myconfig.project
|
|
--
|
|
-- See: https://www.haskell.org/cabal/users-guide/nix-local-build.html#configuring-builds-with-cabal-project
|
|
|
|
with-compiler: ghc-9.4.5
|
|
-- Work around bugs not yet fixed in 9.4.5. These are only enabled with O2
|
|
-- which we don't currently use, but disable these defensively
|
|
-- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10282
|
|
package *
|
|
ghc-options:
|
|
-fno-dicts-strict
|
|
-fno-spec-constr
|
|
|
|
|
|
-- package-level parallelism:
|
|
jobs: $ncpus
|
|
|
|
packages: server
|
|
packages: server/lib/*/*.cabal
|
|
packages: server/forks/*/*.cabal
|
|
|
|
-- TODO remove these when we are able:
|
|
allow-newer: ekg-core:base
|
|
allow-newer: ekg-core:ghc-prim
|
|
allow-newer: ekg-core:inspection-testing
|
|
allow-newer: ekg-core:text
|
|
allow-newer: ekg-json:base
|
|
allow-newer: ekg-json:text
|
|
allow-newer: ekg-prometheus:base
|
|
allow-newer: ekg-prometheus:text
|
|
allow-newer: ekg-prometheus:bytestring
|
|
-- Migrating to 0.25+ looks like it will be a real pain... :(
|
|
-- https://github.com/morpheusgraphql/morpheus-graphql/pull/766
|
|
allow-newer: morpheus-graphql:text
|
|
allow-newer: morpheus-graphql-app:text
|
|
allow-newer: morpheus-graphql-code-gen:text
|
|
allow-newer: morpheus-graphql-code-gen-utils:text
|
|
allow-newer: morpheus-graphql-core:text
|
|
allow-newer: morpheus-graphql-server:text
|
|
allow-newer: morpheus-graphql-client:text
|
|
allow-newer: morpheus-graphql-subscriptions:text
|
|
|
|
-- https://gitlab.haskell.org/ghc/ghc-debug/-/merge_requests/27
|
|
allow-newer: ghc-debug-stub:ghc-prim
|
|
-- https://github.com/mokus0/th-extras/pull/20
|
|
allow-newer: th-extras:template-haskell
|
|
|
|
package *
|
|
-- NOTE: this gets applied to both local (hasura) packages and dependencies,
|
|
-- but optimizations for local hasura packages are overridden/controlled
|
|
-- via the 'optimize-hasura' flag.
|
|
optimization: 2
|
|
-- For tooling, e.g. 'weeder', and IDE-like stuff:
|
|
ghc-options: -fwrite-ide-info
|
|
|
|
-- we statically link malloc from mimalloc. Out of an abundance of caution,
|
|
-- disable special treatment of these in all the foreign code we build. The
|
|
-- only risk is potential for some missed optimizations.
|
|
-- See: https://github.com/microsoft/mimalloc/issues/785
|
|
-- NOTE: cc-options is not recognized here for some reason, so we use ghc-options+optc:
|
|
ghc-options: -optc-fno-builtin-malloc -optc-fno-builtin-calloc -optc-fno-builtin-realloc -optc-fno-builtin-free
|
|
|
|
haddock-html: true
|
|
haddock-hoogle: true
|
|
haddock-hyperlink-source: true
|
|
haddock-quickjump: true
|
|
haddock-internal: true
|
|
-- -----------------------------------------------------------
|
|
-- Allow for dead-code elimination at link-time, to reduce binary size
|
|
ghc-options: -split-sections
|
|
if(os(linux))
|
|
package *
|
|
-- ld on M1 OSX does not recognise this:
|
|
ld-options: -Wl,--gc-sections
|
|
-- -----------------------------------------------------------
|
|
|
|
package graphql-engine
|
|
ghc-options: -j
|
|
haddock-options: "--show-all"
|
|
|
|
allow-newer: hedgehog-generic:base
|
|
allow-newer: hedgehog-generic:hedgehog
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/kriti-lang.git
|
|
tag: c8fd863d359876af3a0fce47db8a5393dc556667
|
|
|
|
-- This is an unrelesaed version of "odbc"
|
|
-- For text v2 support
|
|
-- WIP/FIXME: review change, maybe upstream PR
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/odbc.git
|
|
tag: 662268ba4d968a23e67dfd13b1ec9d4d90481493
|
|
|
|
package odbc
|
|
ghc-options: -Wwarn
|
|
-- Our CI compiles with -Werror, which is also applied to those packages
|
|
-- while it's fine for packages we maintain, we can't actually enforce
|
|
-- that third-party packages are warning-free, hence this -Wno-error.
|
|
-- When the changes in odbc are released, we can instead depend on
|
|
-- the hackage version, and remove it from this list of packages.
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/hasura/ekg-core.git
|
|
tag: df610859603b504494ad770bdbb7053a7f0b9a6c
|
|
|
|
source-repository-package
|
|
type: git
|
|
location: https://github.com/snoyberg/yaml.git
|
|
tag: c1aa7b3991e669e4c6a977712b495d40a54cf819
|
|
subdir: yaml
|
|
|