Page MenuHomePhabricator

Initial Mathoid deployment
Closed, ResolvedPublic


Author: physik

The next step on the Mathoid roadmap is to initially deploy mathoid on betalabs.
The task is solved if the command

curl -d "q=E=mc^2" deployment-mathoid.eqiad.wmflabs:10042

returns a valid json string.

Currently the command returns:

physikerwelt@drmf:~$ curl -d "q=ab" deployment-mathoid.eqiad.wmflabs:10042
curl: (7) Failed to connect to deployment-mathoid.eqiad.wmflabs port 10042
  : Connection refused

The situation here is as follows:

The mathoid role that was defined in

has been assigned to the instance


As far as I understand the problem now is that the content of the git repository

needs to be transported to the directory


on that instance via a process called deployment.
The relevant documentation page concerning this topic can be found here

However, I do not understand how I could deploy mathoid on that node now.

We don't have set up jenkins deploy for mathoid see the comment from mwalker on line 30 of


While useful; unless you have jenkins integration at the start I would remove this.
I was talking to hashar today and he doesn't want to replicate parsoid's setup.


PS: I have the impression that in the past some of the bugs I filed were not tackled due to a bad description. I tried to improve this with this bug-report. If you have suggestions to further improvement please let me know.

Version: unspecified
Severity: enhancement



Related Objects


Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 3:31 AM
bzimport added a project: Mathoid.
bzimport set Reference to bz69298.
bzimport added a subscriber: Unknown Object (MLST).


given that no Jenkins integration exists for this projects, deployment needs to be done manually. Deployment is probably best done via for this repo, but doesn't seem he have it enabled on role::mathoid::beta (I was assuming a jenkins integration). In the interests of moving this forward I have checked out an initial version on deployment-mathoid and nodejs logs the following:


throw e

Error: Module version mismatch. Expected 11, got 1.

at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at bindings (/srv/deployment/mathoid/mathoid/node_modules/jsdom/node_modules/contextify/node_modules/bindings/bindings.js:76:44)
at Object.<anonymous> (/srv/deployment/mathoid/mathoid/node_modules/jsdom/node_modules/contextify/lib/contextify.js:1:96)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)

worker 22013 died (8), restarting.


physik wrote:

Hi Alexandros,

is the machine using ububtu 14?
This error occurred under ubuntu 14. Both mathoid and parsoid depend on the binary node module jsdom. Therefore there are two versions of the git repository. The current master is for ubuntu 12 LTS.
I would appreciate if it would be possible to use the debian package for node jsdom which would solve the problem, but this is currently broken.
A workaround for that is to use ppa packages as described here.

gerritadmin wrote:

Change 153398 had a related patch set uploaded by Physikerwelt:
Update npm modules to ubuntu14

gerritadmin wrote:

Change 153398 merged by Physikerwelt:
Update npm modules to ubuntu14

physik wrote:

I have updated the jsdom node module to trusty.
Another deploy should solve the problem described by Alexandros.

Hello, in the interests of moving forward I did the extra deploy and now the service replies successfully to the curl command provided above. However me being a SPOF in the process obviously makes no sense. So I would say given that no jenkins integration exists for this, you should obtain access to deployment-bastion.eqiad.wmflabs and perform the actions described in on your own.

As far as this ticket is concerned, my guess is it can be resolved.

physik wrote:

Thank you very much Alexandros, I'll file a follow up ticket.