New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
jemalloc450: enable to default option disable-initial-exec-tls #82711
Conversation
dd4bd86
to
9453684
Compare
@Mic92 thanks, fixed. |
Fixed. |
Found my error. Conflicted wit this configuration:
|
@Izorkin Sorry, I have a hard time understanding. Can you explain what you figured out? This PR now seems to flip the default of "disableInitExecTls", instead of the override already present in nixpkgs? |
This is the implication according to the upstream documentation:
|
Automatically loaded 2 libraries through
There was a conflict between versions
Yes. |
You can't just flip the default in |
Ups.., fixed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand what this PR is supposed to do.
This moves the override of jemalloc
that was passed into mariadb to a global override for every reference of jemalloc450
. It also doesn't seem to be a no-op for the mariadb package itself.
@@ -12353,7 +12353,7 @@ in | |||
|
|||
jemalloc = callPackage ../development/libraries/jemalloc { }; | |||
|
|||
jemalloc450 = callPackage ../development/libraries/jemalloc/jemalloc450.nix { }; | |||
jemalloc450 = callPackage ../development/libraries/jemalloc/jemalloc450.nix { disableInitExecTls = true; }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This still changes pkgs.jemalloc450
for all packages referring it?
@@ -15875,7 +15875,7 @@ in | |||
mariadb = callPackage ../servers/sql/mariadb { | |||
# As per mariadb's cmake, "static jemalloc_pic.a can only be used up to jemalloc 4". | |||
# https://jira.mariadb.org/browse/MDEV-15034 | |||
jemalloc = jemalloc450.override ({ disableInitExecTls = true; }); | |||
jemalloc = jemalloc450; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you remove the override from here and move it to pkgs.jemalloc450
? This looks like a no-op to me (for pkgs.mariadb
), but a breakage for many different packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jemmalloc450 is not used anywhere.
Use this variant?
mariadb = callPackage ../servers/sql/mariadb {
# As per mariadb's cmake, "static jemalloc_pic.a can only be used up to jemalloc 4".
# https://jira.mariadb.org/browse/MDEV-15034
jemalloc = jemalloc450-mariadb;
...
jemalloc450 = callPackage ../development/libraries/jemalloc/jemalloc450.nix { };
jemalloc450-mariadb = callPackage ../development/libraries/jemalloc/jemalloc450.nix { disableInitExecTls = true; };
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If jemalloc450
isn't used anywhere, I'd propose to do the callPackage
to jemalloc450.nix
entirely inside the mysql
derivation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still, I don't see how your PR changes anything. You just move the override from one process to another - the same derivation is passed as jemalloc
to the mysql
derivation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whereas it is correct to load the library with disableInitExecTls = true;
?
malloc-lib = ${pkgs.jemalloc450}/lib/libjemalloc.so
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you only callPackage
of jemalloc450.nix
inside the mariadb
, you can call it with disableInitExecTls = true;
, yes.
Can you explain why this was closed? |
I do not know how correct to loading malloc-lib. Added to my config this variant.
|
@flokli found correct method to ignore
This is variant correct? |
Remove the TokuDB storage engine - https://jira.mariadb.org/browse/MDEV-19780 |
Hm, if upstream decided to deprecate TokuDB in favor of MyRocks, I don't think we should add more special cases for it. However, this issue/PR has diverged quite a bit from the initial description. Please open new issues if new things arise. |
Motivation for this change
If use
environment.memoryAllocator.provider = "jemalloc";
service mariadb crashedcc @flokli @aanderse
Updated PR
Latest changes need to correct load TokuDB plugin:
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)