kawanet / msgpack-lite

Fast Pure JavaScript MessagePack Encoder and Decoder / msgpack.org[JavaScript]
https://www.npmjs.com/package/msgpack-lite
MIT License
987 stars 127 forks source link

Maximum call stack size exceeded #74

Closed sschizas closed 7 years ago

sschizas commented 7 years ago

I got this error using msgpack-lite:

Unhandled rejection RangeError: Maximum call stack size exceeded at obj_to_map (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:234:16) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:165:5) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at array (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:192:7) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:153:33) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at /Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:239:7 at Array.forEach (native) at obj_to_map (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:237:10) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:165:5) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at array (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:192:7) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:153:33) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at /Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:239:7 at Array.forEach (native) at obj_to_map (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:237:10) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:165:5) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at array (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:192:7) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:153:33) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at /Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:239:7 at Array.forEach (native) at obj_to_map (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:237:10) at object (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:165:5) at encode (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-core.js:23:5) at array (/Users/stavrosschizas/Documents/Projects/wover-backend/node_modules/msgpack-response/node_modules/msgpack-lite/lib/write-type.js:192:7)

Any thoughts?

kawanet commented 7 years ago

A circular structure may cause it. JSON.stringify would fire another error as below:

> var msgpack = require("msgpack-lite");
> var a = {};
> a.a = a
> msgpack.encode(a)
RangeError: Maximum call stack size exceeded
> JSON.stringify(a)
TypeError: Converting circular structure to JSON
sschizas commented 7 years ago

@kawanet I have checked my code and i don't see any kind of cycle reference. In order to cross validate it i used another msgpack library and i didn't get this error. I think its worth checking your code.

JacobPatenaude-AI commented 5 years ago

For anyone stumbling on this issue, I hit this error when I had a unpacker for an extended type but not a packer

joyarzun commented 4 years ago

For anyone stumbling on this issue, I hit this error when I had a unpacker for an extended type but not a packer

Do you mean extended like an object large and deep?

I'm facing this issue as well.

Node: v12 Alpine

image

Depend on:

➜  orders-service git:(master) npm ls msgpack-lite
sales-order-service@1.0.0 /orders-service
└─┬ fluent-logger@3.4.1
  └── msgpack-lite@0.1.26