go-mruby: fatal error: exitsyscall: syscall frame is no longer valid

ref https://github.com/errordeveloper/kubeplay/issues/1

I’ve not yet been able to find what’s the simplest way to reproduce this, but I am able to hit this with my project, which you can compile like this:

go get github.com/Masterminds/glide
go get -d github.com/errordeveloper/kubeplay
cd $GOPATH/src/github.com/errordeveloper/kubeplay
$GOPATH/bin/glide up
make -C vendor/github.com/mitchellh/go-mruby libmruby.a
go install ./rubykube
go build .

Create empty kubeconfig:

kind: Config
apiVersion: v1
preferences: {}
clusters:
- cluster:
    server: https://localhost:8443
  name: test
contexts:
- context:
    cluster: test
    user: test
  name: test
current-context: test
users:
- name: test
  user: {}

Start kubeplay and call pods []:

> ./kubeplay -kubeconfig ./kubeconfig
kubeplay (namespace="*")> pods []
+++ Execute: pods 
args=[]
fatal error: exitsyscall: syscall frame is no longer valid

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 18

Commits related to this issue

Most upvoted comments

ok, great information. I’ll keep trying to find the right fix, thanks.

On Sat, Jan 7, 2017 at 10:00 AM, Ilya Dmitrichenko <notifications@github.com

wrote:

This what caused this originally and works now:

kubeplay (namespace=“*”)> pods [] +++ Execute: pods [] args=[[]] +++ Error: Not yet implemented!

I’ve written new things called with_labels yesterday, and it takes a block that is instance_eval’ed to provide a funky little DSL for building label expressions with Ruby syntax, e.g. with_labels { label(“foo”) =~ %w(foo.baz foo.bar); label(“boom”).defined?; } it also has predefined shortcuts for @app and @name

Here is what should had been an exception about undefined method foo:

kubeplay (namespace=“*”)> with_labels { foo } +++ Execute: with_labels fatal error: exitsyscall: syscall frame is no longer valid …

Also @foo is nil and has now defined? method, and thereby causes an exception too:

kubeplay (namespace=“*”)> with_labels { @app.defined? ; @foo.defined? ; } +++ Execute: with_labels {app []} fatal error: exitsyscall: syscall frame is no longer valid …

The code is in master branch of kubeplay, see rubykube/class.labels.go https://github.com/errordeveloper/kubeplay/blob/b6fe8b1b0381634c56b265e07e978dcad4060820/rubykube/class.labels.go#L211 and rubykube/verbs.go https://github.com/errordeveloper/kubeplay/blob/b6fe8b1b0381634c56b265e07e978dcad4060820/rubykube/verbs.go#L77 .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mitchellh/go-mruby/issues/49#issuecomment-271099243, or mute the thread https://github.com/notifications/unsubscribe-auth/AABJ606NNYvxpvbieOKQzqgValYpv8TAks5rP9KngaJpZM4LazJu .