yunabe/lgo

can't work on termux Arch Linux in Android aarch64

Closed this issue · 10 comments

In [1]: s =3
panic: Failed to import core: cannot import, possibly version skew (unknown export format version -1 ("i\x00\xfb\x0f\xd3\x1c4/home/dlin/go/src/github.com/yunabe/lgo/core/core.go\x1agithub.com/yunabe/lgo/core\x00\aContext\acontext\aDisplay\rDataDisplayer")) - reinstall package

I found log is not work on x86_64 too

I have the same bug with go 1.11 under ArchLinux (aarch64). Did lgo install --clean and reinstalled jupyter kernel with no result. Install log is fine.

Jupyter and ipython versions in case you need them:

ipykernel                5.0.0    
ipyparallel              6.2.2    
ipython                  7.0.1    
ipython-genutils         0.2.0    
ipywidgets               7.4.2
jupyter-client           5.2.3    
jupyter-core             4.4.0    
jupyterlab               0.34.12  
jupyterlab-launcher      0.13.1
notebook                 5.6.0

uname -a output:
Linux odroidc2 3.16.58-1-ARCH #1 SMP PREEMPT Mon Oct 1 19:00:07 MDT 2018 aarch64 GNU/Linux

Worked with go 1.9, but stopped after updating go to 1.11.

Full log on import "fmt" execution:

panic: Failed to import core: cannot import, possibly version skew (unknown export format version -1 ("i\x00\xfc\x0f\xd3\x1c5/home/maxim/go/src/github.com/yunabe/lgo/core/core.go\x1agithub.com/yunabe/lgo/core\x00\aContext\acontext\aDisplay\rDataDisplayer")) - reinstall package

goroutine 51 [running]:
runtime/debug.Stack(0x40000615c8, 0x7f7de88320, 0x40003a6c70)
	/usr/lib/go/src/runtime/debug/stack.go:24 +0x88
main.(*handlers).HandleExecuteRequest.func3.1()
	/home/maxim/go/src/github.com/yunabe/lgo/cmd/lgo-internal/kernel.go:176 +0x40
panic(0x7f7de88320, 0x40003a6c70)
	/usr/lib/go/src/runtime/panic.go:513 +0x18c
github.com/yunabe/lgo/converter.injectLgoContext(0x40003ac190, 0x40003ac0f0, 0x0, 0x0)
	/home/maxim/go/src/github.com/yunabe/lgo/converter/converter.go:554 +0x24c
github.com/yunabe/lgo/converter.Convert(0x400032c8d0, 0xc, 0x4000061c88, 0x40003d2180)
	/home/maxim/go/src/github.com/yunabe/lgo/converter/converter.go:805 +0x24c
github.com/yunabe/lgo/cmd/runner.(*LgoRunner).Run(0x4000213380, 0x7f7e08bae0, 0x400048c300, 0x55674c3640, 0x40003abb40, 0x400032c8d0, 0xc, 0x40003ae128, 0x4000216060)
	/home/maxim/go/src/github.com/yunabe/lgo/cmd/runner/runner.go:165 +0x3c0
main.(*handlers).HandleExecuteRequest.func3(0x4000012a00, 0x7f7e08bae0, 0x400048c300, 0x55674c3640, 0x40003abb40, 0x400000ea00, 0x4000061da0)
	/home/maxim/go/src/github.com/yunabe/lgo/cmd/lgo-internal/kernel.go:180 +0x74
main.(*handlers).HandleExecuteRequest(0x4000012a00, 0x7f7e08bae0, 0x400048c300, 0x400000ea00, 0x40003abb20, 0x40003abb40, 0x0)
	/home/maxim/go/src/github.com/yunabe/lgo/cmd/lgo-internal/kernel.go:183 +0x2b0
github.com/yunabe/lgo/jupyter/gojupyterscaffold.(*executeQueue).loop.func1(0x7f7e08bae0, 0x400048c280, 0x0, 0x0)
	/home/maxim/go/src/github.com/yunabe/lgo/jupyter/gojupyterscaffold/execute.go:101 +0x1b8
github.com/yunabe/lgo/jupyter/gojupyterscaffold.(*iopubSocket).WithOngoingContext(0x400048c080, 0x4000061f30, 0x4000486200, 0x0, 0x0)
	/home/maxim/go/src/github.com/yunabe/lgo/jupyter/gojupyterscaffold/shelsocket.go:89 +0xc0
github.com/yunabe/lgo/jupyter/gojupyterscaffold.(*executeQueue).loop(0x400048c0c0)
	/home/maxim/go/src/github.com/yunabe/lgo/jupyter/gojupyterscaffold/execute.go:94 +0x170
github.com/yunabe/lgo/jupyter/gojupyterscaffold.(*Server).Loop.func2(0x40004bc060, 0x4000010000)
	/home/maxim/go/src/github.com/yunabe/lgo/jupyter/gojupyterscaffold/gojupyterscaffold.go:192 +0x24
created by github.com/yunabe/lgo/jupyter/gojupyterscaffold.(*Server).Loop
	/home/maxim/go/src/github.com/yunabe/lgo/jupyter/gojupyterscaffold/gojupyterscaffold.go:191 +0xac

Same problem on x86_64 arch

jstaf commented

Had this on Fedora 29 (x86_64) just now:

sudo dnf install zeromq-devel
go get github.com/yunabe/lgo/cmd/lgo
go get -d github.com/yunabe/lgo/cmd/lgo-internal
mkdir -p ~/.lgo
export LGOPATH=~/.lgo
lgo install
lgo run

Installs happily, then:

>>> import "fmt"
panic: Failed to import core: cannot import, possibly version skew (unknown export format version -1 ("i\x00\xfc\x0f\xd3\x1c5/home/jstaf/go/src/github.com/yunabe/lgo/core/core.go\x1agithub.com/yunabe/lgo/core\x00\aContext\acontext\aDisplay\rDataDisplayer")) - reinstall package

goroutine 1 [running]:
runtime/debug.Stack(0xc0003c9600, 0x7f1c41ec7e40, 0xc00044a290)
	/usr/lib/golang/src/runtime/debug/stack.go:24 +0xa9
main.fromStdin.func3.1(0xc00044a0b0)
	/home/jstaf/go/src/github.com/yunabe/lgo/cmd/lgo-internal/main.go:149 +0x7d
panic(0x7f1c41ec7e40, 0xc00044a290)
	/usr/lib/golang/src/runtime/panic.go:513 +0x1c5
github.com/yunabe/lgo/converter.injectLgoContext(0xc0003b6140, 0xc0003b60a0, 0x0, 0x0)
	/home/jstaf/go/src/github.com/yunabe/lgo/converter/converter.go:554 +0x2d5
github.com/yunabe/lgo/converter.Convert(0xc00044c090, 0xc, 0xc0003c9cc0, 0xc000452120)
	/home/jstaf/go/src/github.com/yunabe/lgo/converter/converter.go:805 +0x336
github.com/yunabe/lgo/cmd/runner.(*LgoRunner).Run(0xc0002113e0, 0x7f1c420cc580, 0xc00049e0c0, 0x0, 0x0, 0xc00044c090, 0xc, 0xc0003c9db0, 0x20)
	/home/jstaf/go/src/github.com/yunabe/lgo/cmd/runner/runner.go:165 +0x527
main.fromStdin.func3(0xc00044a0b0, 0xc0002113e0, 0x7f1c420cc580, 0xc00049e0c0, 0xc00044c090, 0xc)
	/home/jstaf/go/src/github.com/yunabe/lgo/cmd/lgo-internal/main.go:152 +0x94
main.fromStdin(0x7f1c420cc580, 0xc000342740, 0xc0002113e0)
	/home/jstaf/go/src/github.com/yunabe/lgo/cmd/lgo-internal/main.go:155 +0x1ea
main.main()
	/home/jstaf/go/src/github.com/yunabe/lgo/cmd/lgo-internal/main.go:217 +0x5f0

lgo is really awesome! Thanks for sharing it.

Had no problem using it from docker. When installing it as well not issues, but inside the console I get the same errors as users above (on Ubuntu 18).

Thanks in advance for any help!

$ ./go/bin/lgo install
2019/02/25 15:08:17 Install lgo to /home/sebastiano/lgo
2019/02/25 15:08:17 Building libstd.so
2019/02/25 15:08:18 Building lgo core package
2019/02/25 15:08:20 Building third-party packages in $GOPATH
2019/02/25 15:08:20 Installing lgo-internal
2019/02/25 15:08:21 lgo was installed in /home/sebastiano/lgo successfully
 ~/ > ./go/bin/lgo run
>>> a = 2
panic: Failed to import core: cannot import, possibly version skew (unknown export format version -1 ("i\x00\x81\x10\xd3\x1c:/home/sebastiano/go/src/github.com/yunabe/lgo/core/core.go\x1agithub.com/yunabe/lgo/core\x00\aContext\acontext\aDisplay\rDataDisplayer")) - reinstall package
... 

>>> import "fmt"
panic: Failed to import core: cannot import, possibly version skew (unknown export format version -1 ("i\x00\x81\x10\xd3\x1c:/home/sebastiano/go/src/github.com/yunabe/lgo/core/core.go\x1agithub.com/yunabe/lgo/core\x00\aContext\acontext\aDisplay\rDataDisplayer")) - reinstall package
... 

Hi Sebastiano an all,

Thank you for reporting it. I think you encountered this bug with go1.11. But can I confirm your go version just in case?
I think the route cause is the change of go archive file format in go1.11 and lgo failed to read new archives because it uses vendored go/importer internally.

Thanks! My go version is go1.11.5, as you spot correctly. Is there a way to solve the issue from this repo, and without waiting a lucky update?

Thank you for the confirmation.

Is there a way to solve the issue from this repo, and without waiting a lucky update?

I pushed a change in dev branch which I hope fixes the problem. But I haven't tested it well. I will merge it to master once I confirm it really fixes this issue on go1.11.
https://github.com/yunabe/lgo/tree/dev

I manually fetched the dev branch and reinstalled. It works on Ubuntu 18, also with auto-completion!
...Although it is very slow to execute every command, was it the same with the previous go version? May be worth looking into it before merging in the branch.

Thank you for the test, Sebastiano

...Although it is very slow to execute every command

There is a known performance issue from go1.10 due to a performance regression of go install -linkshared (golang/go#24034).
This bug did not exist go1.9 and before and lgo code execution was fast with them.

Now, go1.12 was released and go1.9 is 1 year behind. We can not live with go1.9 anymore. I will ping the bug thread in golang.