profile
viewpoint
Elias Naur eliasnaur https://gioui.org Works on Gio and mobile platforms in Go.

eliasnaur/gophercon-2019-talk 26

Gophercon 2019 Gio talk and demos

znly/rules_gomobile 5

gomobile bind rules for Bazel

eliasnaur/gae-sessions 4

Fast, lightweight Sessions middleware for Google App Engine (memcache + datastore)

eliasnaur/go-bindata 4

A small utility which generates Go code from any file. Useful for embedding binary data in a Go program.

eliasnaur/golab-2017-talk 3

Slides and demo programs for the Go Mobile talk at GoLab 2017

eliasnaur/glam 2

GLaM: OpenGL Mathematics for Go

eliasnaur/golab-2017-training 2

Training material for GoLab 2017

eliasnaur/libsignal-protocol-go 2

Go implementation of the Signal Library for WebAssembly

issue commentgolang/go

go.dev: detect licenses for modules not at their repository roots

I created a testing branch of gioui.org with the merged LICENSE file, here, tagged "license-debug".

Is there a way to test whether pkg.go.dev accepts the merged LICENSE without pushing the change to master? licensecheck doesn't seem offer a cli version.

eliasnaur

comment created time in 2 hours

issue commentgolang/go

proposal: add bare metal ARM support `GOOS=tamago`

Related to https://github.com/golang/go/issues/35956. I'd be very interested in the amd64 port of GOOS=none/noos/tamago, even if it only supports virtual machines.

abarisani

comment created time in 3 hours

issue commentgolang/go

go.dev: detect licenses for modules not at their repository roots

I didn't know about the LICENSE propagation. That's sort of good news. For me in particular if pkg.go.dev supports dual-licensed projects where the licenses are merged into one LICENSE file.

eliasnaur

comment created time in 2 days

issue openedgolang/go

go.dev: detect licenses for modules not at their repository roots

@jba brought up an issue where pkg.go.dev fails to detect a license for a module that is not at thei repository root. Example:

https://pkg.go.dev/gioui.org/example

The reason is that while the repository for the gioui.org/example module,

https://git.sr.ht/~eliasnaur/gio/tree

does have detectable licenses, the module rooted at

https://git.sr.ht/~eliasnaur/gio/tree/master/example

doesn't.

@jba points out that pkg.go.dev works in terms of module zip files, which only contain files in the module tree. The module zip for gioui.org/example does not contain the UNLICENSE nor LICENSE-MIT files from the parent directory.

However, forcing licensing files at every module root feels like bending too much for the licensing detection tool. I don't particularly mind copying the license files to my nested modules gioui.org/example and gioui.org/cmd, but I would not appreciate this restriction if I had an otherwise non-Go repository that happened to contain a minor Go module in a subdirectory.

What did you expect to see?

A license detected on https://pkg.go.dev/gioui.org/example.

What did you see instead?

No licenses detected for https://pkg.go.dev/gioui.org/example.

created time in 3 days

issue commentgovim/govim

cmd/govim: slow startup causes laggy cursor movement and UX

Here's a set of logs from a particularly bad startup delay: https://gist.github.com/eliasnaur/f58263164f36d78631274644a929b48a. This was one of the first vim sessions I started after upgrading to 0.0.28. Oddly, top didn't show any CPU hogs during the delays, so this may be an issue with my system.

eliasnaur

comment created time in 18 days

issue closedgovim/govim

cmd/govim: don't let a slow gopls block navigation and editing

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Vim/Gvim are you using?

<details><summary>Vim/Gvim version</summary><br><pre> $ vim --version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 10 2020 00:00:00) Included patches: 1-109 Modified by bugzilla@redhat.com Compiled by bugzilla@redhat.com Huge version without GUI. Features included (+) or not (-): +acl -farsi -mouse_sysmouse -tag_old_static +arabic +file_in_path +mouse_urxvt -tag_any_white +autocmd +find_in_path +mouse_xterm -tcl +autochdir +float +multi_byte +termguicolors -autoservername +folding +multi_lang +terminal -balloon_eval -footer -mzscheme +terminfo +balloon_eval_term +fork() +netbeans_intg +termresponse -browse +gettext +num64 +textobjects ++builtin_terms -hangul_input +packages +textprop +byte_offset +iconv +path_extra +timers +channel +insert_expand +perl/dyn +title +cindent +job +persistent_undo -toolbar -clientserver +jumplist +popupwin +user_commands -clipboard +keymap +postscript +vartabs +cmdline_compl +lambda +printer +vertsplit +cmdline_hist +langmap +profile +virtualedit +cmdline_info +libcall -python +visual +comments +linebreak +python3/dyn +visualextra +conceal +lispindent +quickfix +viminfo +cryptv +listcmds +reltime +vreplace +cscope +localmap +rightleft +wildignore +cursorbind +lua/dyn +ruby/dyn +wildmenu +cursorshape +menu +scrollbind +windows +dialog_con +mksession +signs +writebackup +diff +modify_fname +smartindent -X11 +digraphs +mouse -sound -xfontset -dnd -mouseshape +spell -xim -ebcdic +mouse_dec +startuptime -xpm +emacs_tags +mouse_gpm +statusline -xsmp +eval -mouse_jsbterm -sun_workshop -xterm_clipboard +ex_extra +mouse_netterm +syntax -xterm_save +extra_search +mouse_sgr +tag_binary
system vimrc file: "/etc/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/etc" f-b for $VIMRUNTIME: "/usr/share/vim/vim82" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -lpython3.7m -lcrypt -lpthread -ldl -lutil -lm -L/usr/local/lib -Wl,--as-needed -o vim -lm -lselinux -lncurses -lacl -lattr -lgpm -ldl -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc

</pre></details>

What version of Go are you using (go version)?

<pre> $ go version go version devel +d2de9bd59c Thu Jan 16 04:02:37 2020 +0000 linux/amd64

</pre>

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/elias/.cache/go-build" GOENV="/home/elias/.config/go/env" GOEXE="" GOFLAGS="-mod=readonly" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/var/home/elias/dev/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/var/home/elias/dev/go-tip/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/var/home/elias/proj/gio/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build155349646=/tmp/go-build -gno-record-gcc-switches"

(Note GOFLAGS) </pre></details>

What version/commit of govim are you using?

0.0.27 (013f992e25f23cbc4a778d1eb472e719d276de32)

What is the output of :messages in Vim?

Messages maintainer: Bram Moolenaar Bram@vim.org

Do the Vim channel, govim or gopls log files show anything interesting?

<!-- !! BEWARE THESE LOGFILES CONTAIN FILE CONTENTS !! -->

<!-- The location of the logfiles is given by :GOVIMLogfilePaths in Vim --> Perhaps, I didn't (yet) look. See below why I don't think they're relevant.

How did you install govim?

<!-- Vim 8 packages, Pathogen, vim-plug, Vundle, other... -->

Vim 8 packages(?) (.vim/pack/plugins/start/govim)

What did you do?

<!-- If possible, provide a recipe for reproducing the error. --> Usually in the beginning of an editing session of a Go source file. medium-sized modules.

What did you expect to see?

Navigation and editing never slows because of govim/gopls

What did you see instead?

Sometimes, in particular just after starting Vim with a source file, navigation and editing slows enough to disrupt my flow. It takes several seconds for Vim to catch up to cursor moves or edits. The slowness generally lasts for 20-30 seconds before returning to normal speed.

Perhaps you'll deem this a duplicate of #471, except that I'm asking for a feature: I'd like the gopls queries decoupled from Vim navigation and edits so that regardless of the slowness or crashiness of gopls, Vim will never slow down. I don't care (much) about explicit completion, automatic error markers and so on being slow or even buggy, but I very much care about never having Vim (noticeably) slow down.

I don't know Vim internals at all except that Vim 8 has "asynchronous I/O", so excuse my ignorance if this is an unreasonable request.

closed time in 22 days

eliasnaur

issue commentgovim/govim

cmd/govim: don't let a slow gopls block navigation and editing

I apologize, I couldn't imagine that my operating system would be so awful to starve Vim navigation, leading me to blame govim. Your x/tools experience and #36942 sounds very much like my issue, so I don't see much point in leaving this open. However, if you still think it's interesting, go ahead and re-open and I'll remember to retain and supply logs the next time vim slows down.

eliasnaur

comment created time in 22 days

issue openedgovim/govim

cmd/govim: don't let a slow gopls block navigation and editing

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Vim/Gvim are you using?

<details><summary>Vim/Gvim version</summary><br><pre> $ vim --version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 10 2020 00:00:00) Included patches: 1-109 Modified by bugzilla@redhat.com Compiled by bugzilla@redhat.com Huge version without GUI. Features included (+) or not (-): +acl -farsi -mouse_sysmouse -tag_old_static +arabic +file_in_path +mouse_urxvt -tag_any_white +autocmd +find_in_path +mouse_xterm -tcl +autochdir +float +multi_byte +termguicolors -autoservername +folding +multi_lang +terminal -balloon_eval -footer -mzscheme +terminfo +balloon_eval_term +fork() +netbeans_intg +termresponse -browse +gettext +num64 +textobjects ++builtin_terms -hangul_input +packages +textprop +byte_offset +iconv +path_extra +timers +channel +insert_expand +perl/dyn +title +cindent +job +persistent_undo -toolbar -clientserver +jumplist +popupwin +user_commands -clipboard +keymap +postscript +vartabs +cmdline_compl +lambda +printer +vertsplit +cmdline_hist +langmap +profile +virtualedit +cmdline_info +libcall -python +visual +comments +linebreak +python3/dyn +visualextra +conceal +lispindent +quickfix +viminfo +cryptv +listcmds +reltime +vreplace +cscope +localmap +rightleft +wildignore +cursorbind +lua/dyn +ruby/dyn +wildmenu +cursorshape +menu +scrollbind +windows +dialog_con +mksession +signs +writebackup +diff +modify_fname +smartindent -X11 +digraphs +mouse -sound -xfontset -dnd -mouseshape +spell -xim -ebcdic +mouse_dec +startuptime -xpm +emacs_tags +mouse_gpm +statusline -xsmp +eval -mouse_jsbterm -sun_workshop -xterm_clipboard +ex_extra +mouse_netterm +syntax -xterm_save +extra_search +mouse_sgr +tag_binary
system vimrc file: "/etc/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/etc" f-b for $VIMRUNTIME: "/usr/share/vim/vim82" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -lpython3.7m -lcrypt -lpthread -ldl -lutil -lm -L/usr/local/lib -Wl,--as-needed -o vim -lm -lselinux -lncurses -lacl -lattr -lgpm -ldl -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc

</pre></details>

What version of Go are you using (go version)?

<pre> $ go version go version devel +d2de9bd59c Thu Jan 16 04:02:37 2020 +0000 linux/amd64

</pre>

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/elias/.cache/go-build" GOENV="/home/elias/.config/go/env" GOEXE="" GOFLAGS="-mod=readonly" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/var/home/elias/dev/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/var/home/elias/dev/go-tip/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/var/home/elias/proj/gio/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build155349646=/tmp/go-build -gno-record-gcc-switches"

(Note GOFLAGS) </pre></details>

What version/commit of govim are you using?

0.0.27 (013f992e25f23cbc4a778d1eb472e719d276de32)

What is the output of :messages in Vim?

Messages maintainer: Bram Moolenaar Bram@vim.org

Do the Vim channel, govim or gopls log files show anything interesting?

<!-- !! BEWARE THESE LOGFILES CONTAIN FILE CONTENTS !! -->

<!-- The location of the logfiles is given by :GOVIMLogfilePaths in Vim --> Perhaps, I didn't (yet) look. See below why I don't think they're relevant.

How did you install govim?

<!-- Vim 8 packages, Pathogen, vim-plug, Vundle, other... -->

Vim 8 packages(?) (.vim/pack/plugins/start/govim)

What did you do?

<!-- If possible, provide a recipe for reproducing the error. --> Usually in the beginning of an editing session of a Go source file. medium-sized modules.

What did you expect to see?

Navigation and editing never slows because of govim/gopls

What did you see instead?

Sometimes, in particular just after starting Vim with a source file, navigation and editing slows enough to disrupt my flow. It takes several seconds for Vim to catch up to cursor moves or edits. The slowness generally lasts for 20-30 seconds before returning to normal speed.

Perhaps you'll deem this a duplicate of #471, except that I'm asking for a feature: I'd like the gopls queries be decoupled from Vim navigation and edits so that regardless of the slowness or crashiness of gopls, Vim will never slow down? I don't care (much) about explicit completion, automatic error markers and so on being slow or even buggy, but I very much care about never having Vim (noticeably) slow down.

I don't know Vim internals at all except that Vim 8 has "asynchronous I/O", so excuse my ignorance if this is an unreasonable request.

created time in 24 days

push eventeliasnaur/gophercon-uk-2019-talk

Elias Naur

commit sha 55742af5113b229ca55041635906728c62b8edfc

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 25 days

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha 1e4d541bf23514a6a2dad1b5452291f928b0fd55

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 25 days

issue commentgolang/go

go.dev: support packages with unknown/unsupported licenses

a "just for us" solution

I deliberately named the file without reference to go.dev. I assumed that if Google has this legal issue with displaying source code meta-data, other similar explorers have it as well. Otherwise, what's special about Google?

package authors to fix their licenses for the broader open source ecosystem if there are issues, and other users have concerns about a package or module's licenses.

I'm sorry, but I can't see what I can do to "fix my license" for the gioui.org modules. If anything, go.dev is being overly restrictive in not accepting dual licenses as OR, rather than AND (gioui.org is dual licensed MIT OR UNLICENSE and MIT is supported by go.dev).

Secondly, I don't think it proper for a source code explorer to dictate the "proper" licenses for Go package.

Of course, please disregard my comments if you consider free, manual legal review by Google an acceptable solution for every package that needs it. If so, I still think there should be an automatic, faster (and cheaper for Google?) way to smooth the process; hence my .allow-sourceexplorers strawman.

eliasnaur

comment created time in a month

issue commentgolang/go

go.dev: support packages with unknown/unsupported licenses

FWIW, other source explorers such as https://docs.rs/ doesn't seem to be affected by licensing issues either.

eliasnaur

comment created time in a month

issue commentgolang/go

go.dev: support packages with unknown/unsupported licenses

Would you consider alternatives? It seems to me the issue that go.dev needs permission to a very limited use of the copyrighted work, namely displaying the textual documentation embedded in the repository. For example, how about a file that clearly states go.dev (or source code explorers in general) permission to display the package contents? Say, <reporoot>/.allow-sourceexplorers.

eliasnaur

comment created time in a month

issue openedgolang/go

go.dev: support packages with unknown/unsupported licenses

There has been work on this, but @mvdan suggested I create an issue for it for tracking.

The motivating example is the dual-licensed (MIT/UNLICENSE) gioui.org packages. See https://pkg.go.dev/gioui.org/op. The problem is that go.dev refuses to display certain meta-data if the license is not detected or in a list of supported licenses. In particular, the blocking of "Doc" and "Overview" sections make the pkg.go.dev listing almost useless.

Compare godoc.org which, while inferior to pkg.go.dev in other ways, has no problem displaying documentation regardless of licenses.

The Go team seems to have a manual process of vetting packages such as gioui.org. However, that process is slow for all parties and might not cover every weird license out there.

@rogpeppe because pkg.go.dev also blocks some of his packages.

created time in a month

issue commentgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

FWIW, I've started to implement Russ' proposal (implementing a wrapper around the Go program with a minimal kernel). You don't get the performance and flexibility from a tight integration, but maintain the important ability to run unmodified Go programs. I have a prototype that can run simple Go programs that I intend to open source when it's sufficiently useful; let me know if anyone is interested in collaborating.

eliasnaur

comment created time in 2 months

issue commentgolang/go

cmd/link: crash with -E <nonexisting symbol>

Sorry for not being clear. An error about the missing symbol would be nice, but since this is arguably a dusty corner of the linker, not panicing is fine.

eliasnaur

comment created time in 2 months

issue openedgolang/go

cmd/link: crash with -E <nonexisting symbol>

<pre> $ go version go version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 linux/amd64 </pre>

$ cat main.go
package main

func main() {
}
$ go build -ldflags="-E nonexistent" main.go 
# command-line-arguments
panic: runtime error: index out of range [-1]

goroutine 1 [running]:
cmd/link/internal/ld.(*Link).pclntab(0xc000082480)
	/home/elias/dev/go-tip/src/cmd/link/internal/ld/pcln.go:374 +0x1e40
cmd/link/internal/ld.Main(0x8912a0, 0x10, 0x20, 0x1, 0x7, 0x10, 0x6bddc3, 0x1b, 0x6b9e74, 0x14, ...)
	/home/elias/dev/go-tip/src/cmd/link/internal/ld/main.go:243 +0xc62
main.main()
	/home/elias/dev/go-tip/src/cmd/link/main.go:68 +0x1bc

created time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha 2428e1fea9ab8e0d322e3dcd0095f3a05993deb1

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

issue closedgolang/go

cmd/compile: escape analysis report mismatch with allocations

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Go are you using (go version)?

<pre> $ go version go version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 linux/amd64 </pre>

Does this issue reproduce with the latest release?

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/elias/.cache/go-build" GOENV="/home/elias/.config/go/env" GOEXE="" GOFLAGS="-mod=readonly" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/elias/dev/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/elias/dev/go-tip/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/var/home/elias/proj/gio/example/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build792075942=/tmp/go-build -gno-record-gcc-switches" GOROOT/bin/go version: go version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 linux/amd64 GOROOT/bin/go tool compile -V: compile version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 uname -sr: Linux 5.3.15-300.fc31.x86_64 /lib64/libc.so.6: GNU C Library (GNU libc) stable release version 2.30. gdb --version: GNU gdb (GDB) Fedora 8.3.50.20190824-25.fc31 </pre></details>

What did you do?

This is an abbreviated version of a layout API from Gio.

package layout

import "testing"

type MacroWidget struct {
	Widget func()
	Ops    *Ops
}

type Ops struct {
	refs []*Ops
}

func (w MacroWidget) Add(ops *Ops) {
	ops.refs = append(ops.refs, w.Ops)
}

func Layout2(ops *Ops, widgets ...MacroWidget) {
	for _, w := range widgets {
		w.Widget()
		w.Add(ops)
	}
}

func BenchmarkLayout2(b *testing.B) {
	ops := new(Ops)
	for i := 0; i < b.N; i++ {
		ops.refs = ops.refs[:0]
		Layout2(ops,
			MacroWidget{Widget: func() {
			}},
		)
	}
}

Running

$ go test -gcflags="-l -m" -bench=. -test.benchmem layout_test.go
# command-line-arguments [command-line-arguments.test]
./flex_test.go:14:7: leaking param: w
./flex_test.go:14:26: leaking param content: ops
./flex_test.go:18:14: leaking param content: ops
./flex_test.go:18:24: leaking param content: widgets
./flex_test.go:28:12: BenchmarkLayout2 ignoring self-assignment in ops.refs = ops.refs[:0]
./flex_test.go:25:23: b does not escape
./flex_test.go:26:12: new(Ops) does not escape
./flex_test.go:29:10: ... argument does not escape
./flex_test.go:30:24: func literal escapes to heap
<autogenerated>:1: leaking param content: .this
./flex_test.go:14:26: leaking param content: ops
# command-line-arguments.test
/tmp/go-build768440995/b001/_testmain.go:42:42: testdeps.TestDeps literal escapes to heap
goos: linux
goarch: amd64
BenchmarkLayout2-8   	178893040	         6.37 ns/op	       0 B/op	       0 allocs/op
PASS
ok  	command-line-arguments	1.446s

Note that the func literal on line 30 is reported as leaking, but the Benchmark reports no allocations.

What did you expect to see?

Allocations matching the reported leak.

What did you see instead?

No allocations, despite the leak.

What I'd like to achieve in Gio is that the w param at line 20 wouldn't leak. And perhaps it doesn't, as indicated by the allocation report.

@mdempsky

closed time in 3 months

eliasnaur

issue commentgolang/go

cmd/compile: escape analysis report mismatch with allocations

I see, thank you. I reproduced the allocation with

  package layout
  
  import "testing"
  
  type MacroWidget struct {
      Widget func()
      Ops    *Ops
  }
  
  type Ops struct { 
      refs []*Ops
  }
  
  func (w MacroWidget) Add(ops *Ops) {
      ops.refs = append(ops.refs, w.Ops)
  }
  
  func Layout2(ops *Ops, widgets ...MacroWidget) {
      for _, w := range widgets {
          w.Widget()
          w.Add(ops)
      }
  }
  
  func BenchmarkLayout2(b *testing.B) {
      var counter int
      ops := new(Ops)
      for i := 0; i < b.N; i++ {
          ops.refs = ops.refs[:0]
          Layout2(ops,
              MacroWidget{Widget: func() {
                  counter++
              }},
          )
      }
  }
eliasnaur

comment created time in 3 months

issue openedgolang/go

cmd/compile: escape analysis report mismatch with allocations

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Go are you using (go version)?

<pre> $ go version go version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 linux/amd64 </pre>

Does this issue reproduce with the latest release?

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/elias/.cache/go-build" GOENV="/home/elias/.config/go/env" GOEXE="" GOFLAGS="-mod=readonly" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/elias/dev/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/elias/dev/go-tip/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/var/home/elias/proj/gio/example/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build792075942=/tmp/go-build -gno-record-gcc-switches" GOROOT/bin/go version: go version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 linux/amd64 GOROOT/bin/go tool compile -V: compile version devel +3a3093d5c7 Mon Dec 9 21:50:59 2019 +0000 uname -sr: Linux 5.3.15-300.fc31.x86_64 /lib64/libc.so.6: GNU C Library (GNU libc) stable release version 2.30. gdb --version: GNU gdb (GDB) Fedora 8.3.50.20190824-25.fc31 </pre></details>

What did you do?

This is an abbreviated version of a layout API from Gio.

package layout

import "testing"

type MacroWidget struct {
	Widget func()
	Ops    *Ops
}

type Ops struct {
	refs []*Ops
}

func (w MacroWidget) Add(ops *Ops) {
	ops.refs = append(ops.refs, w.Ops)
}

func Layout2(ops *Ops, widgets ...MacroWidget) {
	for _, w := range widgets {
		w.Widget()
		w.Add(ops)
	}
}

func BenchmarkLayout2(b *testing.B) {
	ops := new(Ops)
	for i := 0; i < b.N; i++ {
		ops.refs = ops.refs[:0]
		Layout2(ops,
			MacroWidget{Widget: func() {
			}},
		)
	}
}

Running

$ go test -gcflags="-l -m" -bench=. -test.benchmem layout_test.go
# command-line-arguments [command-line-arguments.test]
./flex_test.go:14:7: leaking param: w
./flex_test.go:14:26: leaking param content: ops
./flex_test.go:18:14: leaking param content: ops
./flex_test.go:18:24: leaking param content: widgets
./flex_test.go:28:12: BenchmarkLayout2 ignoring self-assignment in ops.refs = ops.refs[:0]
./flex_test.go:25:23: b does not escape
./flex_test.go:26:12: new(Ops) does not escape
./flex_test.go:29:10: ... argument does not escape
./flex_test.go:30:24: func literal escapes to heap
<autogenerated>:1: leaking param content: .this
./flex_test.go:14:26: leaking param content: ops
# command-line-arguments.test
/tmp/go-build768440995/b001/_testmain.go:42:42: testdeps.TestDeps literal escapes to heap
goos: linux
goarch: amd64
BenchmarkLayout2-8   	178893040	         6.37 ns/op	       0 B/op	       0 allocs/op
PASS
ok  	command-line-arguments	1.446s

Note that the func literal on line 30 is reported as leaking, but the Benchmark reports no allocations.

What did you expect to see?

Allocations matching the reported leak.

What did you see instead?

No allocations, despite the leak.

What I'd like to achieve in Gio is that the w param at line 20 wouldn't leak. And perhaps it doesn't, as indicated by the allocation report.

@mdempsky

created time in 3 months

issue commentgolang/go

time: time.Local is always UTC on iOS

The correct fix is not as easy as it sounds because of cgo restrictions, see above. One easier workaround is to do the timezone setting on gomobile itself, not the Go runtime. I encourage anyone interested in fixing this issue to try that, if for nothing else than the runtime fix will not be released until Go 1.15 in August next year.

That said, @gwik's original approach might be feasible without Cgo now that Go uses libc on Darwin.

gwik

comment created time in 3 months

issue commentgolang/go

runtime: memory corruption on Linux 5.2+

I'm also on Fedora, getting

$ GODEBUG=asyncpreemptoff=1 ./make.bash 
Building Go cmd/dist using /home/elias/dev/go-1.7. (go1.7.1 linux/amd64)
Building Go toolchain1 using /home/elias/dev/go-1.7.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/amd64.
runtime: mlock of signal stack failed: 12
runtime: increase the mlock limit (ulimit -l) or
runtime: update your kernel to 5.4.2 or later
fatal error: mlock failed

even with GODEBUG=asyncpreemptoff=1. How can I proceed while waiting for kernel 5.3.15? ulimit -l 4096 doesn't seem to make a difference (ulimit -l still reports 64).

aclements

comment created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

I can still reproduce the error with the fix for #35767, so this issue does not seem to be a duplicate.

blockcodemagic

comment created time in 3 months

issue commentgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

Another related project:

https://github.com/inversepath/tamago

"bare metal Go for ARM SoCs". I believe the project is motivated by running Go on the USB [Armory device}(https://github.com/inversepath/usbarmory/wiki).

And of course the now dormant gopher-os implementating of a kernel in Go:

https://github.com/gopher-os/gopher-os

The point is that there is enough interest in running Go on bare-metal or without an OS that the significant work of porting the Go runtime and toolchain has been done several times. I would like to combine those efforts into an upstream GOOS target so the work won't need to be repeated over and over.

FWIW, Rust runs on bare metal, which lead to https://www.redox-os.org/.

eliasnaur

comment created time in 3 months

issue commentgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

I like the color of GOOS=kernel.

I agree that adding the necessary code for I/O to the Go standard library is too much. However, I'd still like for Go to enable programs running on bare metal or virtual machines. There are similar efforts for "not so small" microcontrollers, announced here:

https://groups.google.com/forum/#!topic/golang-dev/pAgZ64nnpJ4

Another related project is TinyGo, although they're also trying to avoid the large binary sizes of Go programs.

So a follow-up to Russ' objections is the question: would a GOOS=kernel port be interesting even if it didn't support package os, net and dependent packages? In other words, GOOS=kernel would implement enough of the runtime to support the Go language (goroutines, timers, memory allocation), but not the Go standard library packages for network and file system access.

eliasnaur

comment created time in 3 months

issue commentgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

Even if kvm is not the right GOOS, what you're describing still seems to imply a GOOS other than none, in the sense that the GOOS determines the system call ABI for the runtime and standard library. Perhaps GOOS=virtio would be appropriate?

(A GOOS=none in the precise sense seems like it would require either memory-mapped I/O or some sort of pluggable driver layer, but a “pluggable driver layer” is, in some sense, a GOOS.)

I think GOOS=metal or "noos" as suggested on golang-dev is better than "virtio". There is nothing special about virtio devices other than being common in virtual environments and particularly easy to write drivers for. Virtio devices are still discovered and used from the kernel through the same mechanisms as actual hardware devices.

I suppose an interesting question is: does GOOS=virtio still seem appropriate for running Go on bare metal where I wouldn't use virtio?

Perhaps GOOS is the wrong selector and there should be a GODRIVER=... for everything else than what your strict interpretation of GOOS=none implies.

eliasnaur

comment created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

This issue is a possible duplicate of https://github.com/golang/go/issues/35767.

blockcodemagic

comment created time in 3 months

issue commentgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

The GOOS=none name seems right to me because there's no reason a GOOS=none binary couldn't boot and run on bare metal just as a linux kernel bzImage can run on bare metal as well as on a hypervisor. There is certainly no dependency on a particular hypervisor such as kvm.

The virtio devices are not a hard dependency: a program that doesn't use the net or os packages can run without them. In fact, that's what I plan to do if this proposal i accepted and implemented: implement a bare-metal hypervisor where hardware drivers are implemented as virtual machine(s) on top.

I could even imagine a mechanism for registering network and file system drivers with the Go runtime to make package net and os useful even on real hardware.

Finally, virtio devices are not necessarily virtual. In fact, one of the touted features of the virtio 1.1 specification is easier implementation in hardware.

My proposal focuses on a virtual machine environment because it is easier to target initially and also seems more generally useful.

eliasnaur

comment created time in 3 months

issue openedgolang/go

proposal: support GOOS=none GOARCH=amd64 for running Go programs without an OS

The proposal itself is simple: allow

GOOS=none GOARCH=amd64 go build ...

to output a virtual machine image capable of booting and running directly on a hypervisor such as KVM.

As a motivating example, consider the single command

GOOS=none GOARCH=amd64 go build golang.org/x/tools/cmd/godoc

which will produce a virtual machine image that implements godoc.org.

The benefits are the usual isolation and security benefits of virtual machines, with the added simplicity and performance benefits of no underlying operating system.

That the underlying operating system gets in the way of the Go runtime is not a theroretical concern; see https://github.com/golang/go/issues/35777 for a recent example.

Implementation

Without an operating system, the Go runtime must implement functionality normally provided by the OS, the most important being CPU scheduling and memory management.

Note that the Go runtime already implements scheduling of goroutines onto operating system threads. In addition, the runtime also manages and garbage collects operating system provided memory.

I claim that the runtime need relatively few changes to schedule goroutines onto virtual CPUs and few changes to not allocate memory from the OS but directly from the available virtual memory.

Futher, any interesting Go program needs I/O, most often network and file I/O. Fortunately, the virtio specification standardizes virtual machine access to networking, console and file systems devices. I expect the standard library packages net and os to be implemented as Go drivers for virtio devices.

If the proposal is accepted and no-one more experience than myself claims it, I plan to seek sponsorships for implementing it for Go 1.15 along with the builder for build.golang.org.

created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

You don't need the header file, just declare

extern void Walk(void)

somewhere in your code.

As to the generated .a archive file, I believe you can drag-n-drop it into Xcode and it will include the archive in the build.

blockcodemagic

comment created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

Please elaborate. What are the errors you see? What steps are you trying?

blockcodemagic

comment created time in 3 months

push eventeliasnaur/gophercon-uk-2019-talk

Elias Naur

commit sha 7e99f050dae5ae505d72ee83b0d16c3394c9fc2d

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha 8c6a10bf695343098e3c54708885de8c614fe54e

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

I can reproduce the infinite loop, but can't explain the difference. If you're saying that the program works if you build a Go program using the library, then a way to minimize the reproducer is to cut out gomobile:

First, export a function with Cgo:

//export Walk
func Walk() {
    Walk("/home/you/Downloads")
}

Then, build your library in c-archive mode:

$ go build -o walk.a -buildmode=c-archive github.com/blockcodemagic/filepathwalk

And then see if you can get the Xcode project to link walk.a and call Walk as a C function.

See https://golang.org/cmd/cgo/#hdr-C_references_to_Go for more details on exporting Go functions to C.

blockcodemagic

comment created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

Sample app tries to use walk function for users Download dir. Please let me know if you need more information.

Thank you.

NOTE: It works on iOS

I'm still confused. You say that the program does work on iOS but yet the instructions refer to gomobile bind. Can you provide the exact steps to reproduce the error, given the repository?

blockcodemagic

comment created time in 3 months

issue commentgolang/go

path/filepath: Walk walks through the same dir over and over again on build with gomobile iOS

It wasn't clear to me: does the program fail only on iOS or on macOS as well (given Go 1.13.4)?

Please supply a short program and steps to reproduce.

blockcodemagic

comment created time in 3 months

issue commentgolang/go

x/mobile: gomobile build fails for iOS targets

Yes, but activated only with Go < 1.14.

dlo

comment created time in 3 months

issue commentgolang/go

x/mobile: gomobile build fails for iOS targets

The fixes will be in Go 1.14 and are not going to be backported. I left this issue open in case someone wanted to work on a gomobile workaround for Go 1.13. If not, go ahead and close it.

dlo

comment created time in 3 months

issue openedgolang/go

runtime: signal: illegal instruction on darwin/arm64

https://build.golang.org/log/8da8b3d360f7b226bbc021f29c3d9617d35773f9

ok  	cmd/addr2line	0.028s
ok  	cmd/api	0.071s
ok  	cmd/asm/internal/asm	0.628s
ok  	cmd/asm/internal/lex	0.031s
/tmp/workdir-host-darwin-arm64-corellium-ios/go/pkg/tool/darwin_arm64/vet: signal: illegal instruction
ok  	cmd/compile	0.048s
ok  	cmd/compile/internal/gc	0.103s
FAIL
go tool dist: Failed: exit status 1

created time in 3 months

issue commentgolang/go

runtime: hang in pthread_cond_timedwait_relative_np on darwin/arm64

So you think https://build.golang.org/log/8da8b3d360f7b226bbc021f29c3d9617d35773f9 is a different issue? It happens during cmd/compile tests.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: hang in pthread_cond_timedwait_relative_np on darwin/arm64

More weird crashes on darwin/arm64:

https://build.golang.org/log/186ffe8d4a32f24c719cb49eddf6e37e73957239 ("fatal: bad g in signal handler") https://build.golang.org/log/8da8b3d360f7b226bbc021f29c3d9617d35773f9 ("signal: illegal instruction")

eliasnaur

comment created time in 3 months

issue commentgolang/go

x/mobile: bind framework not found by Xcode

On Sun Nov 24, 2019 at 9:19 AM Pontus Nilsson Tengnäs wrote:

I do not see it is as necessary as it is working for me now. Now I just wonder if I can have a custom name on the .framework output and if the way I am binding the three packages is the correct way to do it, see my above comment.

The -o option should let you name your framework any way you want, providing the name ends with .framework. That's why I wanted you to provide us with exact reproduction steps.

pontusntengnas

comment created time in 3 months

issue commentgolang/go

x/mobile: bind framework not found by Xcode

Can you send a complete example, with you xcode project ready to use and a set of packages for gomobile bind? The easier it is to reproduce, the better.

@hajimehoshi

pontusntengnas

comment created time in 3 months

issue openedgolang/go

runtime: hang in pthread_cond_timedwait_relative_np on darwin/arm64

Similar in spirit to the hangs on Android, I had to kill -QUIT a hanging darwin/arm64 build:

https://build.golang.org/log/9678d54fa369d914b12c3b32df3a2470ba7ee4ec

It hung after bootstrap, but before tests:

Building packages and commands for darwin/arm64.
SIGQUIT: quit
PC=0x18ed54c8c m=1 sigcode=0

goroutine 0 [idle]:
runtime.pthread_cond_timedwait_relative_np(0x13003e388, 0x13003e348, 0x16b94eda8, 0x100000000)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/sys_darwin.go:393 +0x38
runtime.semasleep(0xdf8475800, 0x130000480)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/os_darwin.go:57 +0xd8
runtime.notetsleep_internal(0x104bc5a58, 0xdf8475800, 0x130000480, 0x2c37bfd1dfea0, 0x130030f60)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/lock_sema.go:224 +0x128
runtime.notetsleep(0x104bc5a58, 0xdf8475800, 0x104847400)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/lock_sema.go:275 +0x44
runtime.sysmon()
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/proc.go:4491 +0x450
runtime.mstart1()
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/proc.go:1133 +0xa4
runtime.mstart()
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/proc.go:1098 +0x54

goroutine 1 [syscall]:
syscall.syscall(0x1045d6158, 0x151d02840, 0x0, 0x0, 0x0, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/runtime/sys_darwin.go:63 +0x14
syscall.closedir(0x151d02840, 0xc8, 0x130381e00)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/syscall/zsyscall_darwin_arm64.go:534 +0x3c
os.(*dirInfo).close(...)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/os/dir_darwin.go:23
os.(*file).close(0x13038fe00, 0xffffffffffffffff, 0x1303f8000)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/os/file_unix.go:245 +0x194
os.(*File).Close(...)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/os/file_unix.go:237
path/filepath.readDirNames(0x130381e00, 0x53, 0x0, 0x1045f2ff4, 0x130381e00, 0x53, 0x130381e4b)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:422 +0xf8
path/filepath.walk(0x130381e00, 0x53, 0x104985680, 0x130383520, 0x130113650, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:363 +0x44
path/filepath.walk(0x13030b900, 0x4a, 0x104985680, 0x130359110, 0x130113650, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:384 +0x22c
path/filepath.walk(0x1301f3680, 0x46, 0x104985680, 0x13020e9c0, 0x130113650, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:384 +0x22c
path/filepath.walk(0x130024440, 0x40, 0x104985680, 0x1301060d0, 0x130113650, 0x0, 0x2)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:384 +0x22c
path/filepath.Walk(0x130024440, 0x40, 0x1300ab650, 0x1048c6316, 0x1)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/path/filepath/path.go:406 +0xdc
cmd/go/internal/search.MatchPackages(0x16b8c7a83, 0x3, 0x2)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/search/search.go:59 +0x2a8
cmd/go/internal/search.ImportPathsQuiet(0x130018280, 0x2, 0x2, 0x1048bd620, 0x104839700, 0x104e08000)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/search/search.go:338 +0xc4
cmd/go/internal/search.ImportPaths(0x130018280, 0x2, 0x2, 0x13001c480, 0x7, 0x104546c20)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/search/search.go:328 +0x30
cmd/go/internal/load.ImportPaths(0x130018280, 0x2, 0x2, 0x1300aba00, 0x7, 0x104573968)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/load/pkg.go:2118 +0xa0
cmd/go/internal/load.PackagesAndErrors(0x130018280, 0x2, 0x2, 0x0, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/load/pkg.go:2063 +0xb4
cmd/go/internal/load.PackagesForBuild(0x130018280, 0x2, 0x2, 0x104875700, 0x0, 0x0)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/load/pkg.go:2125 +0x3c
cmd/go/internal/work.runInstall(0x104bbdb40, 0x130018280, 0x2, 0x2)
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/internal/work/build.go:516 +0x34
main.main()
	/private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/src/cmd/go/main.go:189 +0x51c

r0      0x104
r1      0x0
r2      0x0
r3      0x0
r4      0x0
r5      0xa0
r6      0x3b
r7      0x3b9abfbf
r8      0x9ba00
r9      0x9b901
r10     0x13003e360
r11     0x2
r12     0x20a0
r13     0x0
r14     0x0
r15     0x0
r16     0x131
r17     0x0
r18     0x0
r19     0x13003e348
r20     0x13003e388
r21     0x0
r22     0x3b9abfbf
r23     0x3b
r24     0x0
r25     0x9b901
r26     0x9ba00
r27     0x104bdf958
r28     0x130000480
r29     0x16b94ecc0
lr      0x18ec72238
sp      0x16b94ec50
pc      0x18ed54c8c
fault   0x18ed54c8c
go tool dist: FAILED: /private/var/tmp/workdir-host-darwin-arm64-corellium-ios/go/pkg/tool/darwin_arm64/go_bootstrap install -gcflags=all= -ldflags=all= std cmd: exit status 2

created time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha a622e5682b42f27a5047d5639d935850bd220d50

simplify animatedclipping Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

Elias Naur

commit sha f3d583650214db2d258014eaa0c9ebaf968cdcc1

update slides Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

Elias Naur

commit sha a66194ccb0ff1c0e7014b584ec5b4a44e65df6dd

update slides Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

issue commentgolang/go

x/mobile: bind framework not found by Xcode

I installed Xcode 11.2.1 with no change: the bind example builds successfully.

Thanks for you reply. I tried both of them without success. I really cannot understand why this is happening, there is a framework in that folder. I do not know if it matters but it is just a folder called "Shared.Framework" containing the files and not that "Lego-ish" icon that i have seen some frameworks have.

Did you name the framework "Shared.Framework" or "Shared.framework"?

pontusntengnas

comment created time in 3 months

issue commentgolang/go

x/mobile: bind framework not found by Xcode

I alos tried adding the absolut path to Xcode build setting Framework search paths without success.

FWIW, this works for me in Xcode 11.1. Did you add the path to the framework ("/path/to/Shared.framework") or the path to the containing directory ("/path/to")? Xcode expects the latter.

pontusntengnas

comment created time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha e6fb8a05b6856af5f7c55e6e9712b513f6ec82da

update cph gophers slides Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha 4be201e2bad471a0421ea2840ee3b041f6375863

added Cph Gophers slides

view details

push time in 3 months

issue commentgolang/go

x/tools/cmd/present: support play snippets in module mode

github.com/eliasnaur/gophercon-2019-talk is a module: https://github.com/eliasnaur/gophercon-2019-talk/blob/master/go.mod and I run present from there.

eliasnaur

comment created time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha 0379adc8bdd2291ac143db0e78cd0a1201374889

use layout.Context in pointer.go Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha badca6104290c390093cc0eef958dc1714e124ce

shorten animatedclipping.go Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha ce9adb7d6b5fb4b0b4a0cf87cc1f401b1bc984ab

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 3 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha dfa11dc3330adbd200ec44b953f3efd40fa3eda4

update gio version

view details

push time in 3 months

issue openedgolang/go

x/tools/cmd/present: support GO111MODULE=on

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Go are you using (go version)?

<pre> $ go version go version devel +9325bec899 Wed Nov 13 11:59:24 2019 +0100 darwin/amd64 </pre>

Does this issue reproduce with the latest release?

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/Users/elias/Library/Caches/go-build" GOENV="/Users/elias/Library/Application Support/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/Users/elias/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/Users/elias/go-tip/pkg/tool/darwin_amd64" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/Users/elias/proj/gophercon-2019-talk/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/_7/lnt35k555hl2bs7fjygkhgx00000gp/T/go-build183530635=/tmp/go-build -gno-record-gcc-switches -fno-common" GOROOT/bin/go version: go version devel +9325bec899 Wed Nov 13 11:59:24 2019 +0100 darwin/amd64 GOROOT/bin/go tool compile -V: compile version devel +9325bec899 Wed Nov 13 11:59:24 2019 +0100 uname -v: Darwin Kernel Version 18.7.0: Sat Oct 12 00:02:19 PDT 2019; root:xnu-4903.278.12~1/RELEASE_X86_64 ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G1012 lldb --version: lldb-1100.0.28.19 Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) </pre></details>

What did you do?

$ git clone https://github.com/eliasnaur/gophercon-2019-talk
$ cd gophercon-2019-talk
$ GO111MODULE=on present

Then, I opened http://127.0.0.1:3999/gophercon-2019.slide#7 in a browser and pressed "run".

What did you expect to see?

The program running locally.

What did you see instead?

compile1.go:7:5: cannot find module providing package gioui.org/app: working directory is not part of a module

Program exited: exit status 1

present used to work with GO111MODULE=on. I believe the fix for #32027 broke it.

created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Thank you very much, Cherry! I'll keep working on CL 207299 because it's a gain independent of this issue.

eliasnaur

comment created time in 3 months

issue commentgolang/go

x/build/dashboard: darwin-arm-mg912baios and darwin-arm64-mn4m2zdaios builders consistently failing

If the were with memory or parallelism, why can't I reproduce the problem on the modest iPhone 5S? I still believe the devices need a factory reset or replacement. @steeve ?

bcmills

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Android refuses to run non-pie programs. See https://go-review.googlesource.com/c/go/+/170943. Fortunately it seems internal linking of non-cgo PIE programs work on android/arm64.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

That's https://github.com/golang/go/issues/31343. Do you have an idea of the scope to implement it? I don't mind working on it this cycle if it helps async preemption.

eliasnaur

comment created time in 3 months

issue commentgolang/go

x/mobile: when a panic happens, a long enough traceback deadlocks the runtime on Android

AFAICT, the runtime only redirects its own printing (of crashes) to stderr. The gomobile redirect is for all writes to stderr (and stdout), not just the runtime's.

One fix is to rewrite the gomobile redirect in C(go).

gawen

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Thank you, Cherry. With your CL, I got a "bad g in signal handler" for an android/arm build:

$ (unset LD_PRELOAD && GOARCH=arm CGO_ENABLED=1 GOTRACEBACK=crash ./all.bash )
Building Go cmd/dist using /data/data/com.termux/files/usr/lib/go. (go1.13.3 android/arm64)
Building Go toolchain1 using /data/data/com.termux/files/usr/lib/go.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
warning: unable to find runtime/cgo.a
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for host, android/arm64.
fatal: bad g in signal handler
go tool dist: FAILED: /data/data/com.termux/files/home/goroot/pkg/tool/android_arm64/go_bootstrap install -gcflags=all= -ldflags=all= std cmd: exit status 2

And a similar for android/arm64:

$ (unset LD_PRELOAD && GOARCH=arm64 CGO_ENABLED=1 GOTRACEBACK=crash ./all.bash )
Building Go cmd/dist using /data/data/com.termux/files/usr/lib/go. (go1.13.3 android/arm64)
Building Go toolchain1 using /data/data/com.termux/files/usr/lib/go.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
warning: unable to find runtime/cgo.a
Building Go toolchain2 using go_bootstrap and Go toolchain1.
fatal: bad g in signal handler
go tool dist: FAILED: /data/data/com.termux/files/home/goroot/pkg/tool/android_arm64/go_bootstrap install -gcflags=all= -ldflags=all= -i cmd/asm cmd/cgo cmd/compile cmd/link: exit status 2

No stack traces though, but perhaps you expected that?

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Finally, a GOTRACEBACK=crash enabled log from the new android/arm64 builder:

https://build.golang.org/log/d1bc80f88a28797a24773d9a98525e9ce8db9aa2

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Another from the old darwin/arm64 builder (no GOTRACEBACK=crash):

https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=c07511585e37695d750a1e2efd44033b1160863a&st=0xc00a993a20

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime/pprof: slice bounds out of range [6:5] in appendLocsForStack

@hyangah You can use the TRY=android-arm64,android-arm aliases when the builders catch up. They're annoying to use from gomote.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

And another android/arm on the old builder, but without GOTRACEBACK=crash:

https://farmer.golang.org/temporarylogs?name=android-arm-corellium&rev=bf4990522263503a1219372cd8f1ee9422b51324&st=0xc00bc78c60

SIGQUIT: quit
PC=0x79f9e44a58 m=1 sigcode=0

goroutine 0 [idle]:
runtime.usleep()
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/sys_linux_arm64.s:148 +0x40
runtime.sysmon()
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:4484 +0x90
runtime.mstart1()
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1133 +0xa4
runtime.mstart()
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1098 +0x58

goroutine 1 [semacquire, 23 minutes]:
sync.runtime_Semacquire(0x40006dea18)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/sema.go:56 +0x30
sync.(*WaitGroup).Wait(0x40006dea10)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/sync/waitgroup.go:130 +0x64
cmd/go/internal/work.(*Builder).Do(0x4000cde5a0, 0x4000d78140)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:187 +0x340
cmd/go/internal/list.runList(0x79fa505740, 0x40000100c0, 0x2, 0x2)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/list/list.go:531 +0x1ab8
main.main()
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/main.go:189 +0x50c

goroutine 3768 [runnable]:
os.(*File).Read(0x4000dde370, 0x4000bde000, 0x8000, 0x8000, 0x8000, 0x0, 0x0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/os/file.go:112 +0x1f0
io.copyBuffer(0x77d278b700, 0x400079ae00, 0x79fa2ddf60, 0x4000dde370, 0x4000bde000, 0x8000, 0x8000, 0x79f9ec0c20, 0x0, 0x79f9ec0c0c)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/io/io.go:405 +0xcc
io.Copy(...)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/io/io.go:364
cmd/go/internal/cache.FileHash(0x400079ab00, 0x80, 0x0, 0x0, 0x0, 0x0, 0x400079ab00, 0x80)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/cache/hash.go:149 +0x2ac
cmd/go/internal/work.(*Builder).fileHash(0x4000cde5a0, 0x400079ab00, 0x80, 0x400079ab00, 0x80)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/buildid.go:403 +0x28
cmd/go/internal/work.(*Builder).buildActionID(0x4000cde5a0, 0x4000db48c0, 0x0, 0x0, 0x0, 0x0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:317 +0x888
cmd/go/internal/work.(*Builder).build(0x4000cde5a0, 0x4000db48c0, 0x0, 0x0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:398 +0x3bd4
cmd/go/internal/work.(*Builder).Do.func2(0x4000db48c0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:118 +0x2cc
cmd/go/internal/work.(*Builder).Do.func3(0x40006dea10, 0x4000cde5a0, 0x400013a400)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:178 +0x50
created by cmd/go/internal/work.(*Builder).Do
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/cmd/go/internal/work/exec.go:165 +0x31c

r0      0xfffffffffffffffc
r1      0x0
r2      0x0
r3      0x0
r4      0x3e8
r5      0x989680
r6      0x79fa50c8d0
r7      0x1bf08eb000
r8      0x65
r9      0x30fd4430e90
r10     0xd26
r11     0x1f077f8c
r12     0x18
r13     0x5dcc772a
r14     0x112a8800000000
r15     0x4d9298000000
r16     0x4000045f18
r17     0x0
r18     0xffffffff
r19     0x30
r20     0x4000045ef0
r21     0x4000036000
r22     0x4000038000
r23     0x79fa540335
r24     0x79fa524ac0
r25     0x18
r26     0x79fa2d51a8
r27     0x2710
r28     0x4000000480
r29     0x7fd4d954e8
lr      0x79f9e23de8
sp      0x4000045ef0
pc      0x79f9e44a58
fault   0x0

go tool dist: FAILED: /data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/pkg/tool/android_arm64/go_bootstrap list -gcflags=all= -ldflags=all= -f={{if .Stale}}	STALE {{.ImportPath}}: {{.StaleReason}}{{end}} std cmd: exit status 2


Error: build failed: make script failed: exit status 2
eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Got one with GOTRACEBACK=crash on android/arm:

https://build.golang.org/log/aa5855e5d65bbe8361fa9b79d53c1f9be22f1804

SIGQUIT: quit
PC=0x72e3f82ab8 m=1 sigcode=0

goroutine 0 [idle]:
runtime.usleep()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/sys_linux_arm64.s:148 +0x40 fp=0x4000045f20 sp=0x4000045ef0 pc=0x72e3f82ab8
runtime.sysmon()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:4491 +0x90 fp=0x4000045fa0 sp=0x4000045f20 pc=0x72e3f61e48
runtime.mstart1()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1133 +0xa4 fp=0x4000045fd0 sp=0x4000045fa0 pc=0x72e3f5a17c
runtime.mstart()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1098 +0x58 fp=0x4000046000 sp=0x4000045fd0 pc=0x72e3f5a0b0

goroutine 1 [running]:
	goroutine running on other thread; stack unavailable

goroutine 2 [runnable]:
runtime.gopark(0x72e4413908, 0x72e4663bf0, 0x1411, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000032fa0 sp=0x4000032f80 pc=0x72e3f57d70
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.forcegchelper()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:253 +0xb0 fp=0x4000032fd0 sp=0x4000032fa0 pc=0x72e3f57c28
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000032fd0 sp=0x4000032fd0 pc=0x72e3f81f2c
created by runtime.init.5
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:242 +0x28

goroutine 3 [GC sweep wait]:
runtime.gopark(0x72e4413908, 0x72e4663e20, 0x140c, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x40000337a0 sp=0x4000033780 pc=0x72e3f57d70
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.bgsweep(0x4000020150)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcsweep.go:89 +0x170 fp=0x40000337d0 sp=0x40000337a0 pc=0x72e3f47208
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000337d0 sp=0x40000337d0 pc=0x72e3f81f2c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:214 +0x4c

goroutine 4 [sleep]:
runtime.gopark(0x72e4413908, 0x72e4663de0, 0x1313, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000033f00 sp=0x4000033ee0 pc=0x72e3f57d70
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.scavengeSleep(0x40895, 0x171a42)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcscavenge.go:197 +0x9c fp=0x4000033f40 sp=0x4000033f00 pc=0x72e3f45b44
runtime.bgscavenge(0x4000020150)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcscavenge.go:296 +0x2cc fp=0x4000033fd0 sp=0x4000033f40 pc=0x72e3f45e44
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000033fd0 sp=0x4000033fd0 pc=0x72e3f81f2c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:215 +0x6c

goroutine 5 [finalizer wait, 14 minutes]:
runtime.gopark(0x72e4413908, 0x72e467ecd0, 0x4000021410, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000032730 sp=0x4000032710 pc=0x72e3f57d70
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.runfinq()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:175 +0xac fp=0x40000327d0 sp=0x4000032730 pc=0x72e3f3d714
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000327d0 sp=0x40000327d0 pc=0x72e3f81f2c
created by runtime.createfing
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:156 +0x64

goroutine 6 [GC worker (idle), 14 minutes]:
runtime.gopark(0x72e44137a8, 0x40003cd5a0, 0x1418, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000034750 sp=0x4000034730 pc=0x72e3f57d70
runtime.gcBgMarkWorker(0x4000024000)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1874 +0xe0 fp=0x40000347d0 sp=0x4000034750 pc=0x72e3f40e58
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000347d0 sp=0x40000347d0 pc=0x72e3f81f2c
created by runtime.gcBgMarkStartWorkers
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1822 +0x70

r0      0xfffffffffffffffc
r1      0x0
r2      0x0
r3      0x0
r4      0x3e8
r5      0x989680
r6      0x72e464b8d0
r7      0x1bf08eb000
r8      0x65
r9      0xc1f5e213020
r10     0x3410
r11     0x336d788c
r12     0x18
r13     0x5dcc761c
r14     0x6052340000000
r15     0x68507e000000
r16     0x4000045f18
r17     0x0
r18     0xffffffff
r19     0x30
r20     0x4000045ef0
r21     0x4000036000
r22     0x4000038000
r23     0x72e467f335
r24     0x72e4663ac0
r25     0x18
r26     0x72e44139a8
r27     0x2710
r28     0x4000000480
r29     0x7fc0eba6f8
lr      0x72e3f61e48
sp      0x4000045ef0
pc      0x72e3f82ab8
fault   0x0

-----

SIGQUIT: quit
PC=0x72e3f82fc4 m=2 sigcode=0

goroutine 0 [idle]:
runtime.futex(0x40000364c8, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x72e3f5b66c, 0x0, 0x72e3f5b6cc, ...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/sys_linux_arm64.s:536 +0x1c fp=0x4000047d50 sp=0x4000047d50 pc=0x72e3f82fc4
runtime.futexsleep(0x40000364c8, 0x0, 0xffffffffffffffff)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/os_linux.go:44 +0x30 fp=0x4000047da0 sp=0x4000047d50 pc=0x72e3f52918
runtime.notesleep(0x40000364c8)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/lock_futex.go:151 +0x90 fp=0x4000047de0 sp=0x4000047da0 pc=0x72e3f31098
runtime.stopm()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1864 +0xa4 fp=0x4000047e10 sp=0x4000047de0 pc=0x72e3f5b6cc
runtime.findrunnable(0x4000024000, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2396 +0xa20 fp=0x4000047f10 sp=0x4000047e10 pc=0x72e3f5ccd8
runtime.schedule()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2556 +0x2c4 fp=0x4000047f90 sp=0x4000047f10 pc=0x72e3f5d8dc
runtime.park_m(0x4000000900)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2696 +0x80 fp=0x4000047fc0 sp=0x4000047f90 pc=0x72e3f5dcb8
runtime.mcall(0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:174 +0x58 fp=0x4000047fd0 sp=0x4000047fc0 pc=0x72e3f7f880
r0      0x40000364c8
r1      0x80
r2      0x0
r3      0x0
r4      0x0
r5      0x0
r6      0x1
r7      0x4
r8      0x62
r9      0x3b9aca00000000
r10     0x3098
r11     0x10e5eac4
r12     0x18
r13     0x5dcc72a3
r14     0x1f0dd440000000
r15     0x72dbb6000000
r16     0x4000047e08
r17     0x0
r18     0xffffffff
r19     0x8
r20     0x4000047de0
r21     0x4000036380
r22     0x400004a000
r23     0x72e467f335
r24     0x72e4663ac0
r25     0x18
r26     0x72e4413908
r27     0x0
r28     0x4000000c00
r29     0x0
lr      0x72e3f52918
sp      0x4000047d50
pc      0x72e3f82fc4
fault   0x0

-----

SIGQUIT: quit
PC=0x72e3f82fc4 m=3 sigcode=0

goroutine 0 [idle]:
runtime.futex(0x4000036848, 0x80, 0x0, 0x0, 0x0, 0x72e3f5db70, 0x4000024000, 0x72e3f5b66c, 0xb507a562252, 0x72e3f5b6cc, ...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/sys_linux_arm64.s:536 +0x1c fp=0x4000041d50 sp=0x4000041d50 pc=0x72e3f82fc4
runtime.futexsleep(0x4000036848, 0x7200000000, 0xffffffffffffffff)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/os_linux.go:44 +0x30 fp=0x4000041da0 sp=0x4000041d50 pc=0x72e3f52918
runtime.notesleep(0x4000036848)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/lock_futex.go:151 +0x90 fp=0x4000041de0 sp=0x4000041da0 pc=0x72e3f31098
runtime.stopm()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:1864 +0xa4 fp=0x4000041e10 sp=0x4000041de0 pc=0x72e3f5b6cc
runtime.findrunnable(0x4000024000, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2396 +0xa20 fp=0x4000041f10 sp=0x4000041e10 pc=0x72e3f5ccd8
runtime.schedule()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2556 +0x2c4 fp=0x4000041f90 sp=0x4000041f10 pc=0x72e3f5d8dc
runtime.park_m(0x4000000900)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:2696 +0x80 fp=0x4000041fc0 sp=0x4000041f90 pc=0x72e3f5dcb8
runtime.mcall(0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:174 +0x58 fp=0x4000041fd0 sp=0x4000041fc0 pc=0x72e3f7f880
r0      0x4000036848
r1      0x80
r2      0x0
r3      0x0
r4      0x0
r5      0x0
r6      0x1
r7      0x4
r8      0x62
r9      0xb507a5d906e
r10     0x1
r11     0x1
r12     0x72e4663e00
r13     0x72e4663b90
r14     0x1
r15     0x1
r16     0x0
r17     0x2
r18     0xffffffff
r19     0x72bed00000
r20     0x4000041d90
r21     0x4000036700
r22     0x4000052000
r23     0x72e467f335
r24     0x72e4663ac0
r25     0x18
r26     0x72e4413908
r27     0x0
r28     0x4000000f00
r29     0x0
lr      0x72e3f52918
sp      0x4000041d50
pc      0x72e3f82fc4
fault   0x0

-----

go tool dist: FAILED: /data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/pkg/tool/android_arm64/go_bootstrap install -gcflags=all= -ldflags=all= std cmd: signal: killed


Error: build failed: make script failed: exit status 2
eliasnaur

comment created time in 3 months

issue closedgolang/go

runtime/pprof: slice bounds out of range [6:5] in appendLocsForStack

From https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=54cf7760203c2b138d9ecf653cd3b2402444cf9b&st=0xc0037da160

panic: runtime error: slice bounds out of range [6:5]

goroutine 51 [running]:
runtime/pprof.(*profileBuilder).appendLocsForStack(0x40000a5ce0, 0x400001cca0, 0x0, 0x4, 0x4000286050, 0x5, 0x3f6, 0x0, 0x1, 0x4)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:397 +0x5ac
runtime/pprof.(*profileBuilder).build(0x40000a5ce0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:362 +0xf4
runtime/pprof.profileWriter(0x771c67e380, 0x400034a4e0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:779 +0xd0
created by runtime/pprof.StartCPUProfile
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:750 +0x114

With GOTRACEBACK=crash:

https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=62581ee982bef250a1b53af2e3591f1193fe27ee&st=0xc005d9b600

panic: runtime error: slice bounds out of range [6:5]

goroutine 10886 [running]:
panic(0x7b5d176580, 0x4007b41f40)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/panic.go:1054 +0x3ec fp=0x4000049cd0 sp=0x4000049c20 pc=0x7b5cf554a4
runtime.goPanicSliceB(0x6, 0x5)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/panic.go:116 +0x88 fp=0x4000049d20 sp=0x4000049cd0 pc=0x7b5cf53790
runtime/pprof.(*profileBuilder).appendLocsForStack(0x4008312c60, 0x4007b41f20, 0x0, 0x4, 0x4008330050, 0x5, 0x3f6, 0x0, 0x4, 0x4)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:397 +0x5ac fp=0x4000049df0 sp=0x4000049d20 pc=0x7b5d086594
runtime/pprof.(*profileBuilder).build(0x4008312c60)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:362 +0xf4 fp=0x4000049f40 sp=0x4000049df0 pc=0x7b5d085c5c
runtime/pprof.profileWriter(0x7b5d192020, 0x40000fe858)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:779 +0xd0 fp=0x4000049fc0 sp=0x4000049f40 pc=0x7b5d083888
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000049fc0 sp=0x4000049fc0 pc=0x7b5cf8408c
created by runtime/pprof.StartCPUProfile
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:750 +0x114

goroutine 1 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x4000023b58, 0x170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000097b10 sp=0x4000097af0 pc=0x7b5cf57dc0
runtime.chanrecv(0x4000023b00, 0x4000097c28, 0x4000000101, 0x7b5cfff724)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000097ba0 sp=0x4000097b10 pc=0x7b5cf2be78
runtime.chanrecv1(0x4000023b00, 0x4000097c28)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000097bd0 sp=0x4000097ba0 pc=0x7b5cf2bbd8
testing.(*T).Run(0x4007d7d560, 0x7b5d09dbdf, 0x15, 0x7b5d18d3f0, 0x5dcc7101)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1006 +0x2b8 fp=0x4000097c80 sp=0x4000097bd0 pc=0x7b5cfff740
testing.runTests.func1(0x40000c6000)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1247 +0x6c fp=0x4000097cd0 sp=0x4000097c80 pc=0x7b5d002d54
testing.tRunner(0x40000c6000, 0x4000097dd8)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000097d20 sp=0x4000097cd0 pc=0x7b5cfff40c
testing.runTests(0x400000e3c0, 0x7b5d2c13c0, 0x1a, 0x1a, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1245 +0x24c fp=0x4000097e00 sp=0x4000097d20 pc=0x7b5d000974
testing.(*M).Run(0x40000a8680, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1162 +0x144 fp=0x4000097f00 sp=0x4000097e00 pc=0x7b5cfffc2c
main.main()
	_testmain.go:94 +0x144 fp=0x4000097f70 sp=0x4000097f00 pc=0x7b5d098c1c
runtime.main()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:203 +0x21c fp=0x4000097fd0 sp=0x4000097f70 pc=0x7b5cf579e4
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000097fd0 sp=0x4000097fd0 pc=0x7b5cf8408c

goroutine 2 [force gc (idle)]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d8460, 0x1411, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000036fa0 sp=0x4000036f80 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.forcegchelper()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:253 +0xb0 fp=0x4000036fd0 sp=0x4000036fa0 pc=0x7b5cf57c78
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000036fd0 sp=0x4000036fd0 pc=0x7b5cf8408c
created by runtime.init.5
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:242 +0x28

goroutine 3 [GC sweep wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d8600, 0x140c, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x40000377a0 sp=0x4000037780 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.bgsweep(0x400001a1c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcsweep.go:89 +0x170 fp=0x40000377d0 sp=0x40000377a0 pc=0x7b5cf45cf8
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000377d0 sp=0x40000377d0 pc=0x7b5cf8408c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:214 +0x4c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d85c0, 0x140d, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000034740 sp=0x4000034720 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.bgscavenge(0x400001a1c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcscavenge.go:274 +0x35c fp=0x40000347d0 sp=0x4000034740 pc=0x7b5cf449c4
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000347d0 sp=0x40000347d0 pc=0x7b5cf8408c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:215 +0x6c

goroutine 5 [finalizer wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2f5128, 0x4000011410, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000036730 sp=0x4000036710 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.runfinq()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:175 +0xac fp=0x40000367d0 sp=0x4000036730 pc=0x7b5cf3c204
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000367d0 sp=0x40000367d0 pc=0x7b5cf8408c
created by runtime.createfing
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:156 +0x64

goroutine 10870 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x4000022478, 0x7b5d0d170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000038d60 sp=0x4000038d40 pc=0x7b5cf57dc0
runtime.chanrecv(0x4000022420, 0x0, 0x701, 0x40000fe668)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000038df0 sp=0x4000038d60 pc=0x7b5cf2be78
runtime.chanrecv1(0x4000022420, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000038e20 sp=0x4000038df0 pc=0x7b5cf2bbd8
testing.(*T).Parallel(0x40000c7b00)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:849 +0x16c fp=0x4000038eb0 sp=0x4000038e20 pc=0x7b5cfff194
runtime/pprof.TestEmptyCallStack(0x40000c7b00)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:1009 +0x9c fp=0x4000038f70 sp=0x4000038eb0 pc=0x7b5d08e564
testing.tRunner(0x40000c7b00, 0x7b5d18d498)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000038fc0 sp=0x4000038f70 pc=0x7b5cfff40c
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000038fc0 sp=0x4000038fc0 pc=0x7b5cf8408c
created by testing.(*T).Run
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1005 +0x29c

goroutine 8 [GC worker (idle)]:
runtime.gopark(0x7b5d18d190, 0x400001c890, 0x1418, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000038750 sp=0x4000038730 pc=0x7b5cf57dc0
runtime.gcBgMarkWorker(0x4000028000)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1874 +0xe0 fp=0x40000387d0 sp=0x4000038750 pc=0x7b5cf3f948
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000387d0 sp=0x40000387d0 pc=0x7b5cf8408c
created by runtime.gcBgMarkStartWorkers
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1822 +0x70

goroutine 10885 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x40000222f8, 0x170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000048dc0 sp=0x4000048da0 pc=0x7b5cf57dc0
runtime.chanrecv(0x40000222a0, 0x0, 0x4000001f01, 0x400001b328)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000048e50 sp=0x4000048dc0 pc=0x7b5cf2be78
runtime.chanrecv1(0x40000222a0, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000048e80 sp=0x4000048e50 pc=0x7b5cf2bbd8
runtime/pprof.StopCPUProfile()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:795 +0xa0 fp=0x4000048ec0 sp=0x4000048e80 pc=0x7b5d0839d8
runtime/pprof.TestAtomicLoadStore64(0x4007d7d560)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:1102 +0x1e4 fp=0x4000048f70 sp=0x4000048ec0 pc=0x7b5d08ed0c
testing.tRunner(0x4007d7d560, 0x7b5d18d3f0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000048fc0 sp=0x4000048f70 pc=0x7b5cfff40c
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000048fc0 sp=0x4000048fc0 pc=0x7b5cf8408c
created by testing.(*T).Run
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1005 +0x29c

goroutine 10754 [chan send]:
runtime.gopark(0x7b5d18d120, 0x4000022718, 0x160f, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x40075f9ef0 sp=0x40075f9ed0 pc=0x7b5cf57dc0
runtime.chansend(0x40000226c0, 0x7b5d0dcd9c, 0x1, 0x7b5d093dc8, 0x7b5d18d1e8)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:252 +0x1bc fp=0x40075f9f70 sp=0x40075f9ef0 pc=0x7b5cf2b374
runtime.chansend1(0x40000226c0, 0x7b5d0dcd9c)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:142 +0x28 fp=0x40075f9fb0 sp=0x40075f9f70 pc=0x7b5cf2b1b0
runtime/pprof.TestMorestack.func1.1(0x40000226c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:549 +0x30 fp=0x40075f9fd0 sp=0x40075f9fb0 pc=0x7b5d093dc8
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40075f9fd0 sp=0x40075f9fd0 pc=0x7b5cf8408c
created by runtime/pprof.TestMorestack.func1
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:547 +0x6c
FAIL	runtime/pprof	6.337s

Note that the android/arm and android/arm64 builders have been offline for about a week.

closed time in 3 months

eliasnaur

issue openedgolang/go

runtime/pprof:

From https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=54cf7760203c2b138d9ecf653cd3b2402444cf9b&st=0xc0037da160

panic: runtime error: slice bounds out of range [6:5]

goroutine 51 [running]:
runtime/pprof.(*profileBuilder).appendLocsForStack(0x40000a5ce0, 0x400001cca0, 0x0, 0x4, 0x4000286050, 0x5, 0x3f6, 0x0, 0x1, 0x4)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:397 +0x5ac
runtime/pprof.(*profileBuilder).build(0x40000a5ce0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:362 +0xf4
runtime/pprof.profileWriter(0x771c67e380, 0x400034a4e0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:779 +0xd0
created by runtime/pprof.StartCPUProfile
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:750 +0x114

With GOTRACEBACK=crash:

https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=62581ee982bef250a1b53af2e3591f1193fe27ee&st=0xc005d9b600

panic: runtime error: slice bounds out of range [6:5]

goroutine 10886 [running]:
panic(0x7b5d176580, 0x4007b41f40)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/panic.go:1054 +0x3ec fp=0x4000049cd0 sp=0x4000049c20 pc=0x7b5cf554a4
runtime.goPanicSliceB(0x6, 0x5)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/panic.go:116 +0x88 fp=0x4000049d20 sp=0x4000049cd0 pc=0x7b5cf53790
runtime/pprof.(*profileBuilder).appendLocsForStack(0x4008312c60, 0x4007b41f20, 0x0, 0x4, 0x4008330050, 0x5, 0x3f6, 0x0, 0x4, 0x4)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:397 +0x5ac fp=0x4000049df0 sp=0x4000049d20 pc=0x7b5d086594
runtime/pprof.(*profileBuilder).build(0x4008312c60)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:362 +0xf4 fp=0x4000049f40 sp=0x4000049df0 pc=0x7b5d085c5c
runtime/pprof.profileWriter(0x7b5d192020, 0x40000fe858)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:779 +0xd0 fp=0x4000049fc0 sp=0x4000049f40 pc=0x7b5d083888
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000049fc0 sp=0x4000049fc0 pc=0x7b5cf8408c
created by runtime/pprof.StartCPUProfile
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:750 +0x114

goroutine 1 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x4000023b58, 0x170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000097b10 sp=0x4000097af0 pc=0x7b5cf57dc0
runtime.chanrecv(0x4000023b00, 0x4000097c28, 0x4000000101, 0x7b5cfff724)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000097ba0 sp=0x4000097b10 pc=0x7b5cf2be78
runtime.chanrecv1(0x4000023b00, 0x4000097c28)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000097bd0 sp=0x4000097ba0 pc=0x7b5cf2bbd8
testing.(*T).Run(0x4007d7d560, 0x7b5d09dbdf, 0x15, 0x7b5d18d3f0, 0x5dcc7101)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1006 +0x2b8 fp=0x4000097c80 sp=0x4000097bd0 pc=0x7b5cfff740
testing.runTests.func1(0x40000c6000)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1247 +0x6c fp=0x4000097cd0 sp=0x4000097c80 pc=0x7b5d002d54
testing.tRunner(0x40000c6000, 0x4000097dd8)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000097d20 sp=0x4000097cd0 pc=0x7b5cfff40c
testing.runTests(0x400000e3c0, 0x7b5d2c13c0, 0x1a, 0x1a, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1245 +0x24c fp=0x4000097e00 sp=0x4000097d20 pc=0x7b5d000974
testing.(*M).Run(0x40000a8680, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1162 +0x144 fp=0x4000097f00 sp=0x4000097e00 pc=0x7b5cfffc2c
main.main()
	_testmain.go:94 +0x144 fp=0x4000097f70 sp=0x4000097f00 pc=0x7b5d098c1c
runtime.main()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:203 +0x21c fp=0x4000097fd0 sp=0x4000097f70 pc=0x7b5cf579e4
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000097fd0 sp=0x4000097fd0 pc=0x7b5cf8408c

goroutine 2 [force gc (idle)]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d8460, 0x1411, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000036fa0 sp=0x4000036f80 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.forcegchelper()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:253 +0xb0 fp=0x4000036fd0 sp=0x4000036fa0 pc=0x7b5cf57c78
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000036fd0 sp=0x4000036fd0 pc=0x7b5cf8408c
created by runtime.init.5
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:242 +0x28

goroutine 3 [GC sweep wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d8600, 0x140c, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x40000377a0 sp=0x4000037780 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.bgsweep(0x400001a1c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcsweep.go:89 +0x170 fp=0x40000377d0 sp=0x40000377a0 pc=0x7b5cf45cf8
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000377d0 sp=0x40000377d0 pc=0x7b5cf8408c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:214 +0x4c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2d85c0, 0x140d, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000034740 sp=0x4000034720 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.bgscavenge(0x400001a1c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgcscavenge.go:274 +0x35c fp=0x40000347d0 sp=0x4000034740 pc=0x7b5cf449c4
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000347d0 sp=0x40000347d0 pc=0x7b5cf8408c
created by runtime.gcenable
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:215 +0x6c

goroutine 5 [finalizer wait]:
runtime.gopark(0x7b5d18d2f8, 0x7b5d2f5128, 0x4000011410, 0x1)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000036730 sp=0x4000036710 pc=0x7b5cf57dc0
runtime.goparkunlock(...)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:310
runtime.runfinq()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:175 +0xac fp=0x40000367d0 sp=0x4000036730 pc=0x7b5cf3c204
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000367d0 sp=0x40000367d0 pc=0x7b5cf8408c
created by runtime.createfing
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mfinal.go:156 +0x64

goroutine 10870 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x4000022478, 0x7b5d0d170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000038d60 sp=0x4000038d40 pc=0x7b5cf57dc0
runtime.chanrecv(0x4000022420, 0x0, 0x701, 0x40000fe668)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000038df0 sp=0x4000038d60 pc=0x7b5cf2be78
runtime.chanrecv1(0x4000022420, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000038e20 sp=0x4000038df0 pc=0x7b5cf2bbd8
testing.(*T).Parallel(0x40000c7b00)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:849 +0x16c fp=0x4000038eb0 sp=0x4000038e20 pc=0x7b5cfff194
runtime/pprof.TestEmptyCallStack(0x40000c7b00)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:1009 +0x9c fp=0x4000038f70 sp=0x4000038eb0 pc=0x7b5d08e564
testing.tRunner(0x40000c7b00, 0x7b5d18d498)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000038fc0 sp=0x4000038f70 pc=0x7b5cfff40c
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000038fc0 sp=0x4000038fc0 pc=0x7b5cf8408c
created by testing.(*T).Run
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1005 +0x29c

goroutine 8 [GC worker (idle)]:
runtime.gopark(0x7b5d18d190, 0x400001c890, 0x1418, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000038750 sp=0x4000038730 pc=0x7b5cf57dc0
runtime.gcBgMarkWorker(0x4000028000)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1874 +0xe0 fp=0x40000387d0 sp=0x4000038750 pc=0x7b5cf3f948
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40000387d0 sp=0x40000387d0 pc=0x7b5cf8408c
created by runtime.gcBgMarkStartWorkers
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/mgc.go:1822 +0x70

goroutine 10885 [chan receive]:
runtime.gopark(0x7b5d18d120, 0x40000222f8, 0x170e, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x4000048dc0 sp=0x4000048da0 pc=0x7b5cf57dc0
runtime.chanrecv(0x40000222a0, 0x0, 0x4000001f01, 0x400001b328)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:563 +0x290 fp=0x4000048e50 sp=0x4000048dc0 pc=0x7b5cf2be78
runtime.chanrecv1(0x40000222a0, 0x0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:433 +0x20 fp=0x4000048e80 sp=0x4000048e50 pc=0x7b5cf2bbd8
runtime/pprof.StopCPUProfile()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:795 +0xa0 fp=0x4000048ec0 sp=0x4000048e80 pc=0x7b5d0839d8
runtime/pprof.TestAtomicLoadStore64(0x4007d7d560)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:1102 +0x1e4 fp=0x4000048f70 sp=0x4000048ec0 pc=0x7b5d08ed0c
testing.tRunner(0x4007d7d560, 0x7b5d18d3f0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:954 +0xc4 fp=0x4000048fc0 sp=0x4000048f70 pc=0x7b5cfff40c
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4000048fc0 sp=0x4000048fc0 pc=0x7b5cf8408c
created by testing.(*T).Run
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/testing/testing.go:1005 +0x29c

goroutine 10754 [chan send]:
runtime.gopark(0x7b5d18d120, 0x4000022718, 0x160f, 0x2)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/proc.go:304 +0xc8 fp=0x40075f9ef0 sp=0x40075f9ed0 pc=0x7b5cf57dc0
runtime.chansend(0x40000226c0, 0x7b5d0dcd9c, 0x1, 0x7b5d093dc8, 0x7b5d18d1e8)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:252 +0x1bc fp=0x40075f9f70 sp=0x40075f9ef0 pc=0x7b5cf2b374
runtime.chansend1(0x40000226c0, 0x7b5d0dcd9c)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/chan.go:142 +0x28 fp=0x40075f9fb0 sp=0x40075f9f70 pc=0x7b5cf2b1b0
runtime/pprof.TestMorestack.func1.1(0x40000226c0)
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:549 +0x30 fp=0x40075f9fd0 sp=0x40075f9fb0 pc=0x7b5d093dc8
runtime.goexit()
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x40075f9fd0 sp=0x40075f9fd0 pc=0x7b5cf8408c
created by runtime/pprof.TestMorestack.func1
	/data/data/com.termux/files/home/tmpdir/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof_test.go:547 +0x6c
FAIL	runtime/pprof	6.337s

Note that the android/arm and android/arm64 builders have been offline for about a week.

created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

For some reason I'm now failing to reproduce the hangs :( Another crash appeared, but it seemed unrelated:

https://farmer.golang.org/temporarylogs?name=android-arm64-corellium&rev=54cf7760203c2b138d9ecf653cd3b2402444cf9b&st=0xc0037da160

panic: runtime error: slice bounds out of range [6:5]

goroutine 51 [running]:
runtime/pprof.(*profileBuilder).appendLocsForStack(0x40000a5ce0, 0x400001cca0, 0x0, 0x4, 0x4000286050, 0x5, 0x3f6, 0x0, 0x1, 0x4)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:397 +0x5ac
runtime/pprof.(*profileBuilder).build(0x40000a5ce0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/proto.go:362 +0xf4
runtime/pprof.profileWriter(0x771c67e380, 0x400034a4e0)
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:779 +0xd0
created by runtime/pprof.StartCPUProfile
	/data/data/com.termux/files/usr/tmp/workdir-host-android-arm64-corellium-android/go/src/runtime/pprof/pprof.go:750 +0x114

I'll file a separate issue.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

There are currently two slightly different builders because I'm reconstructing them to be built from a setup script. You may disregard android/arm for now, it doesn't work on the new builder types yet, and is a cross compile from arm64. The android/arm64 builds are a native build.

The old builder uses a prebuilt toolchain I made (go-android-arm64-bootstrap). The new builder uses Go from the golang package in Termux.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Thank you. Setting GODEBUG=asyncpreemptoff=1 seems to get rid of the hangs.

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

FWIW, darwin/arm64 can also hang. I killed this one with SIGQUIT:

https://build.golang.org/log/294e3f1975bd1cd17bd05e8cf4c0f4ec83dd3a00

eliasnaur

comment created time in 3 months

issue commentgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

Note the android/arm* builders have been timing out for a week:

https://build.golang.org/?page=4

eliasnaur

comment created time in 3 months

issue openedgolang/go

runtime: android/arm and android/arm64 builders hang in bootstrap

The android arm builders have hung in the bootstrap. I used to think it was caused by a flaky network, because of https://github.com/golang/go/issues/35553. Example:

https://farmer.golang.org/temporarylogs?name=android-arm-corellium&rev=99957b6930c76b683dbca1ff4bcdd56e59b1e035&st=0xc009856f20

Killing the build with SIGQUIT gives various stack traces:

https://build.golang.org/log/e41631f86f761d215a8a9282ab67af9dbd6397d5 https://build.golang.org/log/f878ba2305112c955d167419607afb76f8ffa78f

I bisected the arm64 hangs to start at https://golang.org/cl/203461, which is the enablement of arm64 preemption.

CC @cherrymui.

created time in 3 months

issue openedgolang/go

cmd/dist: timeout hanging bootstrap

Because of a runtime bug, Android builders hang in the bootstrap process:

https://farmer.golang.org/temporarylogs?name=android-arm-corellium&rev=99957b6930c76b683dbca1ff4bcdd56e59b1e035&st=0xc009856f20

This issue is about implementing some sort of timeout in cmd/dist to ensure forward progress even in the face of hangs. For quite some time I though the hangs were caused by a flaky Corellium network.

created time in 3 months

issue commentgolang/go

cmd/go: go binary not specifying min macOS SDK version (needs 10.9)

If the Go linker detects a load command in an external .o file, it will use that. We can't just pass -mmacosx-version-min to CC, because the load commands for macOS, iOS etc. are mutually exclusive.

In internal linking mode, the Go linker sets a default LC_VERSION_MIN_MACOSX version. The version was bumped to 10.9 in https://go-review.googlesource.com/c/go/+/175918/.

Perhaps it's enough to update/fix the toolchain used to build Go release. However, we could also expand the linker check above ("machoPlatform == 0") to trigger when the version and sdk are less than 10.9 in external linking mode. If you do that, please keep my https://go-review.googlesource.com/c/go/+/206337 in mind to only use the macOS load command for macOS binaries.

andybons

comment created time in 3 months

issue commentgolang/go

x/mobile: support multiple independent bindings in the same app

One fundamental restriction to multiple independent Go runtimes on Android: there is only one TLS_SLOT_APP (on Android 10+). See https://golang.org/cl/170117/ and https://golang.org/issue/29674.

Have you seen -buildmode=shared and -linkshared? Buildmode=shared builds your non-main packages as Go libraries that you can link together with a main package with -linkshared. Note that buildmode=shared is not the same as buildmode=c-shared.

As far as I know,-buildmode=shared works fine on Linux, so making it run on Android should be possible. However, I haven't heard about anyone attempting it, so you're probably in for some work on the Go toolchain. In particular, the TLS issue I mentioned above likely affects -buildmode=shared.

Another approach that could work is -buildmode=plugin, which is about loading Go code at runtime. I know even less about that.

yancheng199287

comment created time in 4 months

issue commentgolang/go

x/mobile: build failing when using go modules

As gobind should work with Go modules, now I'm working on gomobile bind.

gobind generates files at a temporary directory like [temp-dir]/src/gobind. The temp-dir is given by gomobile. To access this temporary package from Go modules, I think we need to do these items:

* Replace `go/build` with `go/packages` as usual.

* Create another temporary directory to emulate a Go proxy. This needs to zip the files and add `go.mod` files. See also [`packagestest` implementation](https://github.com/golang/tools/blob/master/go/packages/packagestest/modules.go#L54-L130).

Emulating a Go proxy with zip files, nice.

* Give a temporary and unique module name like `example.com/[random-token]` to the temporary module.

* Overwrite `GOPROXY` like `$(go env GOPROXY),file:///[new-temporary-directory]`

It probably doesn't matter given the random token, but perhaps swap the order so the temporary directory is first, to match the intention of gomobile bind?

* Use the temporary module name at `gomobile` when `go build`ing.

All are done in gomobile and gobind should not be modified from its current behavior.

@hyangah, @eliasnaur Any thoughts?

Sounds like a good plan to me.

mirza-s

comment created time in 4 months

issue commentgolang/go

runtime: async preemption breaks darwin/arm and darwin/arm64

Very nice, thank you! Let's just submit this and see what happens. Corellium does not support arm32, so gomoting is diffcult.

cherrymui

comment created time in 4 months

push eventeliasnaur/gophercon-uk-2019-talk

Elias Naur

commit sha 5cc6057315b1b7ea7e1062d5ddaccf677f188a7e

update gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 4 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha b9eb248390547d4e9e33ced9db78377884c887ff

updated gio version Signed-off-by: Elias Naur <mail@eliasnaur.com>

view details

push time in 4 months

issue commentgolang/go

runtime: async preemption breaks darwin/arm and darwin/arm64

The corellium builders are up again, so when they're through the backlog you should be able to gomote in. I've started another iOS device to speed things up.

cherrymui

comment created time in 4 months

issue commentgolang/go

runtime: async preemption breaks darwin/arm and darwin/arm64

Unfortunately, the Corellium builders have networks problem at the moment. If you have any debugging CLs you'd like me to test, please let me know. I can run the ios tests locally.

cherrymui

comment created time in 4 months

push eventeliasnaur/gophercon-uk-2019-talk

Elias Naur

commit sha 801426acb681d4731352bfd0449ad83ad29a96cd

update gio version

view details

push time in 4 months

push eventeliasnaur/gophercon-2019-talk

Elias Naur

commit sha a0b590aa9823e56f2a480e6ddeb540e3f65a879c

update gio version

view details

push time in 4 months

issue commentgolang/go

x/mobile: gomobile build fails for iOS targets

Thank you, I had forgotten about the simulators. Let me know whether golang.org/cl/205340 works, which fixes the problem for:

$ gomobile build -target ios -bundleid <...> golang.org/x/mobile/example/flappy
dlo

comment created time in 4 months

issue commentgolang/go

x/mobile: gomobile build fails for iOS targets

Both patches are in go tip, where headerpad is guarded by

      if !ctxt.Arch.InFamily(sys.ARM, sys.ARM64) {
          // -headerpad is incompatible with -fembed-bitcode.
          argv = append(argv, "-Wl,-headerpad,1144")
      }

so -headerpad shouldn't be emitted on darwin/arm nor darwin/arm64. Can you try again with Go tip?

dlo

comment created time in 4 months

issue commentgolang/go

runtime: TestDebugCallGC failure on android-amd64-emu

Seems like something @aclements would know about. I don't, unfortunately.

FiloSottile

comment created time in 4 months

issue commentgolang/go

x/mobile: gomobile build fails for iOS targets

@andydotxyz could you be persuaded to check out Cherry's https://golang.org/cl/205060? It should fix the darwin/arm build as well.

dlo

comment created time in 4 months

issue openedgobwas/ws

unsafe pointer conversion at util.go:233

Running a program with the Go 1.14 pointer checks enabled through -race leads to the detection of an invalid pointer conversion:

$ go test -race gioui.org/cmd/gogio
--- FAIL: TestJS (5.43s)
panic: runtime error: unsafe pointer conversion [recovered]
    panic: runtime error: unsafe pointer conversiongoroutine 35 [running]:
testing.tRunner.func1(0xc00017e200)
    /Users/elias/go-tip/src/testing/testing.go:888 +0xaeb
panic(0x1a11860, 0xc0001bc040)
    /Users/elias/go-tip/src/runtime/panic.go:915 +0x370
github.com/gobwas/ws.btsEqualFold(0xc0001fc034, 0x9, 0xfcc, 0x2058b08, 0x9, 0x9, 0xc0001fc034)
    /Users/elias/go/pkg/mod/github.com/gobwas/ws@v1.0.2/util.go:233 +0x184
github.com/gobwas/ws.Dialer.Upgrade(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /Users/elias/go/pkg/mod/github.com/gobwas/ws@v1.0.2/dialer.go:374 +0xe72
github.com/gobwas/ws.Dialer.Dial(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /Users/elias/go/pkg/mod/github.com/gobwas/ws@v1.0.2/dialer.go:190 +0x444
github.com/gobwas/ws.Dial(...)
    /Users/elias/go/pkg/mod/github.com/gobwas/ws@v1.0.2/dialer.go:47
github.com/chromedp/chromedp.DialContext(0x1b85740, 0xc0000903c0, 0xc00003eaf0, 0x4a, 0xc000105750, 0x1, 0x1, 0x18fb783, 0xc0000102d0, 0x0)
    /Users/elias/go/pkg/mod/github.com/chromedp/chromedp@v0.5.1/conn.go:59 +0xff
github.com/chromedp/chromedp.NewBrowser(0x1b85780, 0xc000033ce0, 0xc00003eaf0, 0x4a, 0xc000010040, 0x1, 0x1, 0x0, 0x0, 0x0)
    /Users/elias/go/pkg/mod/github.com/chromedp/chromedp@v0.5.1/browser.go:99 +0x3bb
github.com/chromedp/chromedp.(*ExecAllocator).Allocate(0xc0001dc000, 0x1b85780, 0xc000033ce0, 0xc000010040, 0x1, 0x1, 0x0, 0x0, 0x0)
    /Users/elias/go/pkg/mod/github.com/chromedp/chromedp@v0.5.1/allocate.go:220 +0xfec
github.com/chromedp/chromedp.Run(0x1b85780, 0xc000033ce0, 0x0, 0x0, 0x0, 0xc00000e300, 0x2)
    /Users/elias/go/pkg/mod/github.com/chromedp/chromedp@v0.5.1/chromedp.go:210 +0x311
gioui.org/cmd/gogio_test.(*JSTestDriver).Start(0xc00000e060, 0xc00017e200, 0x1a643b5, 0xf, 0x320, 0x258, 0x2d00008, 0x0, 0xc00000e060)
    /Users/elias/proj/gio/cmd/gogio/js_test.go:81 +0x928
gioui.org/cmd/gogio_test.runEndToEndTest(0xc00017e200, 0x1b836c0, 0xc00000e060)
    /Users/elias/proj/gio/cmd/gogio/e2e_test.go:42 +0xa8
gioui.org/cmd/gogio_test.TestJS(0xc00017e200)
    /Users/elias/proj/gio/cmd/gogio/js_test.go:155 +0xad
testing.tRunner(0xc00017e200, 0x1a87048)
    /Users/elias/go-tip/src/testing/testing.go:925 +0x1a9
created by testing.(*T).Run
    /Users/elias/go-tip/src/testing/testing.go:976 +0x652
FAIL    gioui.org/cmd/gogio    5.458s
FAIL

created time in 4 months

issue openedgolang/go

runtime: support GOFLAGS=-race everywhere

I'd like to set GOFLAGS=-race on a CI builder. However, some tests invoke the go tool to build for GOOS=js where -race is not supported, leading to this error:

$ GOFLAGS=-race GOOS=js GOARCH=wasm go build std
go build: -race is only supported on linux/amd64, linux/ppc64le, linux/arm64, freebsd/amd64, netbsd/amd64, darwin/amd64 and windows/amd64

I believe unsupported flags should be ignored (unlike unknown flags).

created time in 4 months

issue openedswaywm/wlroots

SIGSEGV in xdg_surface_handle_destroy at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:281

  • Sway Version:

    $ sway -v sway version 1.2-rc1-66-g533acbe6 (Oct 16 2019, branch 'master')

  • Debug Log:

https://paste.sr.ht/%7Eeliasnaur/4206eb363cc600cd03ac9c3000913a961c34560d

  • Configuration File:

https://paste.sr.ht/%7Eeliasnaur/ab8e1fa43e55522724710ff7c54f1bd134cb40d7

Finally, explain the steps you took in plain English to reproduce the problem below.

First, create and run a Gio command. Using Go 1.13,

$ cd $(mktemp -d)
$ go mod init example.com
$ cat > crash.go
package main

import (
	"fmt"
	"log"

	"gioui.org/app"
	"gioui.org/io/system"
	"gioui.org/op"
)

func main() {
	go func() {
		w := app.NewWindow()
		if err := loop(w); err != nil {
			log.Fatal(err)
		}
	}()
	app.Main()
}

func loop(w *app.Window) error {
	first := true
	ops := new(op.Ops)
	for {
		e := <-w.Events()
		switch e := e.(type) {
		case system.DestroyEvent:
			return e.Err
		case system.FrameEvent:
			ops.Reset()
			e.Frame(ops)
			if first {
				w.Invalidate()
				fmt.Println("invalidated")
			}
		}
	}
}
$ go run .

Then, use shift-super-q to quit the Gio program.

You may have to do it several times to trigger the crash.

  • Stack Trace, if sway crashes:
#0  0x00007f2c4beca3e5 in xdg_surface_handle_destroy (client=0xfe8080, resource=0xfeceb0) at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:281
swaywm/sway#1  0x00007f2c4b183b28 in ffi_call_unix64 () at /lib64/libffi.so.6
swaywm/sway#2  0x00007f2c4b183339 in ffi_call () at /lib64/libffi.so.6
swaywm/sway#3  0x00007f2c4b87c1b7 in  () at /lib64/libwayland-server.so.0
swaywm/sway#4  0x00007f2c4b878d32 in  () at /lib64/libwayland-server.so.0
swaywm/sway#5  0x00007f2c4b87a36a in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0
swaywm/sway#6  0x00007f2c4b878f25 in wl_display_run () at /lib64/libwayland-server.so.0
swaywm/sway#7  0x000000000041af70 in server_run (server=0x482000 <server>) at ../sway/server.c:205
swaywm/sway#8  0x000000000041a62d in main (argc=1, argv=0x7ffc7e1516f8) at ../sway/main.c:402

created time in 4 months

issue commentgolang/go

x/mobile: Remove gomobile dependency on gobind binary

code maintenance

I assume this proposal is about merging the binaries, not the code. The bind code stays in a separate package.

anjmao

comment created time in 4 months

issue openedgolang/go

runtime: fatal error: self deadlock (webassembly)

What version of Go are you using (go version)?

<pre> $ go version go version devel +5d000a8b62 Sat Oct 26 08:29:23 2019 +0000 linux/amd64 </pre>

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/elias/.cache/go-build" GOENV="/home/elias/.config/go/env" GOEXE="" GOFLAGS="-mod=readonly" GOHOSTARCH="amd64" GOHOSTOS="linux" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/elias/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/elias/dev/go-tip" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/elias/dev/go-tip/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/var/home/elias/scratch/wasm-deadlock/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build150620092=/tmp/go-build -gno-record-gcc-switches" GOROOT/bin/go version: go version devel +5d000a8b62 Sat Oct 26 08:29:23 2019 +0000 linux/amd64 GOROOT/bin/go tool compile -V: compile version devel +5d000a8b62 Sat Oct 26 08:29:23 2019 +0000 uname -sr: Linux 5.3.7-200.fc30.x86_64 /lib64/libc.so.6: GNU C Library (GNU libc) stable release version 2.29. gdb --version: GNU gdb (GDB) Fedora 8.3-6.fc30 </pre></details>

What did you do?

$ cd $(mktmp -d)
$ go mod init deadlock
$ cat > deadlock.go
package main

import (
	"fmt"
	"log"

	"gioui.org/app"
	"gioui.org/io/system"
	"gioui.org/op"
)

func main() {
	go func() {
		w := app.NewWindow()
		if err := loop(w); err != nil {
			log.Fatal(err)
		}
	}()
	app.Main()
}

func loop(w *app.Window) error {
	first := true
	ops := new(op.Ops)
	for {
		e := <-w.Events()
		switch e := e.(type) {
		case system.DestroyEvent:
			return e.Err
		case system.FrameEvent:
			ops.Reset()
			e.Frame(ops)
			fmt.Println("drawing a frame")
			if first {
				w.Invalidate()
				first = false
			}
		}
	}
}
$ go run gioui.org/cmd/gogio -target js -o=out .
$ go run github.com/shurcooL/goexec 'http.ListenAndServe(`:8080`, http.FileServer(http.Dir(`out`)))'

Then, open a browser at http://localhost:8080

What did you expect to see?

No crash on the browser console.

What did you see instead?

On my browser (Firefox):

drawing a frame 2 wasm_exec.js:47:14
fatal error: self deadlock wasm_exec.js:47:14

runtime stack: wasm_exec.js:47:14
runtime: unexpected return pc for syscall.fsCall called from 0x0 wasm_exec.js:47:14
stack: frame={sp:0x1c6b10, fp:0x1c6ba8} stack=[0x1c5038,0x1c6c38) wasm_exec.js:47:14
00000000001c6a10:  00000000001c6a20  0000000011c20007 <runtime.throw+7> wasm_exec.js:47:14
00000000001c6a20:  00000000001c6a28  0000000013450000 <runtime.throw.func1+0> wasm_exec.js:47:14
00000000001c6a30:  00000000000498a9  000000000000000d wasm_exec.js:47:14
00000000001c6a40:  00000000108b000b <runtime.lock+11>  00000000000498a9 wasm_exec.js:47:14
00000000001c6a50:  000000000000000d  00000000105a0008 <runtime.chanrecv+8> wasm_exec.js:47:14
00000000001c6a60:  0000000000410058  0000000000000006 wasm_exec.js:47:14
00000000001c6a70:  0000000000410de0  0000000000400f00 wasm_exec.js:47:14
00000000001c6a80:  000000001092000c <runtime.beforeIdle+12>  0000000000000000 wasm_exec.js:47:14
00000000001c6a90:  00000000004105d8  0000000012140060 <runtime.findrunnable+96> wasm_exec.js:47:14
00000000001c6aa0:  ffffffffffffffff  0000000000000001 wasm_exec.js:47:14
00000000001c6ab0:  0000000000000001  0000000000000000 wasm_exec.js:47:14
00000000001c6ac0:  0000000000000000  0000000000410058 wasm_exec.js:47:14
00000000001c6ad0:  0000000000000000  0000000000000001 wasm_exec.js:47:14
00000000001c6ae0:  0000000010580002 <runtime.chanrecv1+2>  0000000000410000 wasm_exec.js:47:14
00000000001c6af0:  00000000001c6b88  0000000000000001 wasm_exec.js:47:14
00000000001c6b00:  00000000001d2401  000000001681000d <syscall.fsCall+13> wasm_exec.js:47:14
00000000001c6b10: <0000000000410000  00000000001c6b88 wasm_exec.js:47:14
00000000001c6b20:  0000000011f60010 <runtime.casgstatus+16>  0000000100000001 wasm_exec.js:47:14
00000000001c6b30:  0000000100000000  0000000100000001 wasm_exec.js:47:14
00000000001c6b40:  0000000000000000  00000000004105d8 wasm_exec.js:47:14
00000000001c6b50:  0000000000000006  0000000000410000 wasm_exec.js:47:14
00000000001c6b60:  0000000000400f00  00000000001a9c00 wasm_exec.js:47:14
00000000001c6b70:  0000000000000000  0000000000410000 wasm_exec.js:47:14
00000000001c6b80:  000000001218005e <runtime.schedule+94>  0000000000000000 wasm_exec.js:47:14
00000000001c6b90:  0000000000000000  0000000000000000 wasm_exec.js:47:14
00000000001c6ba0: !0000000000000000 >0000000010940000 <runtime.handleAsyncEvent+0> wasm_exec.js:47:14
00000000001c6bb0:  0000000000192b60  0000000012ff0004 <runtime.isSystemGoroutine+4> wasm_exec.js:47:14
00000000001c6bc0:  0000000010940000 <runtime.handleAsyncEvent+0>  00000000001a9c00 wasm_exec.js:47:14
00000000001c6bd0:  0000000000400f90  0000000000000006 wasm_exec.js:47:14
00000000001c6be0:  000000001221002b <runtime.goexit0+43>  0000000000410000 wasm_exec.js:47:14
00000000001c6bf0:  0000000000400f00  0000000000400a00 wasm_exec.js:47:14
00000000001c6c00:  0000000000000000  0000000000000000 wasm_exec.js:47:14
00000000001c6c10:  00000000001a9c00  00000000135f0001 <runtime.mcall+1> wasm_exec.js:47:14
00000000001c6c20:  0000000000400f00  00000000001c6c60 wasm_exec.js:47:14
00000000001c6c30:  0100000000000000 wasm_exec.js:47:14
syscall.fsCall(0x10940000, 0x192b60, 0x12ff0004, 0x10940000, 0x1a9c00, 0x400f90, 0x6, 0x1221002b) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/syscall/fs_js.go:513 +0xd wasm_exec.js:47:14
wasm_exec.js:47:14
goroutine 1 [chan receive]: wasm_exec.js:47:14
gioui.org/app/internal/window.Main(...) wasm_exec.js:47:14
	/home/elias/proj/gio/app/internal/window/os_js.go:381 wasm_exec.js:47:14
gioui.org/app.Main(...) wasm_exec.js:47:14
	/home/elias/proj/gio/app/app.go:52 wasm_exec.js:47:14
main.main() wasm_exec.js:47:14
	/var/home/elias/scratch/wasm-deadlock/deadlock.go:19 +0x6 wasm_exec.js:47:14
wasm_exec.js:47:14
goroutine 6 [waiting]: wasm_exec.js:47:14
syscall/js.Value.Call(0x7ff800000000000a, 0x48067, 0x5, 0x47e140, 0x6, 0xa, 0x5) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/syscall/js/js.go:326 +0x3 wasm_exec.js:47:14
syscall.fsCall(0x48067, 0x5, 0x439cf8, 0x5, 0x5, 0x4030000000000001, 0x430b60, 0x41f600) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/syscall/fs_js.go:496 +0xc wasm_exec.js:47:14
syscall.Write(0x1, 0x41f600, 0x10, 0x10, 0x11e20002, 0x439d80, 0x134b0000) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/syscall/fs_js.go:417 +0x11 wasm_exec.js:47:14
internal/poll.(*FD).Write(0x42c120, 0x41f600, 0x10, 0x10, 0x0, 0x0, 0x0) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/internal/poll/fd_unix.go:268 +0x22 wasm_exec.js:47:14
os.(*File).write(...) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/os/file_unix.go:276 wasm_exec.js:47:14
os.(*File).Write(0x40c020, 0x41f600, 0x10, 0x10, 0x1, 0x18960006, 0x10580001) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/os/file.go:153 +0xf wasm_exec.js:47:14
fmt.Fprintln(0x6c080, 0x40c020, 0x439ee0, 0x1, 0x1, 0x10, 0x0, 0x0) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/fmt/print.go:265 +0x8 wasm_exec.js:47:14
fmt.Println(...) wasm_exec.js:47:14
	/home/elias/dev/go-tip/src/fmt/print.go:274 wasm_exec.js:47:14
main.loop(0x450000, 0x0, 0x0) wasm_exec.js:47:14
	/var/home/elias/scratch/wasm-deadlock/deadlock.go:33 +0x18 wasm_exec.js:47:14
main.main.func1() wasm_exec.js:47:14
	/var/home/elias/scratch/wasm-deadlock/deadlock.go:15 +0x3 wasm_exec.js:47:14
created by main.main wasm_exec.js:47:14
	/var/home/elias/scratch/wasm-deadlock/deadlock.go:13 +0x2 wasm_exec.js:47:14
wasm_exec.js:47:14
goroutine 7 [select]: wasm_exec.js:47:14
gioui.org/app.(*Window).run(0x450000, 0x40a080) wasm_exec.js:47:14
	/home/elias/proj/gio/app/window.go:230 +0x8 wasm_exec.js:47:14
created by gioui.org/app.NewWindow wasm_exec.js:47:14
	/home/elias/proj/gio/app/window.go:99 +0x12 wasm_exec.js:47:14
wasm_exec.js:47:14
goroutine 8 [select (no cases)]: wasm_exec.js:47:14
gioui.org/app/internal/window.NewWindow.func2(0x448090) wasm_exec.js:47:14
	/home/elias/proj/gio/app/internal/window/os_js.go:59 +0x10 wasm_exec.js:47:14
created by gioui.org/app/internal/window.NewWindow wasm_exec.js:47:14
	/home/elias/proj/gio/app/internal/window/os_js.go:54 +0x14 wasm_exec.js:47:14
wasm_exec.js:47:14
goroutine 9 [chan send]: wasm_exec.js:47:14
gioui.org/app/internal/gpu.(*GPU).renderLoop.func1(0x460000, 0x6dda0, 0x40a0e0, 0x42e540) wasm_exec.js:47:14
	/home/elias/proj/gio/app/internal/gpu/gpu.go:350 +0xad wasm_exec.js:47:14
created by gioui.org/app/internal/gpu.(*GPU).renderLoop wasm_exec.js:47:14
	/home/elias/proj/gio/app/internal/gpu/gpu.go:259 +0x3

created time in 4 months

issue openedswaywm/sway

SIGSEGV in xdg_surface_handle_destroy at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:281

  • Sway Version:

    $ sway -v sway version 1.2-rc1-66-g533acbe6 (Oct 16 2019, branch 'master')

  • Debug Log:

https://paste.sr.ht/%7Eeliasnaur/4206eb363cc600cd03ac9c3000913a961c34560d

  • Configuration File:

https://paste.sr.ht/%7Eeliasnaur/ab8e1fa43e55522724710ff7c54f1bd134cb40d7

Finally, explain the steps you took in plain English to reproduce the problem below.

First, create and run a Gio command. Using Go 1.13,

$ cd $(mktemp -d)
$ go mod init example.com
$ cat > crash.go
package main

import (
	"fmt"
	"log"

	"gioui.org/app"
	"gioui.org/io/system"
	"gioui.org/op"
)

func main() {
	go func() {
		w := app.NewWindow()
		if err := loop(w); err != nil {
			log.Fatal(err)
		}
	}()
	app.Main()
}

func loop(w *app.Window) error {
	first := true
	ops := new(op.Ops)
	for {
		e := <-w.Events()
		switch e := e.(type) {
		case system.DestroyEvent:
			return e.Err
		case system.FrameEvent:
			ops.Reset()
			e.Frame(ops)
			if first {
				w.Invalidate()
				fmt.Println("invalidated")
			}
		}
	}
}
$ go run .

Then, use shift-super-q to quit the Gio program.

You may have to do it several times to trigger the crash.

  • Stack Trace, if sway crashes:

#0 0x00007f2c4beca3e5 in xdg_surface_handle_destroy (client=0xfe8080, resource=0xfeceb0) at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:281 #1 0x00007f2c4b183b28 in ffi_call_unix64 () at /lib64/libffi.so.6 #2 0x00007f2c4b183339 in ffi_call () at /lib64/libffi.so.6 #3 0x00007f2c4b87c1b7 in () at /lib64/libwayland-server.so.0 #4 0x00007f2c4b878d32 in () at /lib64/libwayland-server.so.0 #5 0x00007f2c4b87a36a in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0 #6 0x00007f2c4b878f25 in wl_display_run () at /lib64/libwayland-server.so.0 #7 0x000000000041af70 in server_run (server=0x482000 <server>) at ../sway/server.c:205 #8 0x000000000041a62d in main (argc=1, argv=0x7ffc7e1516f8) at ../sway/main.c:402

created time in 4 months

issue commentgolang/go

x/mobile: Remove gomobile dependency on gobind binary

SGTM.

anjmao

comment created time in 4 months

issue openedgolang/go

cmd/link: avoid bitcode incompatible flag -W,no_pie on darwin/arm

CL 201358 removes most of the flags incompatible with -fembed-bitcode on iOS. However, -W,no_pie is left for darwin/arm because without it, linking fails:

ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in _runtime.rodata from /var/folders/qq/qxn86k813bn9fjxydm095rxw0000gp/T/workdir-host-darwin-amd64-zenly-ios/tmp/go-link-225285265/go.o. To fix this warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie

This error surprised @cherrymui who

thought we have removed absolute addressing on darwin/arm. Maybe we only did this for normal symbols but we missed runtime.rodata (which is linker generated)? I could take a look. (but probably not so soon...)

@thanm also expressed interest in digging into this:

The "runtime.rodata" thing seems odd -- runtime.rodata is a linker generated symbol, but looking at the linker code it appears to just be a pseudo-symbol that incorporates all of the rodata for the program. I ran a couple of regular builds on Darwin/amd64 with -buildmode=pie and looked over the relocations in the Go object file, and I don't see anything suspicious (although I'm not sure if that says much).

(from the golang-dev thread)

The error above is a build time error so can readily be reproduced on macOS with the following change applied:

diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index d5868c9770..78f493ca9f 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1206,7 +1206,7 @@ func (ctxt *Link) hostlink() {
        switch ctxt.BuildMode {
        case BuildModeExe:
                if ctxt.HeadType == objabi.Hdarwin {
-                       if ctxt.Arch.Family != sys.ARM64 {
+                       if !ctxt.Arch.InFamily(sys.ARM, sys.ARM64) {
                                argv = append(argv, "-Wl,-no_pie")
                        }
                        if !ctxt.Arch.InFamily(sys.ARM, sys.ARM64) {

created time in 4 months

issue openedgolang/go

runtime: "signal: segmentation fault (core dumped)" on several builder

Recent failures:

linux-amd64-longtest https://build.golang.org/log/2f557c21abbd30f393d31cd3094dde6bccee48c7 https://build.golang.org/log/3d427000c9d69970f6dd0974718c8524474516fc

android-386-emu https://build.golang.org/log/94080d34708d677dc0630d9d2445c92e564b7d82 https://build.golang.org/log/890de6fd18120451c10d7fc5236efac24415a012

android-amd64-emu https://build.golang.org/log/659370b5330f0859af3148346a1fd874f130b268

linux-386-longtest https://build.golang.org/log/578fe75a475dbc108b9d5bb5009c5bc29e0c1881 https://build.golang.org/log/085bc9636684a5416676e580c6202e0ee434a745

Noticed by @bcmills in https://golang.org/cl/200337, but as noted by @thanm that change is an simple Android-only change.

created time in 4 months

more