Version 7.0.0 is available
Hello all. With the help from @julian there is a new version available that is compatible with v2.2.x.
@Andrea-0 try latest version of the plugin, v7. It should work now and be fully compatible with v2.2.x
Hello all. With the help from @julian there is a new version available that is compatible with v2.2.x.
@Andrea-0 try latest version of the plugin, v7. It should work now and be fully compatible with v2.2.x
@Klaus6 Yes. Version 6.0 was released, and it's compatible with v2.2.x
The new version is available. Summary: complete rewrite of the ACP (functionality, UI, and UX - has not been changed).
@anodetobb technically it's possible, but Plugin does not carry such functionality. It's developed with a fixed size of 640px.
If you would change to the responsive layout and take the whole width, it will also proportionally take way more space vertically.
Thank you everybody for helping me with forum troubleshooting. The problem has been found. It's memory limit. After a few years of use, 512MB RAM + 256MB swap is not enough anymore (I have some suspicions that swap does not kick in, but it's a topic for a different story).
If somebody searches, and no changes plugins, core, or hardware, and you do not have plugins that depend on external services - check if it's a memory issue.
@baris yep. Sounds are not the problem, the result is the same with the disabled sound step.
Interesting if memory is an issue now. Yes, it's a 512MB server, for some reason, it's a limit now after 5 years?..
When I look at htop
, it peaks at max memory when forum startups, but it was not an issue before.
I can try to ask the provider to give more memory to check the hypothesis and let you know if it helped.
I have switched your proposed extra flow with console logs to parallel, and receive these results:
1
2.sounds
5/3 04:54 [31928] - error: [sounds] Could not initialise sounds: EEXIST: file already exists, symlink '/web/overseers/node/forum/public/uploads/sounds/.gitignore' -> '/web/overseers/node/forum/public/sounds/.gitignore'
2.blaclist
2.b.minifycss
2.b.minify
5/3 04:54 [31928] - info: NodeBB Ready
5/3 04:54 [31928] - info: Enabling 'trust proxy'
2.compile
5/3 04:54 [31928] - info: NodeBB is now listening on: 0.0.0.0:8081
A bit weird results. You have switched to waterfall
, now it goes to the next step, but chokes there.
1
2
2.compile
2.b.minify
2.b.minifyjs
5/3 04:41 [31364] - info: NodeBB Ready
5/3 04:41 [31364] - info: Enabling 'trust proxy'
2.b.minifycss
5/3 04:41 [31364] - info: NodeBB is now listening on: 0.0.0.0:8081
2.sounds
2.blaclist
3
Reverted back to parallel
:
1
2
@baris It did not print 3
I feel we are very close. @baris Thank you for looking into this!
It chokes here - https://github.com/NodeBB/NodeBB/blob/v1.0.2/src/webserver.js#L92-L101
I do not see console.log
in the next waterfall step after template compilation.
@baris plugins command output:
$ ./nodebb plugins
5/3 04:06 [30726] - info: [database] Checking database indices.
5/3 04:06 [30726] - info: Active plugins:
- nodebb-theme-overseers
- nodebb-widget-essentials
- nodebb-plugin-soundpack-default
- nodebb-plugin-mentions
- nodebb-plugin-markdown
- nodebb-plugin-emoji-apple
- nodebb-plugin-emoji-extended
- nodebb-plugin-composer-default
- nodebb-plugin-ns-api
- nodebb-plugin-ns-likes
- nodebb-plugin-ns-login
- nodebb-plugin-ns-points
- nodebb-plugin-ns-slugify
- nodebb-plugin-write-api
- nodebb-plugin-ns-embed
- nodebb-plugin-dbsearch
- nodebb-plugin-ns-custom-fields
- nodebb-plugin-ns-awards
- nodebb-widget-ns-birthdays
- nodebb-widget-ns-stats
- nodebb-plugin-emailer-mailgun
- nodebb-plugin-google-analytics
Interesting, any of these plugins interact with external services maybe? That is why it's stopped working. If no changes to local plugins like my ("NS") or others, it should still work without any issues.
As for console.log
, it's triggered for ./nodebb dev
, but it is not triggered for ./nodebb start
@psychobunny @baris what am I risking by running forum as NODE_ENV=development ./nodebb start
?
So I'm debugging Express, in production, Route registration does not happen. For example, in debug mode I see logs like:
express:router:route get /user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route new /api/user/:userslug/edit/password +0ms
express:router:layer new /api/user/:userslug/edit/password +0ms
express:router:route get /api/user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/edit/password +0ms
express:router:layer new / +0ms
express:router:route new /user/:userslug/settings +0ms
express:router:layer new /user/:userslug/settings +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +1ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route new /api/user/:userslug/settings +0ms
express:router:layer new /api/user/:userslug/settings +0ms
express:router:route get /api/user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route get /api/user/:userslug/settings +0ms
express:router:layer new / +0ms
express:router:route new /user/:userslug/session/:uuid +0ms
express:router:layer new /user/:userslug/session/:uuid +0ms
express:router:route delete /user/:userslug/session/:uuid +0ms
But in production mode I can see only initial Express operations:
express:application set "x-powered-by" to true +0ms
express:application set "etag" to 'weak' +1ms
express:application set "etag fn" to [Function: wetag] +1ms
express:application set "env" to 'development' +0ms
express:application set "query parser" to 'extended' +0ms
express:application set "query parser fn" to [Function: parseExtendedQueryString] +0ms
express:application set "subdomain offset" to 2 +0ms
express:application set "trust proxy" to false +0ms
express:application set "trust proxy fn" to [Function: trustNone] +1ms
express:application booting in development mode +0ms
express:application set "view" to [Function: View] +0ms
express:application set "views" to '/web/overseers/node/forum/views' +0ms
express:application set "jsonp callback name" to 'callback' +0ms
express:application set "view engine" to 'tpl' +85ms
express:application set "views" to '/web/overseers/node/forum/public/templates' +1ms
express:application set "json spaces" to 0 +0ms
express:router use / query +0ms
express:router:layer new / +1ms
express:router use / expressInit +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +0ms
express:router:layer new / +0ms
express:application set "view cache" to true +1ms
express:router use / compression +0ms
express:router:layer new / +0ms
express:router use favicon +0ms
express:router:layer new +0ms
express:router use /apple-touch-icon <anonymous> +0ms
express:router:layer new /apple-touch-icon +0ms
express:router use / urlencodedParser +26ms
express:router:layer new / +1ms
express:router use / jsonParser +0ms
express:router:layer new / +0ms
express:router use / cookieParser +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +1ms
express:router:layer new / +0ms
express:router use / session +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +1ms
express:router:layer new / +0ms
express:router use / initialize +0ms
express:router:layer new / +0ms
express:router use / authenticate +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +0ms
express:router:layer new / +0ms
express:router use / <anonymous> +1ms
express:router:layer new / +0ms
express:application set "cache" to true +1ms
express:application set "minification" to true +0ms
That is why even the basic root route does not work since none of them are registered. Any hints where to look next?
Any ideas why ./nodebb start
does not work, and ./nodebb dev
works?
Anything I could do to rebuild something in a less harmful way to try ./nodebb start
?
Any suggestions why Express does not work in production mode?
I did not do npm install
, I deactivated at this point 2 plugins that could depend on external services like Captcha and Twitch Monitor.
Here is an example of Express, if I would install node modules likely express would update also:
/api/config
in Dev Mode - works
@baris /api/config
- does not work.
$ curl localhost:8081/api/config
Cannot GET /api/config
Plugins. logs from Dev mode:
4/3 00:42 [18479] - info: [themes] Using theme nodebb-theme-overseers
4/3 00:42 [18479] - verbose: [plugins] Initializing plugins system
4/3 00:42 [18479] - verbose: [plugins] Found 5 js file(s) for plugin nodebb-theme-overseers
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-theme-overseers
4/3 00:42 [18479] - verbose: [plugins] Found 1 css file(s) for plugin nodebb-widget-essentials
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-widget-essentials
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-soundpack-default
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-mentions
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-mentions
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-mentions
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-markdown
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-markdown
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-markdown
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-markdown
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-emoji-apple
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-emoji-extended
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-emoji-extended
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-emoji-extended
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-composer-default
4/3 00:42 [18479] - verbose: [plugins] Found 11 js file(s) for plugin nodebb-plugin-composer-default
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-composer-default
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-composer-default
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-api
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-ns-likes
4/3 00:42 [18479] - verbose: [plugins] Found 2 js file(s) for plugin nodebb-plugin-ns-likes
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-likes
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-login
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-ns-points
4/3 00:42 [18479] - verbose: [plugins] Found 2 js file(s) for plugin nodebb-plugin-ns-points
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-points
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-slugify
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-write-api
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-write-api
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-write-api
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-plugin-ns-embed
4/3 00:42 [18479] - verbose: [plugins] Found 0 js file(s) for plugin nodebb-plugin-ns-embed
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-ns-embed
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-embed
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-dbsearch
4/3 00:42 [18479] - verbose: [plugins] Found 3 less file(s) for plugin nodebb-plugin-ns-custom-fields
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-ns-custom-fields
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-ns-custom-fields
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-custom-fields
4/3 00:42 [18479] - verbose: [plugins] Found 3 less file(s) for plugin nodebb-plugin-ns-awards
4/3 00:42 [18479] - verbose: [plugins] Found 0 js file(s) for plugin nodebb-plugin-ns-awards
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-ns-awards
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-ns-awards
4/3 00:42 [18479] - verbose: [plugins] Found 0 css file(s) for plugin nodebb-widget-ns-birthdays
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-widget-ns-birthdays
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-widget-ns-birthdays
4/3 00:42 [18479] - verbose: [plugins] Found 0 css file(s) for plugin nodebb-widget-ns-stats
4/3 00:42 [18479] - verbose: [plugins] Found 1 less file(s) for plugin nodebb-widget-ns-stats
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-widget-ns-stats
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-emailer-mailgun
4/3 00:42 [18479] - verbose: [plugins] Found 1 js file(s) for plugin nodebb-plugin-google-analytics
4/3 00:42 [18479] - verbose: [plugins] Loaded plugin: nodebb-plugin-google-analytics
4/3 00:42 [18479] - warn: [plugins/load] The following plugins may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing. In the event of an unresponsive NodeBB caused by this plugin, run `./nodebb reset -p PLUGINNAME` to disable it.
* nodebb-plugin-ns-points
* nodebb-plugin-emailer-mailgun
4/3 00:42 [18479] - info: [plugins] Plugins OK
@pitaj is it possible? Does Express mutate its source files?
Touching Node Modules with such an old Node version without lock
file can become very deadly for the forum and current setup.
@baris any ideas what would be the most useful place in the main app to put the console.log
to troubleshoot Express, why it does not blurp output?