benlangfeld / lumenvox-chef

Chef cookbook for Lumenvox media engine
Apache License 2.0
1 stars 3 forks source link

Is js/js-dev actually needed? #5

Open JustinAiken opened 10 years ago

JustinAiken commented 10 years ago

Lumenvox states:

LumenVox requires a particular version of libjs, the Mozilla implementation of JavaScript, installed on your system. It is not available in the default Red Hat or CentOS yum repositories.

For convenience, LumenVox includes the version of libjs we build and test against in our yum repositories, so if you use yum to install our products and have added the LumenVox repository to your system, yum should be able to fetch it automatically.

Removing js and js-dev from the pre-reqs seems to still work okay...

Doesn't seem to matter with Chef, but if I try to package those w/ Puppet, it takes a crap.

bklang commented 9 years ago

The word from LumenVox is "Yes." Here is an excerpt from an email I received from them, when reporting a bug:

This is a curious one, but we think we have an idea of what’s happening…

Certainly we see the exceptions in your logs, and these indicate that the source of the problem is in the js (JavaScript/ECMAScript) processing code. We use the js library for our JS processing, which is done when obtaining Semantic Information for the results, which is the thing processing your phone numbers.

In our lab, we’ve tried to replicate your problems on a couple of machines, and do not see any issues happening – specifically, the JS/ECMAScript is being correctly processed with no errors or other adverse effects on the system (aside from the telephone numbers being interpreted and returned as floating point numbers)

Again, if we look at your logs, we see that there is a somewhat innocuous looking log message in client_asr.txt:

06/17/2015 22:08:14.740,ERRO,SISRDoInterpret,CreateScope failed for global scope.

…and, although this looks innocent enough, this is actually a very serious issue. It means that the JS processor is not able to initialize itself correctly, which is causing the calling thread to get tied up, and ultimately lead to the stuck thread issues, exceptions, and general misbehavior you are seeing.

Because we are dependent on the system-installed version of js in order for our JS/SISR processor to work correctly, we require a specific version of this library be installed and used. This needs to be able to natively support multithreading among other things, which is not enabled when using the default js library.

We try to make this requirement very clear in our Installation Instructions, however it is easily overlooked, and we therefore believe you may be using an incompatible version of the js library, which is the root cause of the problems you’re seeing.

You can see which version of js you have installed, by running the following (assuming you used yum to install the package):

yum list installed | grep js

It would be good to know what this is, so that we can make note of it for future troubleshooting.

There are instructions on how to install the correct package in the above referenced article, but it’s reasonably straight-forward for your OS (el6 64-bit):

wget http://www.lumenvox.com/packages/EL6/x86_64/js-1.60-1.el6.rf.x86_64.rpm -or- wget http://dag.wieers.com/rpm/packages/js/js-1.60-1.el6.rf.x86_64.rpm

then:

yum localinstall js-1.60-1.el6.rf.x86_64.rpm

You may need to remove your currently installed version prior to this, in case there is any conflict.

Since many ECMAScript issues are non-fatal, and often less obvious than your problems, we encourage users to check the logs for any signs of ECMAScript syntax warnings or errors too since the LumenVox code will attempt to keep going despite any such warnings.

Please try to update your js library and let us know if this resolves the issues you were having. Again, in our lab, we were not able to replicate any of the problems you described, so it is possible that our theory is incorrect (however the js error about failure of CreateScope is pretty ominous).: