dignifiedquire / dignifiedquire/pull-length-prefixed
Increasing number of source values causes "Maximum call stack size exceeded" in decode()
- Dominant language
- JavaScript
- Stars
- 9
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
In this example stack explodes at about 500 values of source:
```javascript
const pull = require('pull-stream')
const lp = require('pull-length-prefixed')
const assert = require('assert')
const datas = [...Array(500).keys()].map(() => Buffer.from('payload'))
pull(
pull.values(datas),
lp.encode(),
pull.collect((err, encodedArray) => {
if(err) {
throw err
}
pull(
pull.values(encodedArray),
lp.decode(),
pull.collect((err, array) => {
if(err) {
throw err
}
assert(JSON.stringify(array) === JSON.stringify(datas), 'Data corrupted')
console.log('Done')
})
)
})
)
```
This produces:
```
error uncaughtException: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded
at _decodeFromReader (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:26:29)
at Object.reader.read [as cb] (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:91:16)
at drain (/lp-highload/node_modules/pull-reader/index.js:46:23)
at /lp-highload/node_modules/pull-reader/index.js:63:18
at /lp-highload/node_modules/pull-stream/sources/values.js:19:7
at more (/lp-highload/node_modules/pull-reader/index.js:59:7)
at Function.reader.read (/lp-highload/node_modules/pull-reader/index.js:99:7)
at readByte (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:89:12)
at readVarintMessage (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:85:32)
at _decodeFromReader (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:64:5)
at next (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:25:9)
at _decodeFromReader (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:29:11)
at readMessage (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:115:9)
at Object.reader.read [as cb] (/lp-highload/node_modules/pull-length-prefixed/src/decode.js:127:5)
at drain (/lp-highload/node_modules/pull-reader/index.js:39:14)
at more (/lp-highload/node_modules/pull-reader/index.js:55:13)
...
```
Full log https://github.com/areth/lp-highload/blob/master/exceptions.log.bak
Repo to reproduce https://github.com/areth/lp-highload
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.