Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libssl.so.1.1 error in newest WeKan for Sandstorm #3600

Closed
xet7 opened this issue Jan 11, 2022 · 23 comments · May be fixed by sandstorm-io/meteor-spk#41
Closed

libssl.so.1.1 error in newest WeKan for Sandstorm #3600

xet7 opened this issue Jan 11, 2022 · 23 comments · May be fixed by sandstorm-io/meteor-spk#41

Comments

@xet7
Copy link
Contributor

xet7 commented Jan 11, 2022

Hi,
today is released Node.js 12.22.9 that I added to wekan-5.91.spk package, when building it on Kubuntu 21.10 amd64:
https://releases.wekan.team/sandstorm/

But when I test wekan-5.91.spk package on my laptop at http://local.sandstorm.io:6080 , WeKan does not start and gives these errors:

** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
node: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
** HTTP-BRIDGE: App server exited with status code: 127
** SANDSTORM SUPERVISOR: App exited with status code: 1
@xet7 xet7 changed the title libssl.so.1.1 error in newest WeKan libssl.so.1.1 error in newest WeKan for Sandstorm Jan 11, 2022
@ocdtrekkie
Copy link
Collaborator

So it sounds to me that libssl isn't being included in your build... which is weird if you didn't change anything relevant?

@xet7
Copy link
Contributor Author

xet7 commented Jan 11, 2022

Hmm, Kubuntu seems to have libssl installed:

$ dpkg -l | grep libssl

ii  libssl1.1:amd64                                             1.1.1l-1ubuntu1.1                                       amd64        Secure Sockets Layer toolkit - shared libraries

@xet7
Copy link
Contributor Author

xet7 commented Jan 11, 2022

I did change to newer npm packages but I don't know can that affect libssl

@xet7
Copy link
Contributor Author

xet7 commented Jan 11, 2022

xet7 added a commit to wekan/wekan that referenced this issue Jan 14, 2022
xet7 added a commit to wekan/wekan that referenced this issue Jan 14, 2022
@xet7
Copy link
Contributor Author

xet7 commented Jan 14, 2022

I changed distro from Kubuntu back to Mint, and it did not help. Well, that Mint is newer version that is previously was.

That newest WeKan v5.93 is still broken.

@ocdtrekkie
Copy link
Collaborator

Sorry I haven't been able to look into this as of yet. I've been a bit occupied in my personal life. Because you use meteor-spk, it's usually pretty weird for something to fail to be included. (And your alwaysInclude is alwaysInclude = [ "." ], which I take to mean "literally everything".

@zenhack Any chance you might have some insight what to try or look for on this one?

@zenhack
Copy link
Collaborator

zenhack commented Jan 19, 2022

Does that file (libssl.so.1.1) appear in your sandstorm-files.list? If, so what is the full path?

@ocdtrekkie
Copy link
Collaborator

@zenhack That's the weird part: meteor-spk doesn't use sandstorm-files.list, or generate one.

@zenhack
Copy link
Collaborator

zenhack commented Jan 20, 2022

Does a file by that exact name exist anywhere on the system?

What is the output of ldd on the node executable that is being used?

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

@zenhack

wekan@hx:~$ node -v
v12.22.9

wekan@hx:~$ ldd /home/wekan/.volta/bin/node
        linux-vdso.so.1 (0x00007ffc9a62f000)
        libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f863f0db000)
        libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f863ee00000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f863ebd8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f863f8dc000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f863ebd3000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f863ebb9000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f863ebb4000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f863ebad000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f863eac9000)

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

@zenhack

This is at Kubuntu:

wekan@hx:~$ uname -a
Linux hx 5.13.0-27-generic #29-Ubuntu SMP Wed Jan 12 17:36:47 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

wekan@hx:~$ cat /etc/issue
Ubuntu 21.10 \n \l

@zenhack
Copy link
Collaborator

zenhack commented Jan 20, 2022

I think meteor bundles its own copy of node; can you find that and report the output of ldd on that?

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

@zenhack

It depends when I find it. I have always used newest available node, installed it with n or npm, and copied to meteor-spk at http://releases.wekan.team/meteor-spk/
to:

~/projects/meteor-spk/meteor-spk-0.5.1/meteor-spk.deps/bin/node

That above script calls this install Sandstorm with this:
https://github.com/wekan/wekan/blob/master/releases/install-sandstorm.sh

And build spk with this:
https://github.com/wekan/wekan/blob/master/releases/release-sandstorm.sh

I run that build spk script from this more general many bundle build script:
https://github.com/wekan/wekan/blob/master/releases/release.sh

I tried previous Node 12.22.8 and it also had libssl.so.1.1 error.

I'll try to find does Meteor has specific node binary modifications.

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

Hmm, actually, I'll look if meteor-spk directory tree is missing some files. Just a moment.

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

Hmm, I don't see libssl there, I'll try to copy

~/projects/meteor-spk/meteor-spk-0.5.1/meteor-spk.deps/lib/x86_64-linux-gnu$ ls
ld-2.28.so    libc.so.6      libdl.so.2     libm-2.28.so  libpthread-2.28.so  librt-2.28.so  libz.so.1
libc-2.28.so  libdl-2.28.so  libgcc_s.so.1  libm.so.6     libpthread.so.0     librt.so.1     libz.so.1.2.11

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

I copied libssl, libgcc, libcrypto. It seems I need to copy glibc. Just a moment.

** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libcrypto.so.1.1)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libcrypto.so.1.1)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libgcc_s.so.1)
** HTTP-BRIDGE: App server exited with status code: 1
** SANDSTORM SUPERVISOR: App exited with status code: 1

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

When I look at sandstorm directories, those with red are broken symlinks. So maybe I should build WeKan .spk on Debian or something else where those symlinks would not be broken.

broken-symlinks

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

Originally, before adding libssl.so.1.1 etc, these are broken symlinks in current meteor-spk on Kubuntu:

broken-meteor-spl

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

tammi = January, huhti = April

@zenhack
Copy link
Collaborator

zenhack commented Jan 20, 2022

Ok, so this makes a bit more sense to me; normal spk dev would likely pick up all the needed library dependencies, but since meteor-spk doesn't use the autodetection and just picks up the meteor dev bundle, if you've copied in an alternate version of node that links to system libraries, those won't be picked up.

FWIW, there is a meteor-spk 0.6.0 now, which includes a somewhat more recent version of node (14 I think?). If that's new enough for you, that may be the easiest path forwards. I suspect helping to keep meteor-spk up to date would be easier than than fighting with errors like these; see e.g. sandstorm-io/meteor-spk#40 which was all it took to update meteor the last time.

@xet7
Copy link
Contributor Author

xet7 commented Jan 20, 2022

@zenhack

Oh, I did not notice version change, and that Node 14 is available, this issue is still open sandstorm-io/meteor-spk#39

WeKan currently uses Node 12, but there is trying to upgrade to Node 14.

@xet7
Copy link
Contributor Author

xet7 commented Feb 4, 2022

Using meteor-spk 0.6.0, newest Meteor, and WeKan branch that uses Node 14 but does not yet fully work, I get these errors. Fibers error could also be from some previous Node 12 WeKan, I'm not sure.

MongoDB compatibility error could maybe be related to meteor/meteor#11666

** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
** Starting Mongo...
2022-02-04T22:55:49.133+0000 I STORAGE  Engine custom option: log=(prealloc=false,file_max=200KB)
about to fork child process, waiting until server is ready for connections.
forked process: 11
child process started successfully, parent exiting
** Starting Meteor...
## There is an issue with `node-fibers` ##
`/programs/server/node_modules/fibers/bin/linux-x64-83-glibc/fibers.node` is missing.

Try running this to fix the issue: node /programs/server/node_modules/fibers/build
Error: Cannot find module '/programs/server/node_modules/fibers/bin/linux-x64-83-glibc/fibers'
Require stack:
- /programs/server/node_modules/fibers/fibers.js
- /programs/server/boot.js
- /main.js
- /start.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/programs/server/node_modules/fibers/fibers.js:14:39)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.Mp._compile (/programs/server/runtime.js:50:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Module.Mp.load (/programs/server/runtime.js:15:31)
/programs/server/node_modules/fibers/fibers.js:23
		throw new Error('Missing binary. See message above.');
		^

Error: Missing binary. See message above.
    at Object.<anonymous> (/programs/server/node_modules/fibers/fibers.js:23:9)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.Mp._compile (/programs/server/runtime.js:50:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Module.Mp.load (/programs/server/runtime.js:15:31)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/programs/server/boot.js:2:15)
** HTTP-BRIDGE: App server exited with status code: 1
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
** Starting Mongo...
2022-02-04T22:55:49.597+0000 I STORAGE  Engine custom option: log=(prealloc=false,file_max=200KB)
about to fork child process, waiting until server is ready for connections.
forked process: 11
child process started successfully, parent exiting
** Starting Meteor...
## There is an issue with `node-fibers` ##
`/programs/server/node_modules/fibers/bin/linux-x64-83-glibc/fibers.node` is missing.

Try running this to fix the issue: node /programs/server/node_modules/fibers/build
Error: Cannot find module '/programs/server/node_modules/fibers/bin/linux-x64-83-glibc/fibers'
Require stack:
- /programs/server/node_modules/fibers/fibers.js
- /programs/server/boot.js
- /main.js
- /start.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/programs/server/node_modules/fibers/fibers.js:14:39)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.Mp._compile (/programs/server/runtime.js:50:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Module.Mp.load (/programs/server/runtime.js:15:31)
/programs/server/node_modules/fibers/fibers.js:23
		throw new Error('Missing binary. See message above.');
		^

Error: Missing binary. See message above.
    at Object.<anonymous> (/programs/server/node_modules/fibers/fibers.js:23:9)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Module.Mp._compile (/programs/server/runtime.js:50:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Module.Mp.load (/programs/server/runtime.js:15:31)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/programs/server/boot.js:2:15)
** HTTP-BRIDGE: App server exited with status code: 1
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
** SANDSTORM SUPERVISOR: Grain still in use; staying up for now.
** SANDSTORM SUPERVISOR: Grain no longer in use; shutting down.
** SANDSTORM SUPERVISOR: Starting up grain. Sandbox type: userns
** Starting Mongo...
2022-02-04T23:21:20.401+0000 I STORAGE  Engine custom option: log=(prealloc=false,file_max=200KB)
about to fork child process, waiting until server is ready for connections.
forked process: 11
child process started successfully, parent exiting
** Starting Meteor...
sandstorm/sandstorm-http-bridge.c++:2837: warning: App isn't listening for TCP connections after 30 seconds. Continuing to attempt to connect; address->toString() = 127.0.0.1:4000
/programs/server/node_modules/fibers/future.js:313
						throw(ex);
						^

MongoServerSelectionError: Server at 127.0.0.1:4001 reports maximum wire version 3, but this version of the Node.js Driver requires at least 6 (MongoDB 3.6)
    at Timeout._onTimeout (/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/sdam/topology.js:312:38)
    at listOnTimeout (internal/timers.js:557:17)
    at processTimers (internal/timers.js:500:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) {
      '127.0.0.1:4001' => ServerDescription {
        _hostAddress: HostAddress { isIPv6: false, host: '127.0.0.1', port: 4001 },
        address: '127.0.0.1:4001',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 134003682,
        lastWriteDate: 0,
        error: MongoCompatibilityError: Server at 127.0.0.1:4001 reports maximum wire version 3, but this version of the Node.js Driver requires at least 6 (MongoDB 3.6)
            at checkSupportedServer (/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:62:12)
            at /programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connect.js:106:40
            at MessageStream.messageHandler (/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/connection.js:474:9)
            at MessageStream.emit (events.js:400:28)
            at processIncomingData (/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:108:16)
            at MessageStream._write (/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/cmap/message_stream.js:28:9)
            at writeOrBuffer (internal/streams/writable.js:358:12)
            at MessageStream.Writable.write (internal/streams/writable.js:303:10)
            at Socket.ondata (internal/streams/readable.js:726:22)
            at Socket.emit (events.js:400:28)
            at addChunk (internal/streams/readable.js:290:12)
            at readableAddChunk (internal/streams/readable.js:265:9)
            at Socket.Readable.push (internal/streams/readable.js:204:10)
            at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
      }
    },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    logicalSessionTimeoutMinutes: undefined
  }
}
** HTTP-BRIDGE: App server exited with status code: 1
*** lost connection to grain (probably because it shut down) ***

@xet7
Copy link
Contributor Author

xet7 commented Feb 6, 2022

I got WeKan working with this fix sandstorm-io/meteor-spk#41

@xet7 xet7 closed this as completed Feb 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants