Etherpad-lite: Nodejs 14 compatibility on stable

Created on 15 May 2020  ·  6Comments  ·  Source: ether/etherpad-lite

Hej there,

first of all thanks for your great project!

I wanted leave a note that I just spent several hours trying to debug why my instance wouldn't start up in an updated container. The dirty db backend worked fine, but using the postgres backend startup would simply hang forever. As it turned out, the problem was that I was using nodejs 14 and apparently something changed about promises (didn't dive deeper into it, sorry) and the following code would be skipped:

server.js

...
  db.init()
    .then(plugins.update)
    .then(function() { <============== this apparently does not work on node 14 for whatever reasons
      console.info("Installed plugins: " + plugins.formatPluginsWithVersion());
      console.debug("Installed parts:\n" + plugins.formatParts());
      console.debug("Installed hooks:\n" + plugins.formatHooks());

      // Call loadSettings hook
      hooks.aCallAll("loadSettings", { settings: settings });

      // initalize the http server
      hooks.callAll("createServer", {});
    })
    .catch(function(e) {
      console.error("exception thrown: " + e.message);
      if (e.stack) {
        console.log(e.stack);
      }
      process.exit(1);
    });
});

So going back to nodejs 10 solved the issue.

I just wanted to let you know - maybe you can add something to the stable branch (is it fixed on master? Didn't check) that at least warns users. Or document it somewhere.

Best regards

Needs confirmation Upstream bug

All 6 comments

Please try ueber 0.4.9 just on the off chance that works?

I rewrote most of ueber, so it might be that my rewrite fixes..

UeberDB also introduces CI in my branch but node is at v12.16.3

I just changed this to use node 14.. Let's see how that performs...

https://github.com/ether/ueberDB/tree/dirtyref for ref. this is an ueberdb issue btw not an etherpad issue :)

node 14.2 and pg looks fine in tests...

travis_fold:start:worker_info
Worker information
hostname: 9487279d-5f65-4995-a576-d0c53c78f2bb@1.worker-org-db8cd8d97-9vlkt.gce-production-1
version: v6.2.8 https://github.com/travis-ci/worker/tree/6d3048d96b26562be21fa1a8b8144f4c4cecd083
instance: travis-job-9822ae1f-5435-4582-811a-b503b1f164be travis-ci-sardonyx-xenial-1553530528-f909ac5 (via amqp)
startup: 6.171237531s
travis_fold:end:worker_info
travis_time:start:1640f65e
travis_time:end:1640f65e:start=1589498511397429061,finish=1589498511529256025,duration=131826964,event=no_world_writable_dirs
travis_time:start:00ff324a
travis_time:end:00ff324a:start=1589498511532182673,finish=1589498511539417204,duration=7234531,event=agent
travis_time:start:01e82ecd
travis_time:end:01e82ecd:start=1589498511542020098,finish=1589498511543905990,duration=1885892,event=check_unsupported
travis_time:start:0e963c28
travis_fold:start:system_info
Build system information
Build language: node_js
Build dist: xenial
Build id: 687234829
Job id: 687234830
Runtime kernel version: 4.15.0-1028-gcp
travis-build version: b681de9d
Build image provisioning date and time
Mon Mar 25 16:43:24 UTC 2019
Operating System Details
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:   xenial
Systemd Version
systemd 229
Cookbooks Version
42e42e4 https://github.com/travis-ci/travis-cookbooks/tree/42e42e4
git version
git version 2.21.0
bash version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
gcc version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:11:02 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:09:05 2018
  OS/Arch:          linux/amd64
  Experimental:     false
clang version
clang version 7.0.0 (tags/RELEASE_700/final)
jq version
jq-1.5
bats version
Bats 0.4.0
shellcheck version
0.6.0
shfmt version
v2.6.3
ccache version
3.2.4
cmake version
cmake version 3.12.4
heroku version
heroku/7.22.7 linux-x64 node-v11.10.1
imagemagick version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28 http://www.imagemagick.org
md5deep version
4.4
mercurial version
version 4.8
mysql version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper
openssl version
OpenSSL 1.0.2g  1 Mar 2016
packer version
1.3.3
postgresql client version
psql (PostgreSQL) 10.7 (Ubuntu 10.7-1.pgdg16.04+1)
ragel version
Ragel State Machine Compiler version 6.8 Feb 2013
sudo version
1.8.16
gzip version
gzip 1.6
zip version
Zip 3.0
vim version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)
iptables version
iptables v1.6.0
curl version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
wget version
GNU Wget 1.17.1 built on linux-gnu.
rsync version
rsync  version 3.1.1  protocol version 31
gimme version
v1.5.3
nvm version
0.34.0
perlbrew version
/home/travis/perl5/perlbrew/bin/perlbrew  - App::perlbrew/0.86
phpenv version
rbenv 1.1.2
rvm version
rvm 1.29.7 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
default ruby version
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
CouchDB version
couchdb 1.6.1
ElasticSearch version
5.5.0
Installed Firefox version
firefox 63.0.1
MongoDB version
MongoDB 4.0.7
PhantomJS version
2.1.1
Pre-installed PostgreSQL versions
9.4.21
9.5.16
9.6.12
Redis version
redis-server 5.0.4
Pre-installed Go versions
1.11.1
mvn version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T18:41:47Z)
gradle version
Gradle 4.10.2!
lein version
Leiningen 2.9.1 on Java 11.0.2 OpenJDK 64-Bit Server VM
Pre-installed Node.js versions
v10.15.3
v11.0.0
v4.9.1
v6.17.0
v8.12.0
v8.15.1
v8.9
phpenv versions
  system
  5.6
  5.6.40
  7.1
  7.1.27
  7.2
* 7.2.15 (set by /home/travis/.phpenv/version)
  hhvm
  hhvm-stable
composer --version
Composer version 1.8.4 2019-02-11 10:52:10
Pre-installed Ruby versions
ruby-2.3.8
ruby-2.4.5
ruby-2.5.3
travis_fold:end:system_info

travis_time:end:0e963c28:start=1589498511546405719,finish=1589498511551658125,duration=5252406,event=show_system_info
travis_time:start:09c8798a
travis_time:end:09c8798a:start=1589498511554252490,finish=1589498511565747363,duration=11494873,event=rm_riak_source
travis_time:start:03b2b572
travis_time:end:03b2b572:start=1589498511568317998,finish=1589498511573106787,duration=4788789,event=fix_rwky_redis
travis_time:start:265734da
travis_time:end:265734da:start=1589498511576209140,finish=1589498511974615602,duration=398406462,event=wait_for_network
travis_time:start:0300b3b2
travis_time:end:0300b3b2:start=1589498511977258412,finish=1589498512159423124,duration=182164712,event=update_apt_keys
travis_time:start:314b5af1
travis_time:end:314b5af1:start=1589498512162164856,finish=1589498512210038935,duration=47874079,event=fix_hhvm_source
travis_time:start:003704f7
travis_time:end:003704f7:start=1589498512212648228,finish=1589498512214877196,duration=2228968,event=update_mongo_arch
travis_time:start:1a821cd5
travis_time:end:1a821cd5:start=1589498512217372571,finish=1589498512253311148,duration=35938577,event=fix_sudo_enabled_trusty
travis_time:start:16feaf7c
travis_time:end:16feaf7c:start=1589498512255743233,finish=1589498512257513077,duration=1769844,event=update_glibc
travis_time:start:0213bb39
travis_time:end:0213bb39:start=1589498512260000831,finish=1589498512266724283,duration=6723452,event=clean_up_path
travis_time:start:171789c6
travis_time:end:171789c6:start=1589498512269238812,finish=1589498512275863639,duration=6624827,event=fix_resolv_conf
travis_time:start:35d7dbb5
travis_time:end:35d7dbb5:start=1589498512278471425,finish=1589498512285885784,duration=7414359,event=fix_etc_hosts
travis_time:start:064292b1
travis_time:end:064292b1:start=1589498512288235270,finish=1589498512295370416,duration=7135146,event=fix_mvn_settings_xml
travis_time:start:0524c0cd
travis_time:end:0524c0cd:start=1589498512297847378,finish=1589498512305522679,duration=7675301,event=no_ipv6_localhost
travis_time:start:0dd5fc22
travis_time:end:0dd5fc22:start=1589498512307971271,finish=1589498512309885492,duration=1914221,event=fix_etc_mavenrc
travis_time:start:0481e288
travis_time:end:0481e288:start=1589498512312427270,finish=1589498512315025109,duration=2597839,event=fix_wwdr_certificate
travis_time:start:0172f126
travis_time:end:0172f126:start=1589498512317534763,finish=1589498512337475380,duration=19940617,event=put_localhost_first
travis_time:start:07bb6196
travis_time:end:07bb6196:start=1589498512339913349,finish=1589498512342122335,duration=2208986,event=home_paths
travis_time:start:007812bc
travis_time:end:007812bc:start=1589498512344496146,finish=1589498512355310728,duration=10814582,event=disable_initramfs
travis_time:start:11325e82
travis_time:end:11325e82:start=1589498512357761302,finish=1589498512596493943,duration=238732641,event=disable_ssh_roaming
travis_time:start:0ea87606
travis_time:end:0ea87606:start=1589498512599275308,finish=1589498512601284143,duration=2008835,event=debug_tools
travis_time:start:029cff94
travis_time:end:029cff94:start=1589498512603861937,finish=1589498512606419323,duration=2557386,event=uninstall_oclint
travis_time:start:20e9ee6a
travis_time:end:20e9ee6a:start=1589498512608916422,finish=1589498512611429731,duration=2513309,event=rvm_use
travis_time:start:2d639a90
travis_time:end:2d639a90:start=1589498512614104914,finish=1589498512620643966,duration=6539052,event=rm_etc_boto_cfg
travis_time:start:10762ed8
travis_time:end:10762ed8:start=1589498512623131489,finish=1589498512625227595,duration=2096106,event=rm_oraclejdk8_symlink
travis_time:start:29f2548c
travis_time:end:29f2548c:start=1589498512627736553,finish=1589498512723886868,duration=96150315,event=enable_i386
travis_time:start:07600089
travis_time:end:07600089:start=1589498512726704765,finish=1589498512732108681,duration=5403916,event=update_rubygems
travis_time:start:0301279e
travis_time:end:0301279e:start=1589498512734592922,finish=1589498513473799766,duration=739206844,event=ensure_path_components
travis_time:start:2c28dd30
travis_time:end:2c28dd30:start=1589498513476716170,finish=1589498513478688842,duration=1972672,event=redefine_curl
travis_time:start:0ede3b8c
travis_time:end:0ede3b8c:start=1589498513481219443,finish=1589498513483084276,duration=1864833,event=nonblock_pipe
travis_time:start:20c5b470
travis_time:end:20c5b470:start=1589498513485485654,finish=1589498519517528723,duration=6032043069,event=apt_get_update
travis_time:start:0af58ef5
travis_time:end:0af58ef5:start=1589498519520646059,finish=1589498519522815160,duration=2169101,event=deprecate_xcode_64
travis_time:start:00d54350
travis_time:end:00d54350:start=1589498519525511682,finish=1589498521975832047,duration=2450320365,event=update_heroku
travis_time:start:10e4e15f
travis_time:end:10e4e15f:start=1589498521979138804,finish=1589498521981383554,duration=2244750,event=shell_session_update
travis_time:start:10dda469
travis_fold:start:docker_mtu
travis_fold:end:docker_mtu
travis_time:end:10dda469:start=1589498521984150872,finish=1589498524167266538,duration=2183115666,event=set_docker_mtu
travis_time:start:04f2f61c
travis_fold:start:resolvconf
travis_fold:end:resolvconf
travis_time:end:04f2f61c:start=1589498524172233232,finish=1589498524232060079,duration=59826847,event=resolvconf
travis_time:start:00d58370
travis_time:end:00d58370:start=1589498524235340887,finish=1589498524355158480,duration=119817593,event=maven_central_mirror
travis_time:start:08aac662
travis_time:end:08aac662:start=1589498524357880081,finish=1589498524446093617,duration=88213536,event=maven_https
travis_time:start:02cd2a06
travis_fold:start:services
travis_time:start:009e0104
$ sudo systemctl start docker
travis_time:end:009e0104:start=1589498524452895354,finish=1589498524463563619,duration=10668265,event=prepare
travis_time:start:1ebaa3dd
$ sudo systemctl start mysql
travis_time:end:1ebaa3dd:start=1589498524466581223,finish=1589498525521354708,duration=1054773485,event=prepare
travis_time:start:0312968a
$ travis_setup_postgresql
Starting PostgreSQL v9.6
sudo systemctl start [email protected]
travis_time:end:0312968a:start=1589498525553002060,finish=1589498528476779132,duration=2923777072,event=prepare
travis_time:start:1c12dac1
$ sudo systemctl start couchdb
travis_time:end:1c12dac1:start=1589498528480115437,finish=1589498528498125291,duration=18009854,event=prepare
travis_time:start:08e3bac9
$ sudo systemctl start sqlite3
Failed to start sqlite3.service: Unit sqlite3.service not found.
travis_time:end:08e3bac9:start=1589498528502340514,finish=1589498528513198483,duration=10857969,event=prepare
travis_time:start:2ca3a124
$ sudo systemctl start redis-server
travis_time:end:2ca3a124:start=1589498528516290851,finish=1589498528585103434,duration=68812583,event=prepare
travis_time:start:10d1284d
$ sudo systemctl start cassandra
Failed to start cassandra.service: Unit cassandra.service not found.
travis_time:end:10d1284d:start=1589498528589581439,finish=1589498528603501576,duration=13920137,event=prepare
travis_time:start:05dc8c01
$ sudo systemctl start elasticsearch
travis_time:end:05dc8c01:start=1589498528608789822,finish=1589498528632131417,duration=23341595,event=prepare
travis_time:start:13fe061e
$ sudo systemctl start rethinkdb
Failed to start rethinkdb.service: Unit rethinkdb.service not found.
travis_time:end:13fe061e:start=1589498528636427730,finish=1589498528652610169,duration=16182439,event=prepare
travis_fold:end:services
travis_time:end:13fe061e:start=1589498528636427730,finish=1589498531657199822,duration=3020772092,event=services
travis_time:start:0220de48
travis_time:end:0220de48:start=1589498531661004712,finish=1589498531663622706,duration=2617994,event=fix_ps4
travis_time:start:04d3a1e0

travis_fold:start:git.checkout
travis_time:start:17a328e9
$ git clone --depth=50 --branch=dirtyref https://github.com/ether/ueberDB.git ether/ueberDB
Cloning into 'ether/ueberDB'...
remote: Enumerating objects: 245, done.
remote: Counting objects:   0% (1/245)
remote: Counting objects:   1% (3/245)
remote: Counting objects:   2% (5/245)
remote: Counting objects:   3% (8/245)
remote: Counting objects:   4% (10/245)
remote: Counting objects:   5% (13/245)
remote: Counting objects:   6% (15/245)
remote: Counting objects:   7% (18/245)
remote: Counting objects:   8% (20/245)
remote: Counting objects:   9% (23/245)
remote: Counting objects:  10% (25/245)
remote: Counting objects:  11% (27/245)
remote: Counting objects:  12% (30/245)
remote: Counting objects:  13% (32/245)
remote: Counting objects:  14% (35/245)
remote: Counting objects:  15% (37/245)
remote: Counting objects:  16% (40/245)
remote: Counting objects:  17% (42/245)
remote: Counting objects:  18% (45/245)
remote: Counting objects:  19% (47/245)
remote: Counting objects:  20% (49/245)
remote: Counting objects:  21% (52/245)
remote: Counting objects:  22% (54/245)
remote: Counting objects:  23% (57/245)
remote: Counting objects:  24% (59/245)
remote: Counting objects:  25% (62/245)
remote: Counting objects:  26% (64/245)
remote: Counting objects:  27% (67/245)
remote: Counting objects:  28% (69/245)
remote: Counting objects:  29% (72/245)
remote: Counting objects:  30% (74/245)
remote: Counting objects:  31% (76/245)
remote: Counting objects:  32% (79/245)
remote: Counting objects:  33% (81/245)
remote: Counting objects:  34% (84/245)
remote: Counting objects:  35% (86/245)
remote: Counting objects:  36% (89/245)
remote: Counting objects:  37% (91/245)
remote: Counting objects:  38% (94/245)
remote: Counting objects:  39% (96/245)
remote: Counting objects:  40% (98/245)
remote: Counting objects:  41% (101/245)
remote: Counting objects:  42% (103/245)
remote: Counting objects:  43% (106/245)
remote: Counting objects:  44% (108/245)
remote: Counting objects:  45% (111/245)
remote: Counting objects:  46% (113/245)
remote: Counting objects:  47% (116/245)
remote: Counting objects:  48% (118/245)
remote: Counting objects:  49% (121/245)
remote: Counting objects:  50% (123/245)
remote: Counting objects:  51% (125/245)
remote: Counting objects:  52% (128/245)
remote: Counting objects:  53% (130/245)
remote: Counting objects:  54% (133/245)
remote: Counting objects:  55% (135/245)
remote: Counting objects:  56% (138/245)
remote: Counting objects:  57% (140/245)
remote: Counting objects:  58% (143/245)
remote: Counting objects:  59% (145/245)
remote: Counting objects:  60% (147/245)
remote: Counting objects:  61% (150/245)
remote: Counting objects:  62% (152/245)
remote: Counting objects:  63% (155/245)
remote: Counting objects:  64% (157/245)
remote: Counting objects:  65% (160/245)
remote: Counting objects:  66% (162/245)
remote: Counting objects:  67% (165/245)
remote: Counting objects:  68% (167/245)
remote: Counting objects:  69% (170/245)
remote: Counting objects:  70% (172/245)
remote: Counting objects:  71% (174/245)
remote: Counting objects:  72% (177/245)
remote: Counting objects:  73% (179/245)
remote: Counting objects:  74% (182/245)
remote: Counting objects:  75% (184/245)
remote: Counting objects:  76% (187/245)
remote: Counting objects:  77% (189/245)
remote: Counting objects:  78% (192/245)
remote: Counting objects:  79% (194/245)
remote: Counting objects:  80% (196/245)
remote: Counting objects:  81% (199/245)
remote: Counting objects:  82% (201/245)
remote: Counting objects:  83% (204/245)
remote: Counting objects:  84% (206/245)
remote: Counting objects:  85% (209/245)
remote: Counting objects:  86% (211/245)
remote: Counting objects:  87% (214/245)
remote: Counting objects:  88% (216/245)
remote: Counting objects:  89% (219/245)
remote: Counting objects:  90% (221/245)
remote: Counting objects:  91% (223/245)
remote: Counting objects:  92% (226/245)
remote: Counting objects:  93% (228/245)
remote: Counting objects:  94% (231/245)
remote: Counting objects:  95% (233/245)
remote: Counting objects:  96% (236/245)
remote: Counting objects:  97% (238/245)
remote: Counting objects:  98% (241/245)
remote: Counting objects:  99% (243/245)
remote: Counting objects: 100% (245/245)
remote: Counting objects: 100% (245/245), done.
remote: Compressing objects:   0% (1/131)
remote: Compressing objects:   1% (2/131)
remote: Compressing objects:   2% (3/131)
remote: Compressing objects:   3% (4/131)
remote: Compressing objects:   4% (6/131)
remote: Compressing objects:   5% (7/131)
remote: Compressing objects:   6% (8/131)
remote: Compressing objects:   7% (10/131)
remote: Compressing objects:   8% (11/131)
remote: Compressing objects:   9% (12/131)
remote: Compressing objects:  10% (14/131)
remote: Compressing objects:  11% (15/131)
remote: Compressing objects:  12% (16/131)
remote: Compressing objects:  13% (18/131)
remote: Compressing objects:  14% (19/131)
remote: Compressing objects:  15% (20/131)
remote: Compressing objects:  16% (21/131)
remote: Compressing objects:  17% (23/131)
remote: Compressing objects:  18% (24/131)
remote: Compressing objects:  19% (25/131)
remote: Compressing objects:  20% (27/131)
remote: Compressing objects:  21% (28/131)
remote: Compressing objects:  22% (29/131)
remote: Compressing objects:  23% (31/131)
remote: Compressing objects:  24% (32/131)
remote: Compressing objects:  25% (33/131)
remote: Compressing objects:  26% (35/131)
remote: Compressing objects:  27% (36/131)
remote: Compressing objects:  28% (37/131)
remote: Compressing objects:  29% (38/131)
remote: Compressing objects:  30% (40/131)
remote: Compressing objects:  31% (41/131)
remote: Compressing objects:  32% (42/131)
remote: Compressing objects:  33% (44/131)
remote: Compressing objects:  34% (45/131)
remote: Compressing objects:  35% (46/131)
remote: Compressing objects:  36% (48/131)
remote: Compressing objects:  37% (49/131)
remote: Compressing objects:  38% (50/131)
remote: Compressing objects:  39% (52/131)
remote: Compressing objects:  40% (53/131)
remote: Compressing objects:  41% (54/131)
remote: Compressing objects:  42% (56/131)
remote: Compressing objects:  43% (57/131)
remote: Compressing objects:  44% (58/131)
remote: Compressing objects:  45% (59/131)
remote: Compressing objects:  46% (61/131)
remote: Compressing objects:  47% (62/131)
remote: Compressing objects:  48% (63/131)
remote: Compressing objects:  49% (65/131)
remote: Compressing objects:  50% (66/131)
remote: Compressing objects:  51% (67/131)
remote: Compressing objects:  52% (69/131)
remote: Compressing objects:  53% (70/131)
remote: Compressing objects:  54% (71/131)
remote: Compressing objects:  55% (73/131)
remote: Compressing objects:  56% (74/131)
remote: Compressing objects:  57% (75/131)
remote: Compressing objects:  58% (76/131)
remote: Compressing objects:  59% (78/131)
remote: Compressing objects:  60% (79/131)
remote: Compressing objects:  61% (80/131)
remote: Compressing objects:  62% (82/131)
remote: Compressing objects:  63% (83/131)
remote: Compressing objects:  64% (84/131)
remote: Compressing objects:  65% (86/131)
remote: Compressing objects:  66% (87/131)
remote: Compressing objects:  67% (88/131)
remote: Compressing objects:  68% (90/131)
remote: Compressing objects:  69% (91/131)
remote: Compressing objects:  70% (92/131)
remote: Compressing objects:  71% (94/131)
remote: Compressing objects:  72% (95/131)
remote: Compressing objects:  73% (96/131)
remote: Compressing objects:  74% (97/131)
remote: Compressing objects:  75% (99/131)
remote: Compressing objects:  76% (100/131)
remote: Compressing objects:  77% (101/131)
remote: Compressing objects:  78% (103/131)
remote: Compressing objects:  79% (104/131)
remote: Compressing objects:  80% (105/131)
remote: Compressing objects:  81% (107/131)
remote: Compressing objects:  82% (108/131)
remote: Compressing objects:  83% (109/131)
remote: Compressing objects:  84% (111/131)
remote: Compressing objects:  85% (112/131)
remote: Compressing objects:  86% (113/131)
remote: Compressing objects:  87% (114/131)
remote: Compressing objects:  88% (116/131)
remote: Compressing objects:  89% (117/131)
remote: Compressing objects:  90% (118/131)
remote: Compressing objects:  91% (120/131)
remote: Compressing objects:  92% (121/131)
remote: Compressing objects:  93% (122/131)
remote: Compressing objects:  94% (124/131)
remote: Compressing objects:  95% (125/131)
remote: Compressing objects:  96% (126/131)
remote: Compressing objects:  97% (128/131)
remote: Compressing objects:  98% (129/131)
remote: Compressing objects:  99% (130/131)
remote: Compressing objects: 100% (131/131)
remote: Compressing objects: 100% (131/131), done.
Receiving objects:   0% (1/245)   
Receiving objects:   1% (3/245)   
Receiving objects:   2% (5/245)   
Receiving objects:   3% (8/245)   
Receiving objects:   4% (10/245)   
Receiving objects:   5% (13/245)   
Receiving objects:   6% (15/245)   
Receiving objects:   7% (18/245)   
Receiving objects:   8% (20/245)   
Receiving objects:   9% (23/245)   
Receiving objects:  10% (25/245)   
Receiving objects:  11% (27/245)   
Receiving objects:  12% (30/245)   
Receiving objects:  13% (32/245)   
Receiving objects:  14% (35/245)   
Receiving objects:  15% (37/245)   
Receiving objects:  16% (40/245)   
Receiving objects:  17% (42/245)   
Receiving objects:  18% (45/245)   
Receiving objects:  19% (47/245)   
Receiving objects:  20% (49/245)   
Receiving objects:  21% (52/245)   
Receiving objects:  22% (54/245)   
Receiving objects:  23% (57/245)   
Receiving objects:  24% (59/245)   
Receiving objects:  25% (62/245)   
Receiving objects:  26% (64/245)   
Receiving objects:  27% (67/245)   
Receiving objects:  28% (69/245)   
Receiving objects:  29% (72/245)   
Receiving objects:  30% (74/245)   
Receiving objects:  31% (76/245)   
Receiving objects:  32% (79/245)   
remote: Total 245 (delta 123), reused 221 (delta 113), pack-reused 0
Receiving objects:  33% (81/245)   
Receiving objects:  34% (84/245)   
Receiving objects:  35% (86/245)   
Receiving objects:  36% (89/245)   
Receiving objects:  37% (91/245)   
Receiving objects:  38% (94/245)   
Receiving objects:  39% (96/245)   
Receiving objects:  40% (98/245)   
Receiving objects:  41% (101/245)   
Receiving objects:  42% (103/245)   
Receiving objects:  43% (106/245)   
Receiving objects:  44% (108/245)   
Receiving objects:  45% (111/245)   
Receiving objects:  46% (113/245)   
Receiving objects:  47% (116/245)   
Receiving objects:  48% (118/245)   
Receiving objects:  49% (121/245)   
Receiving objects:  50% (123/245)   
Receiving objects:  51% (125/245)   
Receiving objects:  52% (128/245)   
Receiving objects:  53% (130/245)   
Receiving objects:  54% (133/245)   
Receiving objects:  55% (135/245)   
Receiving objects:  56% (138/245)   
Receiving objects:  57% (140/245)   
Receiving objects:  58% (143/245)   
Receiving objects:  59% (145/245)   
Receiving objects:  60% (147/245)   
Receiving objects:  61% (150/245)   
Receiving objects:  62% (152/245)   
Receiving objects:  63% (155/245)   
Receiving objects:  64% (157/245)   
Receiving objects:  65% (160/245)   
Receiving objects:  66% (162/245)   
Receiving objects:  67% (165/245)   
Receiving objects:  68% (167/245)   
Receiving objects:  69% (170/245)   
Receiving objects:  70% (172/245)   
Receiving objects:  71% (174/245)   
Receiving objects:  72% (177/245)   
Receiving objects:  73% (179/245)   
Receiving objects:  74% (182/245)   
Receiving objects:  75% (184/245)   
Receiving objects:  76% (187/245)   
Receiving objects:  77% (189/245)   
Receiving objects:  78% (192/245)   
Receiving objects:  79% (194/245)   
Receiving objects:  80% (196/245)   
Receiving objects:  81% (199/245)   
Receiving objects:  82% (201/245)   
Receiving objects:  83% (204/245)   
Receiving objects:  84% (206/245)   
Receiving objects:  85% (209/245)   
Receiving objects:  86% (211/245)   
Receiving objects:  87% (214/245)   
Receiving objects:  88% (216/245)   
Receiving objects:  89% (219/245)   
Receiving objects:  90% (221/245)   
Receiving objects:  91% (223/245)   
Receiving objects:  92% (226/245)   
Receiving objects:  93% (228/245)   
Receiving objects:  94% (231/245)   
Receiving objects:  95% (233/245)   
Receiving objects:  96% (236/245)   
Receiving objects:  97% (238/245)   
Receiving objects:  98% (241/245)   
Receiving objects:  99% (243/245)   
Receiving objects: 100% (245/245)   
Receiving objects: 100% (245/245), 71.39 KiB | 4.76 MiB/s, done.
Resolving deltas:   0% (0/123)   
Resolving deltas:   2% (3/123)   
Resolving deltas:   8% (10/123)   
Resolving deltas:  17% (22/123)   
Resolving deltas:  22% (28/123)   
Resolving deltas:  26% (32/123)   
Resolving deltas:  27% (34/123)   
Resolving deltas:  28% (35/123)   
Resolving deltas:  30% (37/123)   
Resolving deltas:  32% (40/123)   
Resolving deltas:  34% (42/123)   
Resolving deltas:  40% (50/123)   
Resolving deltas:  54% (67/123)   
Resolving deltas:  63% (78/123)   
Resolving deltas:  90% (111/123)   
Resolving deltas: 100% (123/123)   
Resolving deltas: 100% (123/123), done.
travis_time:end:17a328e9:start=1589498531671605500,finish=1589498532754289063,duration=1082683563,event=checkout
$ cd ether/ueberDB
$ git checkout -qf db734b016431768a5da2b52d41fd8ed79d658df7
travis_fold:end:git.checkout

travis_time:end:17a328e9:start=1589498531671605500,finish=1589498532766267236,duration=1094661736,event=checkout
travis_time:start:280e4062
travis_time:end:280e4062:start=1589498532769717064,finish=1589498532779637236,duration=9920172,event=env
travis_fold:start:nvm.install
travis_time:start:15616e7a
$ nvm install 14
Downloading and installing node v14.2.0...
Downloading https://nodejs.org/dist/v14.2.0/node-v14.2.0-linux-x64.tar.xz...
Computing checksum with sha256sum
Checksums matched!
Now using node v14.2.0 (npm v6.14.4)
travis_time:end:15616e7a:start=1589498533652104173,finish=1589498537938124343,duration=4286020170,event=setup
travis_fold:end:nvm.install

travis_fold:start:cache.1
Setting up build cache
$ export CASHER_DIR=${TRAVIS_HOME}/.casher
travis_time:start:00e51244
$ Installing caching utilities
travis_time:end:00e51244:start=1589498539061902728,finish=1589498539170759686,duration=108856958,event=setup_casher
travis_time:start:079b5873
travis_time:end:079b5873:start=1589498539175171498,finish=1589498539177745210,duration=2573712,event=setup_casher
travis_time:start:0301a427
attempting to download cache archive
fetching dirtyref/cache--linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--node-14.tgz
fetching dirtyref/cache-linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--node-14.tgz
fetching dirtyref/cache--node-14.tgz
fetching master/cache--linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--node-14.tgz
fetching master/cache-linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--node-14.tgz
fetching master/cache--node-14.tgz
could not download cache
travis_time:end:0301a427:start=1589498539181080548,finish=1589498542195960254,duration=3014879706,event=setup_casher
travis_fold:end:cache.1

travis_fold:start:cache.npm

travis_time:start:23af98ec
travis_time:end:23af98ec:start=1589498542349182981,finish=1589498542351679390,duration=2496409,event=setup_cache
travis_time:start:054034dd
adding /home/travis/build/ether/ueberDB/node_modules to cache
creating directory /home/travis/build/ether/ueberDB/node_modules
travis_time:end:054034dd:start=1589498542354905642,finish=1589498543181044205,duration=826138563,event=setup_cache
travis_fold:end:cache.npm
$ node --version
v14.2.0
$ npm --version
6.14.4
$ nvm --version
0.35.3

travis_fold:start:before_install.1
travis_time:start:31f3abb6
$ mysql -e 'CREATE DATABASE etherdb;'
travis_time:end:31f3abb6:start=1589498543778207568,finish=1589498543783612228,duration=5404660,event=before_install
travis_fold:end:before_install.1
travis_fold:start:before_install.2
travis_time:start:0ac08a00
$ mysql -e 'CREATE USER "etherdb"@"localhost" identified by "etherdb";'
travis_time:end:0ac08a00:start=1589498543786885802,finish=1589498543792345367,duration=5459565,event=before_install
travis_fold:end:before_install.2
travis_fold:start:before_install.3
travis_time:start:1853a030
$ mysql -e "ALTER DATABASE etherdb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
travis_time:end:1853a030:start=1589498543795400335,finish=1589498543800446408,duration=5046073,event=before_install
travis_fold:end:before_install.3
travis_fold:start:before_install.4
travis_time:start:03154e48
$ mysql -e "grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherdb.* to 'etherdb'@'localhost';"
travis_time:end:03154e48:start=1589498543803753507,finish=1589498543808897870,duration=5144363,event=before_install
travis_fold:end:before_install.4
travis_fold:start:before_install.5
travis_time:start:0e6fbc24
$ mysql -e "CREATE TABLE \`store\` (\`key\` varchar(100) COLLATE utf8mb4_bin NOT NULL DEFAULT '',\`value\` longtext COLLATE utf8mb4_bin NOT NULL,PRIMARY KEY (\`key\`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;" etherdb
travis_time:end:0e6fbc24:start=1589498543812154636,finish=1589498543840644477,duration=28489841,event=before_install
travis_fold:end:before_install.5
travis_fold:start:before_install.6
travis_time:start:07861f35
$ mysql etherdb < test/lib/mysql.sql
travis_time:end:07861f35:start=1589498543843802479,finish=1589498543863601263,duration=19798784,event=before_install
travis_fold:end:before_install.6
travis_fold:start:before_install.7
travis_time:start:04295478
$ mysql etherdb -e 'CALL generate_data();';
travis_time:end:04295478:start=1589498543866671772,finish=1589498543890600157,duration=23928385,event=before_install
travis_fold:end:before_install.7
travis_fold:start:before_install.8
travis_time:start:0b787696
$ psql -c 'create database etherdb;' -U postgres
CREATE DATABASE
travis_time:end:0b787696:start=1589498543893845901,finish=1589498544109230357,duration=215384456,event=before_install
travis_fold:end:before_install.8
travis_fold:start:install
travis_time:start:283ae86e
$ npm install
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.1 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN [email protected] No license field.

added 245 packages from 241 contributors and audited 246 packages in 5.596s

18 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

travis_time:end:283ae86e:start=1589498544113405419,finish=1589498550143385458,duration=6029980039,event=install
travis_fold:end:install
travis_time:start:10eae5a6
$ npm test

> [email protected] test /home/travis/build/ether/ueberDB
> mocha test/test*.js --timeout 1000000



  etherdb:dirty:cache-on
    ✓ basic read write
    ✓ Does a basic write->read operation with a random key/value (149ms)
    ✓ Does a basic findKeys operation with a random key/value
    ✓ Tests a key has been deleted
ART 0.1 0.001
AWT 1 0.03
AFKT 0.5 0.001
ARemT 1 0.001
    ✓ Speed is acceptable
    white space
      ✓ Tries to get the value with an included space
      ✓ Gets the correct item when whitespace is in key
      ✓ Tries to get the value with an included space

  etherdb:mysql:cache-on
    ✓ basic read write
    ✓ Does a basic write->read operation with a random key/value (119ms)
    ✓ Does a basic findKeys operation with a random key/value
    ✓ Tests a key has been deleted
ART 0.1 0.00275
AWT 3 1.69495
AFKT 1 0.0294
ARemT 1 0.0021
    ✓ Speed is acceptable (34587ms)
    white space
      ✓ Tries to get the value with an included space
      ✓ Gets the correct item when whitespace is in key
      ✓ Tries to get the value with an included space

  etherdb:postgres:cache-on
    ✓ basic read write
    ✓ Does a basic write->read operation with a random key/value (278ms)
    ✓ Does a basic findKeys operation with a random key/value
    ✓ Tests a key has been deleted
ART 0.1 0.00265
AWT 3 1.72175
AFKT 1 0.0186
ARemT 1 0.0022
    ✓ Speed is acceptable (34907ms)
    white space
      ✓ Tries to get the value with an included space
      ✓ Gets the correct item when whitespace is in key
      ✓ Tries to get the value with an included space

  etherdb:redis:cache-on
    ✓ basic read write
    ✓ Does a basic write->read operation with a random key/value (130ms)
    ✓ Does a basic findKeys operation with a random key/value
    ✓ Tests a key has been deleted

1) It seems fine w/ dirtyref on ueberdb and that's what I hope to get merged in (waiting on @muxator)
2) The issue should be opened on ueberdb repo :)

Thanks op! @muxator my assumption is that pg just needs bumping in package.json in ueber if you want a small fix.

I don't wanna spend time on this any further though because I already put the effort in to mitigate this :)

I am thinking to add a code path to do an early check on maximum supported Node version on startup. We already do this for minimum node version, but cases like this (the runtime ecosystem progressing and the codebase not always keeping up) will happen again.

@rmader lost a lot of time because of this.

Edit: just to clarify: @rmader discovered this unexpected incompatibility. I want an easy toggle to explicitly gate the maximum version, so that it is extremely clear that something has to be done.

Okay seems like a good idea. Shouldn't this be something that lives in package.json btw? I know we have runtime logic but it feels like node would have native support for versioning.

@muxator btw I can not confirm @rmader findings. Just for clarity :)

Was this page helpful?
0 / 5 - 0 ratings