store: 'mapm/accumulate-builds' does not compare stores with 'eq?'.
Fixes <https://issues.guix.gnu.org/51732>.
Regression introduced in 2015d3f042
.
The (eq? store expected-store) comparison doesn't work on this branch
where the functional cache, with 'cache-object-mapping', is used
extensively, thereby changing the store's object identity.
* guix/store.scm (build-accumulator): Compare the socket of STORE and
EXPECTED-STORE rather than the store themselves.
This commit is contained in:
parent
d855119ece
commit
745d3a9b44
@ -1353,7 +1353,11 @@ on the build output of a previous derivation."
|
||||
"Return a build handler that accumulates THINGS and returns an <unresolved>
|
||||
object, only for build requests on EXPECTED-STORE."
|
||||
(lambda (continue store things mode)
|
||||
(if (and (eq? store expected-store)
|
||||
;; Note: Do not compare STORE and EXPECTED-STORE with 'eq?' because
|
||||
;; 'cache-object-mapping' and similar functional "setters" change the
|
||||
;; store's object identity.
|
||||
(if (and (eq? (store-connection-socket store)
|
||||
(store-connection-socket expected-store))
|
||||
(= mode (build-mode normal)))
|
||||
(unresolved things continue)
|
||||
(continue #t))))
|
||||
|
Loading…
Reference in New Issue
Block a user