NodeBB crashes when uploading images

Technical Support
  • Log output:

    2021-05-06T01:18:54.643Z [4567/23252] - info: NodeBB Ready
    2021-05-06T01:18:54.646Z [4567/23252] - info: Enabling 'trust proxy'
    2021-05-06T01:18:54.651Z [4567/23252] - info: NodeBB is now listening on:
    [cluster] Child Process (23252) has exited (code: null, signal: SIGILL)
    [cluster] Spinning up another process...

    As you can see, strangely, there isn't even an error.

    I'm using the latest version of NodeBB

  • @teresa-hale-dhq Update: I attached a debugger to the Node process; here's the output from that.

    (gdb) attach 472
    Attaching to process 472
    [New LWP 473]
    [New LWP 474]
    [New LWP 475]
    [New LWP 476]
    [New LWP 477]
    [New LWP 478]
    [New LWP 483]
    [New LWP 484]
    [New LWP 485]
    [New LWP 486]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/".
    0x00007f408e687a47 in epoll_wait (epfd=epfd@entry=14, events=events@entry=0x7fff52341980, maxevents=maxevents@entry=1024,
        timeout=timeout@entry=500) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
    30      ../sysdeps/unix/sysv/linux/epoll_wait.c: No such file or directory.
    (gdb) r
    The program being debugged has been started already.
    Start it from the beginning? (y or n) n
    Program not restarted.
    (gdb) c
    Thread 1 "node" received signal SIGILL, Illegal instruction.
    0x00007f3de6dc1f1f in ?? () from /home/forum/node_modules/sharp/build/Release/../../vendor/8.10.6/lib/
    (gdb) quit

    Idk if this'll be of use, but putting it here in case it is.

  • What platform are you on? What version of Node? Did you recently upgrade? Maybe try npm rebuild

  • @pitaj I'm on Ubuntu 18.04, using Node.js version 14.16.1.
    I tried npm rebuild and restarting NodeBB, but it still crashes whenever I try to upload an image.

  • Oh actually I think you need to do npm rebuild sharp. Try that and share the output from it.

  • @pitaj

    root@rockfic:/home/forum# npm rebuild sharp
    > [email protected] install /home/forum/node_modules/sharp
    > (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
    sharp: Downloading
    [email protected] /home/forum/node_modules/sharp

    Even still, whenever I try uploading an image, I get this:

    [cluster] Child Process (24423) has exited (code: null, signal: SIGILL)
    [cluster] Spinning up another process...
  • Okay so just to confirm this is caused by an error in sharp, try creating a file called test-sharp.js in your nodebb directory with the following contents:

    'use strict';
    const fs = require('fs/promises');
    const sharp = require('sharp');
    async function run() {
    	const input = await fs.readFile('public/logo.png');
    	await sharp(input)
    		.resize({ width: 100 })
    run().then(() => {}, err => setTimeout(() => { throw err; }, 0));

    Then run it like node test-sharp.js. It should create the file build/public/logo.png. Check the exit code with echo $?.

Suggested Topics