unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#28779: tests/workers.scm failure
@ 2017-10-10 15:48 Eric Bavier
  2017-11-16  8:29 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Bavier @ 2017-10-10 15:48 UTC (permalink / raw)
  To: 28779

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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-17 10:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-10 15:48 bug#28779: tests/workers.scm failure Eric Bavier
2017-11-16  8:29 ` Ludovic Courtès
2017-11-17  2:58   ` Eric Bavier
2017-11-17 10:10     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).