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>
|
"Return a build handler that accumulates THINGS and returns an <unresolved>
|
||||||
object, only for build requests on EXPECTED-STORE."
|
object, only for build requests on EXPECTED-STORE."
|
||||||
(lambda (continue store things mode)
|
(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)))
|
(= mode (build-mode normal)))
|
||||||
(unresolved things continue)
|
(unresolved things continue)
|
||||||
(continue #t))))
|
(continue #t))))
|
||||||
|
Loading…
Reference in New Issue
Block a user