[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28212: Grafting crashes when replacement lies near the end of buffer
From: |
Ludovic Courtès |
Subject: |
bug#28212: Grafting crashes when replacement lies near the end of buffer |
Date: |
Thu, 24 Aug 2017 08:56:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
As reported by Leo and then analyzed by Mark, grafting crashes when the
replacement string lies near the end of buffer:
https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00445.html
With the attached patch on top of commit
7d14082d56462f7bef4254d65a21fd265fbce471, I get this backtrace:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build address@hidden
[...]
@ build-started /gnu/store/n420a0qs7vwnbaj4j3knhfy9j7zqwvs4-go-1.9rc1.drv -
x86_64-linux
/var/log/guix/drvs/n4//20a0qs7vwnbaj4j3knhfy9j7zqwvs4-go-1.9rc1.drv.bz2
grafting '/gnu/store/8zbi5rr5q2pxksfgpxq37m60nsa21d3v-go-1.9rc1-doc' ->
'/gnu/store/djdi6b1bvbrp5fgkkrvk80jndg6gifrh-go-1.9rc1-doc'...
grafting '/gnu/store/73fvsx0qizcrbajgjwn8mkzkpxa6abx4-go-1.9rc1' ->
'/gnu/store/8bjpc7wxdxsxbf45qvwsd6jbn7zgi871-go-1.9rc1'...
Backtrace:
In ice-9/boot-9.scm:
160: 17 [catch #t #<catch-closure 8c5dc0> ...]
In unknown file:
?: 16 [apply-smob/1 #<catch-closure 8c5dc0>]
In ice-9/boot-9.scm:
66: 15 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 14 [eval # #]
In ice-9/boot-9.scm:
2412: 13 [save-module-excursion #<procedure 8e6840 at ice-9/boot-9.scm:4084:3
()>]
4089: 12 [#<procedure 8e6840 at ice-9/boot-9.scm:4084:3 ()>]
1734: 11 [%start-stack load-stack #<procedure 8f6e20 at
ice-9/boot-9.scm:4080:10 ()>]
1739: 10 [#<procedure 8f8960 ()>]
In unknown file:
?: 9 [primitive-load
"/gnu/store/zslsp0k0m06ab7a2vzf2wp3cv6s5zwxn-go-1.9rc1-guile-builder"]
In ice-9/eval.scm:
387: 8 [eval # ()]
In ice-9/boot-9.scm:
806: 7 [for-each #<procedure c44b10 at ice-9/eval.scm:416:20 (a b)> # #]
In
/gnu/store/hnwfmnrb1r7dzajn744dafx19ps290d8-module-import/guix/build/graft.scm:
313: 6 [rewrite-directory
"/gnu/store/73fvsx0qizcrbajgjwn8mkzkpxa6abx4-go-1.9rc1" ...]
In srfi/srfi-1.scm:
616: 5 [for-each #<procedure rewrite-leaf (file)> #]
In ice-9/boot-9.scm:
877: 4 [call-with-input-file
"/gnu/store/73fvsx0qizcrbajgjwn8mkzkpxa6abx4-go-1.9rc1/pkg/tool/linux_amd64/link"
...]
895: 3 [call-with-output-file
"/gnu/store/8bjpc7wxdxsxbf45qvwsd6jbn7zgi871-go-1.9rc1/pkg/tool/linux_amd64/link"
...]
In
/gnu/store/hnwfmnrb1r7dzajn744dafx19ps290d8-module-import/guix/build/graft.scm:
302: 2 [#<procedure 13d45c0 at
/gnu/store/hnwfmnrb1r7dzajn744dafx19ps290d8-module-import/guix/build/graft.scm:301:15
(output)> #<output:
/gnu/store/8bjpc7wxdxsxbf45qvwsd6jbn7zgi871-go-1.9rc1/pkg/tool/linux_amd64/link
7>]
173: 1 [replace-store-references #<input:
/gnu/store/73fvsx0qizcrbajgjwn8mkzkpxa6abx4-go-1.9rc1/pkg/tool/linux_amd64/link
6> ...]
In unknown file:
?: 0 [put-bytevector #<output:
/gnu/store/8bjpc7wxdxsxbf45qvwsd6jbn7zgi871-go-1.9rc1/pkg/tool/linux_amd64/link
7> ...]
ERROR: In procedure put-bytevector:
ERROR: In procedure put-bytevector: Value out of range: 0
builder for `/gnu/store/n420a0qs7vwnbaj4j3knhfy9j7zqwvs4-go-1.9rc1.drv' failed
with exit code 1
@ build-failed /gnu/store/n420a0qs7vwnbaj4j3knhfy9j7zqwvs4-go-1.9rc1.drv - 1
builder for `/gnu/store/n420a0qs7vwnbaj4j3knhfy9j7zqwvs4-go-1.9rc1.drv' failed
with exit code 1
--8<---------------cut here---------------end--------------->8---
Ludo’.
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 70cae6d87..7ed9cc750 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -199,11 +199,11 @@ garbage collection, various safety features and in the
style of communicating
sequential processes (CSP) concurrent programming features added.")
(license license:bsd-3)))
-(define-public go-1.8
+(define-public go-1.9
(package
(inherit go-1.4)
(name "go")
- (version "1.8.3")
+ (version "1.9rc1")
(source
(origin
(method url-fetch)
@@ -211,7 +211,7 @@ sequential processes (CSP) concurrent programming features
added.")
name version ".src.tar.gz"))
(sha256
(base32
- "19lzv4lqixj3v2gjaff0fdbbmgsq5r8lrfd61z2zvp778wjflpaz"))))
+ "0bj5dcvhz48bf6704qhqnybf220kgqgi93x4mx1n3k30xac7awc7"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@@ -242,7 +242,7 @@ sequential processes (CSP) concurrent programming features
added.")
;; Add libgcc to runpath
(substitute* "cmd/link/internal/ld/lib.go"
(("!rpath.set") "true"))
- (substitute* "cmd/go/build.go"
+ (substitute* "cmd/go/internal/work/build.go"
(("cgoldflags := \\[\\]string\\{\\}")
(string-append "cgoldflags := []string{"
"\"-rpath=" gcclib "\""
@@ -265,7 +265,9 @@ sequential processes (CSP) concurrent programming features
added.")
(substitute* file
((regex all before test_name)
(string-append before "Disabled" test_name)))))
- '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
+ '(;; See
https://github.com/golang/go/commit/81ed9ca1d411f0bd8738ea60b3a8045446ad85fc
+ ("cmd/go/go_test.go" "(.+)(TestExecutableGOROOT.+)")
+ ("net/net_test.go" "(.+)(TestShutdownUnix.+)")
("net/dial_test.go" "(.+)(TestDialTimeout.+)")
("os/os_test.go" "(.+)(TestHostname.+)")
("time/format_test.go" "(.+)(TestParseInSydney.+)")
@@ -366,4 +368,4 @@ sequential processes (CSP) concurrent programming features
added.")
`(("go" ,go-1.4)
,@(package-native-inputs go-1.4)))))
-(define-public go go-1.8)
+(define-public go go-1.9)
diff --git a/guix/build/graft.scm b/guix/build/graft.scm
index 16df169ec..83d797130 100644
--- a/guix/build/graft.scm
+++ b/guix/build/graft.scm
@@ -310,8 +310,7 @@ file name pairs."
;; Use 'exit-on-exception' to force an exit upon I/O errors, given that
;; 'n-par-for-each' silently swallows exceptions.
;; See <http://bugs.gnu.org/23581>.
- (n-par-for-each (parallel-job-count)
- (exit-on-exception rewrite-leaf)
+ (for-each rewrite-leaf
(find-files directory (const #t)
#:directories? #t))
(rename-matching-files output mapping))
- bug#28212: Grafting crashes when replacement lies near the end of buffer,
Ludovic Courtès <=