Fibers 1.0.0 has a bug in run-fibers in which peer schedulers aren't destroyed -
so if you had 4 cores, 1 would be destroyed when run-fibers returned, but the
other 3 would stay around. Each scheduler uses 3 file descriptors, so for
machines with many cores, this resource leak adds up quickly - quickly enough
that the test suite can even fail because of it.
See https://github.com/wingo/fibers/issues/36.
This fixes that. It should be safe to destroy the peer schedulers at the given
point because the threads that could be running them are all either dead or the
current thread.
As of May 21, 2020, this bug still existed in the 1.0.0 (latest) release and in
git master.
--- a/fibers.scm 2020-05-21 18:38:06.890690154 -0500
+++ b/fibers.scm 2020-05-21 18:38:56.395686693 -0500
@@ -137,5 +137,6 @@
(%run-fibers scheduler hz finished? affinity))
(lambda ()
(stop-auxiliary-threads scheduler)))))
+ (for-each destroy-scheduler (scheduler-remote-peers scheduler))
(destroy-scheduler scheduler)
(apply values (atomic-box-ref ret))))))
54209a1c08524374c'>refslogtreecommitdiff
|
Age | Commit message (Expand) | Author |
2020-07-26 | file-systems: Add NTFS support.... | Mathieu Othacehe |
2020-06-18 | uuid: Prevent a loop on invalid arguments.... | Maxim Cournoyer |
2020-01-03 | uuid: Add support for JFS.... | Tobias Geerinckx-Rice |
2019-05-07 | uuid: 'fat-uuid->string' preserves leading zeros.... | Ludovic Courtès |
l 'deduplicate' only when SIZE is greater than
%DEDUPLICATION-MINIMUM-SIZE; otherwise call 'dump-port'.
* nix/libstore/gc.cc (LocalStore::removeUnusedLinks): Drop files where
st.st_size < deduplicationMinSize.
* nix/libstore/local-store.hh (deduplicationMinSize): New declaration.
* nix/libstore/optimise-store.cc (deduplicationMinSize): New variable.
(LocalStore::optimisePath_): Return when PATH is a symlink or smaller
than 'deduplicationMinSize'.
* tests/derivations.scm ("identical files are deduplicated"): Produce
files bigger than %DEDUPLICATION-MINIMUM-SIZE.
* tests/nar.scm ("restore-file-set with directories (signed, valid)"):
Likewise.
* tests/store-deduplication.scm ("deduplicate, below %deduplication-minimum-size"):
New test.
("deduplicate", "deduplicate, ENOSPC"): Produce files bigger than
%DEDUPLICATION-MINIMUM-SIZE.
* tests/store.scm ("substitute, deduplication"): Likewise.
|
In addition to substitutes from ci.guix.gnu.org. There are more changes that
can be made in the future, but these changes seem like a good start.
* config-daemon.ac (guix_substitute_urls): Add https://bordeaux.guix.gnu.org.
* guix/scripts/substitute.scm (%default-substitute-urls): Add
http://bordeaux.guix.gnu.org.
* guix/store.scm (%default-substitute-urls): Add bordeaux.guix.gnu.org.
* doc/guix.texi: Adjust accordingly.
* doc/contributing.texi: Adjust accordingly.
|
|
* config-daemon.ac: Do not define NIX_VERSION.
|
|
* configure.ac: Require Autoconf 2.69. Use 'AS_HELP_STRING' instead of
'AC_HELP_STRING'.
* m4/guix.m4: Likewise.
* config-daemon.ac: Use 'AC_CONFIG_HEADERS' instead of the singular
variant.
|