openworm / org.geppetto

Geppetto is an open-source platform to build web-based applications to visualize and simulate neuroscience data and models.
http://geppetto.org
Other
209 stars 50 forks source link

Geppetto backend produces wrong JSON output in Windows environment #71

Closed slarson closed 10 years ago

slarson commented 10 years ago

Originally reported by zipizz@gmail.com on the mailing list

Im very exited about your project and trying to run it on my pc. I have installed Java 1.8 and set Java_home. I have Windows 8.1 Also i have installed openCL from the link you provide. When i load simulation i can see only those: http://joxi.ru/HExvUxjKTJCiRo-DRXo Can you help me plz run the simulation?

jrieke commented 10 years ago

As stated on the mailing list, I face the same issue.

Steps to reproduce: Run a fresh instance of Geppetto v0.1.2 (on Windows, detailed settings see below). Load and start a simulation (here the Hodgkin-Huxley example).

Expected behaviour: The simulation runs as usual.

Real behaviour: The simulation does not start, only the empty widgets show up, no 3D objects show up. Upon starting the simulation the console shows "Simulation not loaded, must load simulation first". Entering Simulation.isLoaded() returns false and entering Simulation returns

image

So, obviously the simulation is stuck in the 0 (init) state.

Partial workaround: Enter Simulation.setSimulationLoaded(), reload the simulation and start it. The simulation starts (the graphs get filled with data) but still no 3D objects show up. Simulation.isLoaded() now returns true, Simulation returns

image

Note, that the state is 3 (paused) because I took the screenshots afterwards (during the simulation it was 2). Also note, that "loading" is still true! For the other examples (e. g. Small Liquid scene) the commands above give similar results but neither will the 3D show up nor will the graph get filled with data.

Settings: Windows 7 (and 8, see above), happens on both Chrome 34.0.1847.137 and Opera 12.17. Graphics card Intel HD 4000. JDK 1.7.0.510, JRE 7.0.550, JAVA_HOME properly set. OpenCL drivers installed, GPU Caps Viewer shows that CPU and GPU are properly registered for OpenCL, the demos also work perfectly. The three.js examples from http://threejs.org/examples/ work. I have also tried it with several other versions of Geppetto but it's always more or less the same thing...

jrieke commented 10 years ago

Additional info: Upon starting geppetto, the Windows command line shows:

WARNING: jmxPermissions.vbs did not update the permissions of C:\Dev\GEPPET~1.2-A\configuration\org.eclipse.virgo.kernel.jmxremote.access.properties. Check the file has the correct permissions.

Don't know if that has anything to do with the issue...

slarson commented 10 years ago

Can you try running geppetto in administrator mode and see if that makes any difference? http://www.eightforums.com/tutorials/9564-run-administrator-windows-8-a.html

On Sun, May 18, 2014 at 11:17 AM, Johannes Rieke notifications@github.comwrote:

Additional info: Upon starting geppetto, the Windows command line shows:

WARNING: jmxPermissions.vbs did not update the permissions of C:\Dev\GEPPET~1.2-A\configuration\org.eclipse.virgo.kernel.jmxremote.access.properties. Check the file has the correct permissions.

Don't know if that has anything to do with the issue...

— Reply to this email directly or view it on GitHubhttps://github.com/openworm/org.geppetto/issues/71#issuecomment-43447042 .

jrieke commented 10 years ago

Already tried that, doesn't make any difference.

slarson commented 10 years ago

Does it make that warning go away at least?

Also, what version of the OpenCL drivers?

jrieke commented 10 years ago

Nope, the warning stays. Intel SDK for OpenCL Applications 2013 64-bit revision 3 (https://software.intel.com/en-us/vcsource/tools/opencl-sdk) and Intel SDK for OpenCL - CPU Only Runtime Package 2013 64-bit (link on the same site under the "Features" tab). GPU Caps Viewer says OpenCL version 1.2.

Here are screenshots from GPU Caps Viewer for CPU:

image

and for GPU:

image

slarson commented 10 years ago

I've heard rumblings that there are incompatibilities with OpenCL 1.2. Is there any way you can downgrade to 1.0 or 1.1 and try again? I tried finding a place to download the earlier version of the Intel drivers to no avail :( Maybe you'll have more luck.

On Sun, May 18, 2014 at 2:05 PM, Johannes Rieke notifications@github.comwrote:

Nope, the warning stays. Intel SDK for OpenCL Applications 2013 64-bit revision 3 ( https://software.intel.com/en-us/vcsource/tools/opencl-sdk) and Intel SDK for OpenCL - CPU Only Runtime Package 2013 64-bit (link on the same site under the "Features" tab). GPU Caps Viewer says OpenCL version 1.2.

Here are screenshots from GPU Caps Viewer for CPU:

[image: image]https://cloud.githubusercontent.com/assets/5103165/3008776/ee6e6a68-decf-11e3-9771-aec5aefb53b0.png

and for GPU:

[image: image]https://cloud.githubusercontent.com/assets/5103165/3008778/faf4a072-decf-11e3-8e00-56e5dad2826e.png

— Reply to this email directly or view it on GitHubhttps://github.com/openworm/org.geppetto/issues/71#issuecomment-43451584 .

jrieke commented 10 years ago

Searched for about an hour, no luck at all :( I have written to Intel's support forum now, hope I will get an answer soon.

tarelli commented 10 years ago

@jrieke do you have errors in the javascript console (not the Geppetto one)?

jrieke commented 10 years ago

@tarelli Tried it and, finally, I see an error :) That's what I get at starting Geppetto:

image

And that's what I get at loading & starting the simulation:

image

The same error shows I up when I do the workaround described above (and the simulation starts successfully but without 3D). From what I see, something goes wrong when Geppetto receives the message that the simulation was loaded (which is consistent with the behaviour of the simulation states described above). Looking forward to your analysis...

tarelli commented 10 years ago

@jrieke can you put a breakpoint at line 57 and inspect the variable payload? Once you put the breakpoint just go to the javascript console and type payload and press return. The content of the variable will be printed, just add it to this bug so I can have a look, thanks!

jrieke commented 10 years ago

@tarelli

payload
Object {update: "{ "time":{"value":"5.0E-5","unit":"s"},"entities":…oup":"Soma"}]}],"children":[],"connections":[]}]}"}
update: "{ "time":{"value":"5.0E-5","unit":"s"},"entities":[{"id":"hhcell","instancePath":"hhcell","aspects":[{"time":{"value":"5.0E-5","unit":"s"},"id":"electrical","instancePath":"hhcell.electrical","visualModel":[{"id":"electrical.hhcell.Soma","objects":[{"type":"Sphere","radius":8,92,"id":"0","position":{"x":0,"y":0,"z":0},"segment_groups":"soma_group; "}],"children":[],"group":"Soma"}]}],"children":[],"connections":[]}]}"
tarelli commented 10 years ago

@jrieke I see definitely some weird things there, can you do the same while using live.geppetto.org for the same scene so that we can compare? There are some things like "entities":…oup" that I don't know if it is the browser truncating the output or something actually wrong. Anyway it's starting to point to the fact that the server in Windows environment does something wrong, therefore there is something OS dependent that influences the output that is produced and streamed to the client. Let's keep investigating to understand what it is!

jrieke commented 10 years ago

I think the "oup" thing is just a browser truncation as the lower update line appears when I expand the first line. Anyway, here's the output from the live deployment:

payload
Object {update: "{ "time":{"value":"5.0E-5","unit":"s"},"entities":…ildren":[],"connections":[]}],"connections":[]}]}"}
update: "{ "time":{"value":"5.0E-5","unit":"s"},"entities":[{"id":"hhcell","instancePath":"hhcell","aspects":[{"time":{"value":"5.0E-5","unit":"s"},"id":"electrical","instancePath":"hhcell.electrical","visualModel":[{"id":"hhcell.Soma","objects":[{"type":"Sphere","radius":8.92,"id":"0","position":{"x":0,"y":0,"z":0},"segment_groups":"soma_group; "}],"children":[],"group":"Soma"}]}],"children":[{"id":"hhcell[0]","instancePath":"hhcell.electrical.hhcell","aspects":[{"id":"electrical","instancePath":"hhcell.electrical.hhcell","visualModel":[{"objects":[{"type":"Sphere","radius":1,"id":"abstract","position":{"x":0,"y":0,"z":0}}],"children":[]}]}],"children":[],"connections":[]}],"connections":[]}]}"
msasinski commented 10 years ago

@jrieke Is the live.geppetto.org behaving as expected or are you having the same issue?

I noticed that you're using Intel HD 4000 graphics card. I believe that this card is based on Intel 945 chipset which, at least in Chromium, is currently blacklisted.

If that's the case then it probably would be a good idea to add better WebGL detection to Geppetto.

tarelli commented 10 years ago

@msasinski with live.geppetto.org it works correctly so as the bug title says it's a problem when the server runs on windows, I haven't had time yet to analyse the output but I see there's less stuff being returned.

msasinski commented 10 years ago

@tarelli Honestly I don't see @jrieke mentioning anywhere that live.geppetto.org works as expected. I've tested Geppetto 0.1.2 and 0.1.3 on Win7 and Win 8, with two different computers, old and new Java, and I can't reproduce the problem. So it's possible that it's not related to Geppetto but to the hardware.

tarelli commented 10 years ago

@msasinski I asked him on the hangout, live.geppetto.org works for him on the same machine, I should have specified it.

msasinski commented 10 years ago

@tarelli that definitely changes everything:)

One more thing I would like to suggest. It looks like @jrieke has Adware superfish installed on his computers, probably as a chrome extension. It's possible that it acts as a proxy and modifies some of the requests, causing Geppetto to fail.

jrieke commented 10 years ago

@msasinski Live deployment works perfectly (just tried it again), sorry about the confusion. I do have AdBlock chrome extension on my machine but uninstalling it does not change the situation. I have also tried disabling/uninstalling any other Chrome extension, using the new Geppetto v0.1.3 as well as disabling all fireware/antivirus stuff, still no good news... As zipizz@gmail.com reported the same issue (see initial post), I do not think it's anything too hardware/setup specific.

msasinski commented 10 years ago

@jrieke Could you try something else? Could you unzip geppetto and run it from Desktop? I know it sounds weird, but this at least should get rid of that problem with permissions.

jrieke commented 10 years ago

@msasinski That really made the permissions error go away but sadly not the other issues :(

jrieke commented 10 years ago

In case it helps anyhow: Here is my output on the Windows command line upon running Geppetto's startup.bat (in admin mode, not from the Desktop): https://gist.github.com/jrieke/ec1ca6042a8362eeb7ac

msasinski commented 10 years ago

Success! Well, kind of.. I was able to replicate this issue on a brand new win8 installation.

msasinski commented 10 years ago

@jrieke based on your log, I would suggest that you use shutdown.bat to stop the application. Closing the console window may not be enough.

msasinski commented 10 years ago

@jrieke If you have access to another computer, would you mind checking another thing for me:

Matteo, the sph part of geppetto runs on the server under virgo, correct?

jrieke commented 10 years ago

@msasinski Same issues as above when I run Geppetto on my machine (as a server) and access it via another machine (also Win 7, Chrome 35.0.1916.114, the live deployment and the three.js examples work on this machine as well). I have also tried running it from desktop and in admin mode, still no success. I currently wonder if it has anything to do with Java: When I run the checkJava.bat from Geppetto on my machine, I see an error

Could not find the main class: org.eclipse.virgo.util.env.JavaVersionChecker

I have the Java SE SDK 7 update 51 and JRE 7 update 55 installed. Right now I am trying to run the Geppetto server on the other computer and access it via mine but face some other issues along the way, I will keep you posted about the results...

jrieke commented 10 years ago

@msasinski I will only have the other computer available until Sunday evening (Europe time), or maybe Monday morning, so if there is anything else to test, please let me know.

tarelli commented 10 years ago

@jrieke @msasinski this is the problem: In the working version:

"type": "Sphere", "radius": 8.92,

In the not working version:

 "type": "Sphere", "radius": 8,92,

In some countries the locale setting is to use the comma to separate decimal values, which in turns produces invalid JSON. It looks like we'll have to do a custom formatting instead of relying on what is used by default which depends on the environment.

jrieke commented 10 years ago

@tarelli Oh my, and I spent hours yesterday trying to install it with different OpenCL versions and on the other computer. Well, anyhow it was clear that it's such a nasty little thing :) Thanks for figuring this out, Matteo and Mariusz!

jrieke commented 10 years ago

Just checked Geppetto v0.1.4 (both the release version and built from source): All 3D objects show up and the simulations starts as expected! What a dream :) Thanks @tarelli ! Only (minor) issue: The small liquid example does not want to start, although both 3D and the graph (without data) show up. The simulation status is on "started" (checked it through the shell). Don't know whether this has to do with my setup or is intentional...

tarelli commented 10 years ago

@jrieke that's not intentional, let's look at it together next time we meet :) Glad this issue is fixed now.