Genvid Forum

Unexpected behavior on Genvid Monitor Page


#1

After a bit of confusion getting my bastion services setup, I can now input the relevant commands and properly see the page displayed by genvid-sdk monitor. I currently have what I believe to be the appropriate jobs available for me to access on that page. I have both Services and Web, which according to help received on a previous post of mine are required to actually stream my game.

"Start"ing these jobs seems to work correctly and “services” progresses from Starting status to Running status after just a moment. “web” however only shows it’s status as Starting and will very occasionally flicker to Running (and turn the appropriate green color) for maybe a second or so before returning to Starting status.

Additionally, it appears that the Links section at the top does not work as I would expect from reading previous help. The text “Tutorial Demo” cannot be clicked on and is red (as is Tutorial Admin). Hovering over Tutorial Demo gives me the text “template: text:1:9:executing “text” at <service ‘web’>: error calling service: Service not found”. I’m pretty sure that should be a clickable link based on the help I am referencing from my previous topic.

Any thoughts as to why these behaviors would be happening?


#2

Hi Jyro,

There seems to be some errors with both the game and the web site. There is probably some errors in the logs for both of them. If not, I suggest you to run it by hand (like pressing play in unity, or running npm start for the web site. Although they would not appear as running in the jobs screen, this should work as well.

The links are setup using Consul to discover the running service. In the case of the Unity sample, those links are expecting a service named ‘web’ to be active. Normally, that’s the job of nomad to register the web process as such. Since the web site is not running, the link returns that it cannot found the service ‘web’ it needed.

Note that in the unity sample, it is the nomad job that is responsible for registering the web application as the service web. If you run the web site by hand (by typing npm start in the web directory for example), this will not work and the links will stay red.


#3

Hey,

Thanks for the response. Unfortunately it doesn’t add too much clarity on my end. I’m rather confident there are no errors in the Unity project as I’ve been also trying this against the Tutorial example included the in SDK, both from within the editor as well as with a standalone build (there are no errors when running from the editor). As far as errors in the website go, I’m not sure exactly how to diagnose that. When looking at the “Logs” section of the monitor page, there are several Logs that are outputting what appear to be issues. “weberr” specifically has this issue that might be of use?:

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web\app.js:1:77)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
module.js:471
    throw err;
    ^

There are a few “Log allocation not found” and a few other places that are spamming data that I’m not sure are relevant (such as health). I don’t really know what I should be looking for in these logs however, or what debugging needs to be done with said information.

Additionally you suggest manually running the website with npm start in the web directory, but I’m not sure exactly where that input should go.

Thanks and sorry I’m not of more use with diagnosing these issues.


#4

Error: Cannot find module 'express'

is a strong hint that not all packages are installed.

The relevant directory is C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web.

You need to first execute npm install there, after which you need to build the software.

But this should have been done by the build-script (which additionally copies the SDK and builds the software), so you should definitely try running py .\build.py all in that folder, and post the output if there are any errors.

For reference, this is how it looks like for me, and if you do the same things it should work for you as well:

Building / Installing:

PS C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web> py .\build.py all
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm notice created a lockfile as package-lock.json. You should commit this file.
added 223 packages in 6.242s

> tutorial_web@0.5.0 build C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web
> tsc && tsc -p public

Starting:

PS C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web> npm run start

> tutorial_web@0.5.0 start C:\Genvid\Genvid Technologies SDK 1.11.0\samples\unity\web
> node bin/www

Listening on port 3000

#5

You can always use the command line: unity.py build web
This command will only build the website for the Unity sample. If you did a unity.py build and there was no error during the process, it would have built the website at the same time. Sadly, if the website is not built, the web job will not work.


#6

Thanks again for the replies.

I have followed those steps (both doing npm install and also the full py all build) and get no errors and a similar (though not identical) output to the inset code above from moritzgv.

However when I actually do npm run start I get various errors. The first time I attempted it, the entire program just hung on

Listening on port 3000
disco service is not available from consul
command service is not available from consul

for a very long time before I decided to close the command prompt window and got a whole mess of errors (I managed to screenshot some of them before it closed but they were only visible for a second or so, see attached image genvidnpmerrors).

I reattempted this step and now get an error spam of

Listening on port 3000
disco watch error: { Error: connect ECONNREFUSED 127.0.0.1:8500
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1085:14)
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8500 }

repeated. The source of the error alternates between disco watch and command watch but the content of the error is otherwise identical. The process never completes and simply sends those two messages over again.

Despite these errors I restarted the entire genvid-bastion service and redid the steps and now I am able to start the web service correctly and the links are clickable.

I suppose now I’m on to my next problem, which is that although I am now able to access the Tutorial Demo page, I still don’t see anything streamed to that frame almost any of the time. I did manage to see a handful of frames of the demo project as I assume it is supposed to appear before the screen froze and stopped updating . But generally it just displays a black screen. I’m just running the tutorial project for now to attempt to get anything appearing on screen.

This is definite progress, although I can no longer even get those few frames to show up from the demo scene. I am attempting to launch the stream from both a standalone windows of the tutorial, as well as from within the unity editor (where there are again no errors). Refreshing the web page also doesn’t seem to effect anything. Is there a place I can look for further log info to share with this next hurdle?


#7

We are looking right now at the logs to see what could be causing the issue.

For now, I can suggest an easy solution to verify that everything works by cleaning up the old config:

  • Stop all the current active jobs
  • genvid-sdk clean-config
  • genvid-bastion uninstall
  • genvid-bastion install
  • genvid-sdk load-config-sdk
  • py unity.py build
  • py unity.py load

Try again on the genvid-sdk monitor and let me know if it’s working. These steps should have restarted the bastion, clean and old config that could cause a conflict and re-built the sample with the website.


#8

Do note that especially the first step might (probably will) produce errors since it seems like your consul wasn’t (isn’t) running - but you should continue with the other steps, the rest will work despite that :slight_smile: