citgm icon indicating copy to clipboard operation
citgm copied to clipboard

Maximum call stack size exceeded in columnify

Open gibfahn opened this issue 7 years ago • 3 comments

  • Node Version: 6.12.3
  • CitGM Version: 3.1.1
  • Platform: x64 Linux

Columnify issue raised: https://github.com/timoxley/columnify/issues/52

When you run citgm -J -v verbose it blows the stack. Looks like it failed before in https://github.com/nodejs/citgm/issues/44, not sure if the same cause.

error: error:              | The canary is dead: 
/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/utils.js:13
  return Array.apply(null, {length: len + 1}).join(str).slice(0, len)
               ^

RangeError: Maximum call stack size exceeded
    at repeatString (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/utils.js:13:16)
    at padRight (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/utils.js:31:16)
    at /dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/columnify.js:229:227
    at Array.forEach (native)
    at _loop (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/columnify.js:226:19)
    at /dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/columnify.js:234:7
    at Array.map (native)
    at createRows (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/columnify.js:216:16)
    at module.exports (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/node_modules/columnify/columnify.js:195:14)
    at output (/dev/shm/usenode.jenkins0/node-v6.12.3-linux-x64/lib/node_modules/citgm/lib/out.js:19:15)

gibfahn avatar Jan 09 '18 10:01 gibfahn

Actually I'm wrong, this seems to be caused by ibm_db.

citgm -v verbose ibm_db

gibfahn avatar Jan 09 '18 11:01 gibfahn

To reproduce:

Download ibm_db.txt, copy and run the script:

'use strict';
const fs = require('fs');
const columnify = require('columnify');

const message = fs.readFileSync('./ibm_db.txt', 'utf8');
const tag = ''

const msg = columnify(
  [{tag, message}],
  {
    showHeaders: false,
    maxLineWidth: 'auto',
    minWidth: 20,
    maxWidth: Infinity,
    columnSplitter: '| ',
    preserveNewLines: true
  }
);

gibfahn avatar Jan 09 '18 13:01 gibfahn

Is this only affecting node 6?

targos avatar Jan 09 '18 14:01 targos