Install Bug

In the past whenever I have installed MRL on a Raspberry Pi or even in Windows, I would create a dirctory MRL, copy the myrobotlab.jar file into that director, then open a terminal window and navigate to the directory.

From there I would run the command:

java -jar myrobotjab --install

After some time, particularly on a new build with a fresh OS image, the program would finish and leave me at the command prompt.
Launching then without the --install would start MRL up with all the services installed.

This has always worked with Nixie up until 1.1.514

Now when I try that, part way through the install, I get a warning message and the install just hangs:

12:59:19.121 [main] INFO c.m.f.r.Repo [IvyWrapper.java:428] cmd java -jar ..\..\ivy-2.4.0-4.jar -settings libraries/ivysettings.xml -ivy libraries/ivy.xml -retrieve libraries/jar/[originalname].[ext]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ivy.util.url.IvyAuthenticator (file:/home/pi/MRL/myrobotlab.jar) to field java.net.Authenticator.theAuthenticator
WARNING: Please consider reporting this to the maintainers of org.apache.ivy.util.url.IvyAuthenticator
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
 
After about 30 mins of no activity, Ctrl-C will exit back to the command prompt and the log will show the following:
12:59:17.213 [main] INFO c.m.s.Runtime [Runtime.java:1846] user.dir [/home/pi/MRL]
12:59:17.213 [main] INFO c.m.s.Runtime [Runtime.java:1848] user.home [/home/pi]
12:59:17.213 [main] INFO c.m.s.Runtime [Runtime.java:1849] total mem [64] Mb
12:59:17.214 [main] INFO c.m.s.Runtime [Runtime.java:1850] total free [43] Mb
12:59:17.215 [main] INFO c.m.s.Runtime [Runtime.java:1862] getting local repo
12:59:17.220 [main] INFO c.m.s.Runtime [Runtime.java:382] Runtime.createService security
12:59:17.225 [main] INFO c.m.f.MethodCache [MethodCache.java:163] caching Security's 241 methods and 37 declared methods
12:59:17.289 [main] INFO c.m.f.MethodCache [MethodCache.java:204] cached Security 240 methods with 220 ordinal signatures in 67 ms
12:59:17.292 [main] INFO c.m.f.Registration [Registration.java:47] creating registration for security@envious-hector-launcher - org.myrobotlab.service.Security
12:59:17.298 [main] INFO c.m.s.Runtime [Runtime.java:1217] security@envious-hector-launcher registering at envious-hector-launcher of type org.myrobotlab.service.Security
12:59:17.300 [main] INFO c.m.s.Security [Security.java:637] security loading secure store file data/Security/store
12:59:17.301 [main] INFO c.m.s.Security [Security.java:649] Security.loadStore file not found data/Security/store
12:59:17.307 [main] INFO c.m.i.FileIO [FileIO.java:218] extract(root=/home/pi/MRL/myrobotlab.jar, src=resource, dst=null, overwrite=false)
12:59:17.308 [main] INFO c.m.i.FileIO [FileIO.java:248] normalized extract([/home/pi/MRL/myrobotlab.jar], [resource], [.])
12:59:17.311 [main] INFO c.m.i.FileIO [FileIO.java:284] dir extracting from /home/pi/MRL/myrobotlab.jar
12:59:18.763 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.764 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:18.773 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.773 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:18.858 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.858 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:18.892 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.892 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:18.897 [main] INFO c.m.f.r.Repo [IvyWrapper.java:407] installing 168 services into libraries
12:59:18.897 [main] INFO c.m.f.r.Repo [Repo.java:232] creating work directory libraries
12:59:18.898 [main] INFO c.m.i.FileIO [FileIO.java:1034] looking for Resource framework/ivysettings.xml.template
12:59:18.900 [main] INFO c.m.f.r.Repo [Repo.java:222] writing file libraries/ivysettings.xml
12:59:18.910 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.911 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:18.928 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:18.928 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:19.043 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:19.044 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:19.045 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:19.046 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:19.106 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:25] Joystick.getMetaData armv7.hfp.32.linux  isArm() true
12:59:19.107 [main] INFO c.m.s.m.JoystickMeta [JoystickMeta.java:27] loading arm binaries
12:59:19.115 [main] INFO c.m.i.FileIO [FileIO.java:1034] looking for Resource framework/ivy.xml.template
12:59:19.118 [main] INFO c.m.f.r.Repo [Repo.java:222] writing file libraries/ivy.xml
12:59:19.121 [main] INFO c.m.f.r.Repo [IvyWrapper.java:428] cmd java -jar ..\..\ivy-2.4.0-4.jar -settings libraries/ivysettings.xml -ivy libraries/ivy.xml -retrieve libraries/jar/[originalname].[ext]
 

This shows no new entries for the last 30 mins.
You can launch MRL with 
java -jar myrobotlab.jar

and it will start, but most of the service will not have been installed.
the WebGUI doesn't show what is or is not installed, but the old SwingGUI always did.

Clicking on the [install all services] start the install process running and it does appear to complete with 168 service installed.

I don't remember this being an issue with MRL 1.1.511 or earlier, however there have been warning for a while, pre 1.1.500

 

Ray


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
GroG's picture

Hi Ray ! I think you might

Hi Ray !
I think you might have found a Stream Gobbler bug ... I'll check ..
In the interim can you try [ install all services ] button through the web gui ... It worked for me on this raspi 3

GroG's picture

Good news and bad news

Good news and bad news ...
It does not look like a Stream Gobbler bug ... which effectively halts the process
Bad news - its slow, and their are lots of dependencies ... but after the initial ~/.ivy2 cache is filled subsequent version installs should be relatively fast. The limit on subsequent installs relies on 3 things ... 
1. the speed of disk to make a large copy of files
2. the speed to check all dependencies which have "unpinned" deps - like InMoov2
3. speed of unzipping all downloaded zip files

I did a hotfix - that should show the progress when using --install ...  I'll verify 516 when its done baking

Ray.Edgley's picture

Got it installed

Hello Grog,

As listed at the bottom of the post, the method you suggested had already worked :-)

But with no activity for over 30 mins was a little concerning.
Both on the screen and in the log.

The install via the WebGUI didn't stall at all, but yeah it did take a long time. as a first install.

This was a second attempt with 1.1.514 on a fresh Raspi image.

The first time stalled at the same point, and on that occasion, there were errors when installing with the webGUI, I had put the error down to an unavailable site.

This time round however, there were no errors with the WebGUI install, but it locked up at the same point with the same warning when using the Command line install.

Not a fan of the WebGUI as not all the same info is available, and chrome is a processor hog on small computers like the Raspi.

In swingGUI, you can see what services are installed, not with WebGUI

 

GroG's picture

Yeah - if your dealing with

Yeah - if your dealing with fresh images - it will take longer with no cache, and the repos need to be up in the time you do the install

 

Not a fan of the WebGUI as not all the same info is available, and chrome is a processor hog on small computers like the Raspi.

I never use chrome locally ...
I always ssh to the pi and start mrl through the ssh session..
That way you have the following benefits :

  • It can be done remotely
  • Desktop is not needed
  • Xorg session is not needed
  • Xorg service is not even needed

Potentially, the resources saved this way is far less than the SwingGui can achieve, with the additional benefit it can be managed remotely.

GroG's picture

Verified install progress via

Verified install progress via command line is worky in 516 

Verified 516 finished as expected ...
RasPi 3 with old SD card - took 1 hour ... but at least it has progress to the console again ..