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

Hubot doesn't start anymore (I guess after updates) #11

Closed
saschafoerster opened this issue Sep 16, 2018 · 10 comments
Closed

Hubot doesn't start anymore (I guess after updates) #11

saschafoerster opened this issue Sep 16, 2018 · 10 comments

Comments

@saschafoerster
Copy link

I want to restart the hubot via docker-compose, but It never goes live. It worked till some weeks ago though. I guess it doesn't work anymore because of your updates. If I can help debug it, let me know. Here is the log file:

npm info build /home/hubot/node_modules/hubot-rss-rolf
npm info preinstall [email protected]
npm info linkStuff [email protected]
npm info install [email protected]
npm info postinstall [email protected]
npm info install [email protected]
npm info postinstall [email protected]
npm info prepublish [email protected]
npm info ok 
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO Starting Rocketchat adapter version 1.0.11...
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO Once connected to rooms I will respond to the name: bonnbot
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] WARNING No services ROCKETCHAT_ROOM provided to Hubot, using 
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO Connecting To: rocketchat:3000
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO Successfully connected!
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO 
[Sun Sep 16 2018 23:05:19 GMT+0000 (UTC)] INFO Logging In
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO Successfully Logged In
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO rid:  []
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO All rooms joined.
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO Preparing Meteor Subscriptions..
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO Subscribing to Room: __my_messages__
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO Successfully subscribed to messages
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] INFO Setting up reactive message list...
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script.

Your hubot-scripts.json is empty, so you just need to remove it.
[Sun Sep 16 2018 23:05:23 GMT+0000 (UTC)] ERROR Error loading scripts from npm package - SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (/home/hubot/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Robot.loadExternalScripts (/home/hubot/node_modules/hubot/src/robot.coffee:401:11)
    at /home/hubot/node_modules/hubot/bin/hubot:159:26
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)

npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info package.json [email protected] No license field.
npm info addNameTag [ 'hubot-giphy-gifme', 'latest' ]
npm info addNameTag [ 'hubot-rss-rolf', 'latest' ]
npm info attempt registry request try #1 at 11:05:30 PM
npm http request GET https://registry.npmjs.org/hubot-help
npm info attempt registry request try #1 at 11:05:30 PM

@Flipez
Copy link
Owner

Flipez commented Sep 17, 2018

Could you please try to pin the package to something <2 because version 2 supports only hubot-rocketchat v2 adapter and Hubot v3

See #10

Please let me know if that solves your issue.

@richter-p
Copy link

Thanks for your work so far. I'm having the exact same problem as Sascha and tried to pin hubot-rss-rolf to 1.3.1. Unfortunately, it fails at startup stating ERROR Error loading scripts from npm package - Error: Cannot find module '[email protected]'

I'm running rocketchat and rocketchat-hubot including script using docker-compose. How would I pin the package to 1.3.1 correctly? My syntax:

hubot:
    image: rocketchat/hubot-rocketchat:latest
    environment:
      - EXTERNAL_SCRIPTS=hubot-seen,someotherscripts,[email protected]

@Flipez
Copy link
Owner

Flipez commented Nov 1, 2018

Yes that should be correct, but maybe the hubot-rocketchat container is not correct. In our old setup we used rocketchat/hubot-rocketchat:v1.0.11

Can you by any chance upgrade to the new hubot?

@saschafoerster
Copy link
Author

saschafoerster commented Nov 3, 2018

I tried all the different combinations in my docker-compose.yml, none worked:

#      - "EXTERNAL_SCRIPTS=hubot-help,hubot-giphy-gifme,[email protected]"
      - EXTERNAL_SCRIPTS=hubot-help,hubot-giphy-gifme,hubot-rss-rolf
    image: "rocketchat/hubot-rocketchat:latest"
#    image: "rocketchat/hubot-rocketchat:v1.0.11"

@saschafoerster
Copy link
Author

[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO Starting Rocketchat adapter version 1.0.11...
[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO Once connected to rooms I will respond to the name: hubot
[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO Connecting To: rocketchat:3000
[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO Successfully connected!
[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO 
[Sat Nov 03 2018 22:37:43 GMT+0000 (UTC)] INFO Logging In
[Sat Nov 03 2018 22:37:45 GMT+0000 (UTC)] INFO Successfully Logged In
[Sat Nov 03 2018 22:37:45 GMT+0000 (UTC)] INFO rid:  []
[Sat Nov 03 2018 22:37:45 GMT+0000 (UTC)] INFO All rooms joined.
[Sat Nov 03 2018 22:37:45 GMT+0000 (UTC)] INFO Preparing Meteor Subscriptions..
[Sat Nov 03 2018 22:37:45 GMT+0000 (UTC)] INFO Subscribing to Room: __my_messages__
[Sat Nov 03 2018 22:37:46 GMT+0000 (UTC)] INFO Successfully subscribed to messages
[Sat Nov 03 2018 22:37:46 GMT+0000 (UTC)] INFO Setting up reactive message list...
[Sat Nov 03 2018 22:37:46 GMT+0000 (UTC)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script.

Your hubot-scripts.json is empty, so you just need to remove it.
[Sat Nov 03 2018 22:37:46 GMT+0000 (UTC)] ERROR Error loading scripts from npm package - Error: Cannot find module '[email protected]'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Robot.loadExternalScripts (/home/hubot/node_modules/hubot/src/robot.coffee:401:11)
    at /home/hubot/node_modules/hubot/bin/hubot:159:26
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)

@Flipez
Copy link
Owner

Flipez commented Nov 6, 2018

I think the docker image for "rocketchat/hubot-rocketchat:latest" is outdated.

For our setup we use the bot like this:

We've cloned https://github.com/RocketChat/hubot-rocketchat-boilerplate and adjusted external-scripts.json and package.json and build the container by ourself.

# external-scripts.json 
["hubot-help","hubot-redis-brain","hubot-http-status","hubot-rss-rolf"]
# package.json
{
  "name": "hubot-rocketchat-boilerplate",
  "version": "0.0.0-develop",
  "description": "An example Hubot demonstrating usage of the Rocket.Chat adaptor.",
  "main": "bin/hubot",
  "repository": "[email protected]:RocketChat/hubot-rocketchat-boilerplate.git",
  "author": "Tim Kinnane <[email protected]>",
  "license": "MIT",
  "private": false,
  "keywords": [
    "hubot",
    "rocketchat",
    "chatbot",
    "chat"
  ],
  "engines": {
    "node": ">=8.x",
    "npm": ">=5.x"
  },
  "scripts": {
    "debug": "node --inspect --inspect-brk -r dotenv/config node_modules/hubot/bin/hubot.js -a rocketchat",
    "shell": "node -r dotenv/config node_modules/hubot/bin/hubot.js -a shell",
    "local": "node -r dotenv/config node_modules/hubot/bin/hubot.js -a rocketchat"
  },
  "dependencies": {
    "hubot": "3",
    "hubot-help": "^1.0.1",
    "hubot-http-status": "^0.2.2",
    "hubot-redis-brain": "^1.0.0",
    "hubot-rocketchat": "github:rocketchat/hubot-rocketchat",
    "hubot-rss-rolf": "2.0.0-beta1"
  },
  "devDependencies": {
    "dotenv": "^5.0.1"
  }
}
# Dockerfile
FROM node:8.11.2
RUN useradd hubot -m
USER hubot
COPY ./bin /home/hubot/bin/
COPY ./scripts /home/hubot/scripts/
COPY package.json /home/hubot/package.json
COPY external-scripts.json /home/hubot/external-scripts.json
USER root
RUN chown hubot:hubot -R /home/hubot/bin 
RUN chmod +x /home/hubot/bin/hubot
WORKDIR /home/hubot
USER hubot
RUN npm install
CMD bin/hubot
# docker-compose.yml
...
hubot:
    restart: always
    build: .
    environment:
       ...
      - EXTERNAL_SCRIPTS=hubot-help,hubot-redis-brain,hubot-http-status,hubot-rss-rolf

I don't know if it would be helpful if I build and publish the container for you guys because I am not quite sure if this is a good solution.

@saschafoerster
Copy link
Author

saschafoerster commented Nov 21, 2018

I get pretty far with it, but it ends with a timeout:

up to date in 8.277s
Wed, 21 Nov 2018 22:31:52 GMT body-parser deprecated undefined extended: provide extended option at node_modules/hubot/src/robot.js:445:21
[Wed Nov 21 2018 22:31:52 GMT+0000 (UTC)] INFO [startup] Rocket.Chat adapter in use
[Wed Nov 21 2018 22:31:52 GMT+0000 (UTC)] INFO [startup] Respond to name: Hubot
[Wed Nov 21 2018 22:31:52 GMT+0000 (UTC)] INFO [startup] Respond to alias: bonnbot
[Wed Nov 21 2018 22:31:52 GMT+0000 (UTC)] INFO [connect] Connecting { username: 'bonnbot',
  password: '########',
  ldap: false,
  host: 'rocketchat:3000',
  useSsl: false,
  timeout: 20000,
  rooms: [ '\'\'' ],
  allPublic: true,
  dm: true,
  livechat: true,
  edited: false,
  integrationId: 'js.SDK',
  roomCacheMaxSize: 10,
  roomCacheMaxAge: 300000,
  dmCacheMaxSize: 10,
  dmCacheMaxAge: 100000 }
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] INFO [connect] Timeout (20000)
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] ERROR Unable to connect: {}
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] ERROR undefined
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] ERROR Unable to login: {}
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] ERROR undefined
[Wed Nov 21 2018 22:32:12 GMT+0000 (UTC)] ERROR Unable to subscribe {}
(node:7) UnhandledPromiseRejectionWarning: Error: Asteroid connection timeout
    at Timeout._onTimeout (/home/hubot/node_modules/@rocket.chat/sdk/dist/lib/driver.js:94:25)
    at ontimeout (timers.js:498:11)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)

(node:7) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@saschafoerster
Copy link
Author

Okay, by giving hubot some time to start later with:

sudo docker-compose stop hubot
sudo docker-compose up -d hubot

I finally can start Hubot, but RSS-rolf is not happy:

INFO /home/hubot/node_modules/hubot-rss-rolf/scripts/hubot-rss-reader.js is using deprecated documentation syntax

@saschafoerster
Copy link
Author

Okay, it seems, that it works, but it lost all feeds from before and it doesn't show up in hubot help. But I guess the main-problem is solved.

@Flipez
Copy link
Owner

Flipez commented Nov 26, 2018

The feeds are probably lost because the redis database lost its data.

The broken help will be tracked in #14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants