Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude on non existing entity crashes #923

Open
iddan opened this issue Mar 2, 2020 · 0 comments
Open

Exclude on non existing entity crashes #923

iddan opened this issue Mar 2, 2020 · 0 comments
Labels

Comments

@iddan
Copy link
Collaborator

iddan commented Mar 2, 2020

Description
When applying to exclude on a non-existing node the query crashes.

Steps to reproduce the issue:

  1. Run server
  2. Execute:
    g.V().except(g.V(g.IRI("foo"))).all();
  3. See crash in server log

Expected results:

null

Output of cayley version or commit hash:

Cayley version: v0.8.x-dev
Git commit hash: dev snapshot

Logs

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: Panic at 87: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: Panic at 87: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x44e7349]

goroutine 117 [running]:
github.com/dop251/goja.(*Runtime).RunProgram.func1(0xc00016bef8)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/runtime.go:880 +0x98
panic(0x5050a60, 0xc000486050)
	/usr/local/Cellar/go/1.13.8/libexec/src/runtime/panic.go:679 +0x1b2
github.com/dop251/goja.(*vm).try.func1(0xc0004ac340, 0x0, 0xc00016bdc0, 0x0, 0x0, 0x0, 0xc00016be18)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:364 +0x496
panic(0x5070760, 0x613df30)
	/usr/local/Cellar/go/1.13.8/libexec/src/runtime/panic.go:679 +0x1b2
github.com/cayleygraph/cayley/query/shape.Except.Optimize(0x0, 0x0, 0x55dba20, 0x617ce38, 0x55f14a0, 0xc000287340, 0x0, 0x0, 0x508ba40, 0xc000129101, ...)
	/Users/iddan/cayley/query/shape/shape.go:272 +0x29
github.com/cayleygraph/cayley/query/shape.Intersect.Optimize(0xc000129120, 0x2, 0x2, 0x55f14a0, 0xc000287340, 0x0, 0x0, 0x0, 0x0, 0x50c6601)
	/Users/iddan/cayley/query/shape/shape.go:939 +0x17e
github.com/cayleygraph/cayley/query/shape.Optimize(0x55f14a0, 0xc000287340, 0x55dbba0, 0xc000128c20, 0x5609080, 0xc0000dc9a0, 0x0, 0x0, 0xc000389850)
	/Users/iddan/cayley/query/shape/shape.go:77 +0xb6
github.com/cayleygraph/cayley/query/shape.BuildIterator(0x55f14a0, 0xc000287340, 0x5609080, 0xc0000dc9a0, 0x55dbba0, 0xc000128c20, 0x0, 0x8)
	/Users/iddan/cayley/query/shape/shape.go:215 +0x123
github.com/cayleygraph/cayley/query/path.(*Path).BuildIteratorOn(0xc00012a0c0, 0x55f14a0, 0xc000287340, 0x5609080, 0xc0000dc9a0, 0xc000128ae0, 0xc00015d648)
	/Users/iddan/cayley/query/path/path.go:527 +0x87
github.com/cayleygraph/cayley/query/gizmo.(*pathObject).buildIteratorTree(...)
	/Users/iddan/cayley/query/gizmo/traversals.go:86
github.com/cayleygraph/cayley/query/gizmo.(*pathObject).GetLimit(0xc000128920, 0x64, 0x407f746, 0x4ff0040)
	/Users/iddan/cayley/query/gizmo/finals.go:28 +0xf4
github.com/cayleygraph/cayley/query/gizmo.(*pathObject).All(0xc000128920, 0x0, 0x0)
	/Users/iddan/cayley/query/gizmo/finals.go:37 +0x3a
reflect.callMethod(0xc00012a100, 0xc00016b780, 0xc00016b768)
	/usr/local/Cellar/go/1.13.8/libexec/src/reflect/value.go:714 +0x1f0
reflect.methodValueCall(0x0, 0x0, 0xc000128a01, 0xc000389a80, 0xc00016b9c0, 0x4094ae6, 0xc00038aff0, 0xc00012a100, 0xc000389a80, 0x10, ...)
	/usr/local/Cellar/go/1.13.8/libexec/src/reflect/asm_amd64.s:35 +0x42
reflect.Value.call(0x4fe7540, 0xc00012a100, 0x13, 0x5237e70, 0x4, 0x617ce38, 0x0, 0x0, 0xc00015da40, 0x404812c, ...)
	/usr/local/Cellar/go/1.13.8/libexec/src/reflect/value.go:460 +0x5f6
reflect.Value.Call(0x4fe7540, 0xc00012a100, 0x13, 0x617ce38, 0x0, 0x0, 0x4d63630, 0xc000564900, 0xc00038b080)
	/usr/local/Cellar/go/1.13.8/libexec/src/reflect/value.go:321 +0xb4
github.com/dop251/goja.(*Runtime).wrapReflectFunc.func1(0x560ca60, 0xc000128980, 0xc000150800, 0x0, 0xc, 0x560ca60, 0xc000128a60)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/runtime.go:1153 +0x78b
github.com/dop251/goja.(*vm)._nativeCall(0xc0004ac340, 0xc000115d90, 0x0)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:1826 +0x291
github.com/dop251/goja.call.exec(0x0, 0xc0004ac340)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:1810 +0x4a2
github.com/dop251/goja.(*vm).run(0xc0004ac340)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:288 +0x51
github.com/dop251/goja.(*vm).try(0xc0004ac340, 0xc00046be20, 0x0)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:370 +0x147
github.com/dop251/goja.(*vm).runTry(0xc0004ac340, 0x0)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/vm.go:375 +0x4e
github.com/dop251/goja.(*Runtime).RunProgram(0xc000564900, 0xc00003ccc0, 0x0, 0x0, 0x0, 0x0)
	/Users/iddan/go/pkg/mod/github.com/dop251/goja@v0.0.0-20190105122144-6d5bf35058fa/runtime.go:891 +0x1ec
github.com/cayleygraph/cayley/query/gizmo.(*Session).run(0xc00020a320, 0x0, 0x0, 0x0, 0x0)
	/Users/iddan/cayley/query/gizmo/gizmo.go:274 +0x3c
github.com/cayleygraph/cayley/query/gizmo.(*results).Next.func1(0xc0000ceeb0)
	/Users/iddan/cayley/query/gizmo/gizmo.go:332 +0x89
created by github.com/cayleygraph/cayley/query/gizmo.(*results).Next
	/Users/iddan/cayley/query/gizmo/gizmo.go:330 +0x2d2

Environment details:

Backend database: memstore and bolt

@iddan iddan added the bug label Mar 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant