From: Eric Bavier <bavier@cray.com>
To: 28779@debbugs.gnu.org
Subject: bug#28779: tests/workers.scm failure
Date: Tue, 10 Oct 2017 15:48:42 +0000 [thread overview]
Message-ID: <BN6PR11MB1716104DFEB0F233C68756E5B7750@BN6PR11MB1716.namprd11.prod.outlook.com> (raw)
Roughly 1 in 2 runs of tests/workers.scm fails on my system. Output:
========================================================
GNU Guix 0.13.0.3413-984e3-dirty: ./test-suite.log
========================================================
# TOTAL: 1
# PASS: 0
# SKIP: 0
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: tests/workers
===================
test-name: enqueue
location: /home/users/bavier/src/guix/tests/workers.scm:26
source:
+ (test-equal
+ "enqueue"
+ 4242
+ (let* ((pool (make-pool))
+ (result 0)
+ (#{1+!}# (let ((lock (make-mutex)))
+ (lambda ()
+ (with-mutex lock (set! result (+ result 1)))))))
+ (let loop ((i 4242))
+ (unless
+ (zero? i)
+ (pool-enqueue! pool #{1+!}#)
+ (loop (- i 1))))
+ (let poll ()
+ (unless
+ (pool-idle? pool)
+ (pk 'busy result)
+ (sleep 1)
+ (poll)))
+ result))
expected-value: 4242
actual-value: 4241
result: FAIL
To me the reason seems to be that the 'pool-idle? procedure indicates whether or not the task queue is empty, not whether all tasks have completed execution, so the poll loop exits before all 1+! updates are finished and the test fails.
Most failures show "actual-value: 4241", but I have also seen "actual-value: 4239" and "actual-value: 4240", which points to a race condition.
On this system '(current-processor-count) => 128'
Eric Bavier, Scientific Libraries, Cray Inc.
next reply other threads:[~2017-10-10 15:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-10 15:48 Eric Bavier [this message]
2017-11-16 8:29 ` bug#28779: tests/workers.scm failure Ludovic Courtès
2017-11-17 2:58 ` Eric Bavier
2017-11-17 10:10 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BN6PR11MB1716104DFEB0F233C68756E5B7750@BN6PR11MB1716.namprd11.prod.outlook.com \
--to=bavier@cray.com \
--cc=28779@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.