Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.1.0
-
7.1.0-1644
-
Untriaged
-
1
-
Unknown
Description
Test repro:
- create default bucket (import lines.json.gz)
- create udf to call prepared statement: curl -s -k -X POST http://172.23.104.90:8093/evaluator/v1/libraries/n1ql -u Administrator:password -H 'content-type: application/json' -d 'function execute_prepare_default() { var query = EXECUTE engineer_count; var acc = []; for (const row of query)
{ acc.push(row); } return acc;}'
# CREATE OR REPLACE FUNCTION execute_prepare_default() LANGUAGE JAVASCRIPT AS "execute_prepare_default" AT "n1ql"
# PREPARE engineer_count as SELECT COUNT as count_engineer FROM default WHERE job_title = "Engineer"
# EXECUTE FUNCTION execute_prepare_default()
Got error:
CONTENT IS: {'requestID': '4cf6e8d7-2de0-4dd2-bc81-25e749e25367', 'signature': None, 'results': [], 'errors': [{'code': 10109, 'msg': "Error executing function execute_prepare_default (n1ql:execute_prepare_default): Evaluator error Exceptions from JS code : run execute_prepare_default failed:\nException: Error: Panic: runtime error: invalid memory address or nil pointer dereference\nLocation: functions/n1ql.js:1 \nCode: function execute_prepare_default() { var query = N1QL('EXECUTE engineer_count;', {}); var acc = []; for (const row of query) { acc.push(row); }return acc;}\nError\n at execute_prepare_default (functions/n1ql.js:1:61)\n - cause: Evaluator error Exceptions from JS code : run execute_prepare_default failed:\nException: Error: Panic: runtime error: invalid memory address or nil pointer dereference\nLocation: functions/n1ql.js:1 \nCode: function execute_prepare_default() { var query = N1QL('EXECUTE engineer_count;', {}); var acc = []; for (const row of query)
{ acc.push(row); }return acc;}\nError\n at execute_prepare_default (functions/n1ql.js:1:61)\n"}], 'status': 'errors', 'metrics': {'elapsedTime': '220.065911ms', 'executionTime': '219.95352ms', 'resultCount': 0, 'resultSize': 0, 'serviceLoad': 1, 'errorCount': 1}}
From query.log (see attached)
{code:java}
2021-11-05T16:23:12.672-07:00 [SEVERE] panic: runtime error: invalid memory address or nil pointer dereference
2021-11-05T16:23:12.672-07:00 [SEVERE] request text: <ud>PREPARE engineer_count as SELECT COUNT(*) as count_engineer FROM default WHERE job_title = "Engineer"</ud>
2021-11-05T16:23:12.672-07:00 [SEVERE] query context: <ud></ud>
2021-11-05T16:23:12.672-07:00 [SEVERE] stack: goroutine 38277 [running]:
github.com/couchbase/query/execution.(*Context).Recover(0xc0006d8280, 0xc00050f200)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/context.go:1028 +0xc6
panic(0x22b72e0, 0x375f960)
/home/couchbase/.cbdepscache/exploded/x86_64/go-1.16.6/go/src/runtime/panic.go:971 +0x499
github.com/couchbase/query/execution.(*base).close(0xc00050f200, 0xc0006d8280)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/base.go:270 +0x233
panic(0x22b72e0, 0x375f960)
/home/couchbase/.cbdepscache/exploded/x86_64/go-1.16.6/go/src/runtime/panic.go:971 +0x499
github.com/couchbase/query/execution.(*base).notify(0xc00050f200)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/base.go:988 +0x178
panic(0x22b72e0, 0x375f960)
/home/couchbase/.cbdepscache/exploded/x86_64/go-1.16.6/go/src/runtime/panic.go:971 +0x499
github.com/couchbase/query/execution.(*Context).Result(...)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/context.go:588
github.com/couchbase/query/execution.(*Stream).processItem(0xc001c8cd80, 0x2889098, 0xc001bd3560, 0xc0006d8280, 0xc000aa3a10)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/stream.go:71 +0x2d
github.com/couchbase/query/execution.serializedSend(0xc00050f200, 0x284e848, 0xc001c8cd80, 0x2889098, 0xc001bd3560, 0x0)
/home/couchbase/jenkins/workspace/couchbase-server-unix/goproj/src/github.com/couchbase/query/execution/base.go:936 +0x13e
...