tatool / tatool-web

open-source experiment software for researchers
http://www.tatool-web.com
GNU General Public License v3.0
46 stars 26 forks source link

Data saving in the end of the experiment stopped working #124

Closed ppyyrryy closed 5 years ago

ppyyrryy commented 5 years ago

Dear André and all

My experiment has been running nicely this year but now I run into serious problems without any changes by me. Might be browser related but I do not see my experiment working with any browser currently and have tried myself both Firefox ESR and Chromium.

The experiment seems to run fine but in the end the recorded data does not get saved and cannot be accessed from the Tatool administrator interface, and I do not see the normal final page of the experiment with a unique identifier etc. In the Chromium console I get the following, could you see any obvious reasons? I updated MongoDB and tried installing a new instance of Tatool-Web but the problem remains.

vendor.min.js:52 TypeError: Cannot read property 'toString' of null at tatool-app.min.js:14 at tatool-app.min.js:14 at vendor.min.js:52 at vendor.min.js:52 at c.$eval (vendor.min.js:52) at c.$digest (vendor.min.js:52) at c.$apply (vendor.min.js:52) at vendor.min.js:52 at k (vendor.min.js:52) at XMLHttpRequest.b.onload (vendor.min.js:52) (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 $eval @ vendor.min.js:52 $digest @ vendor.min.js:52 $apply @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 k @ vendor.min.js:52 b.onload @ vendor.min.js:52 load (async) (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 $eval @ vendor.min.js:52 $digest @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 d @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 setTimeout (async) i.defer @ vendor.min.js:52 $evalAsync @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 s @ vendor.min.js:52 $$resolve @ vendor.min.js:52 resolve @ vendor.min.js:52 (anonymous) @ vendor.min.js:52 (anonymous) @ vendor.min.js:58 t.onEnd @ vendor.min.js:73 a.oncomplete @ vendor.min.js:73

alocher commented 5 years ago

Hi there, unfortunately the error message on the minified scripts won't give me an idea what's going wrong. Any chance you can debug this in your local installation? See instructions here.

Also can I just ask if this also happens with normal Chrome/Firefox/Edge?

ppyyrryy commented 5 years ago

Thanks for the reply and sorry for being away, my time has gone elsewhere...

I ran tatool-web locally in the lab mode but it does not show any further information in the terminal.

The data does not get saved with any browser I have tried, including Chrome and now several versions of Firefox ESR.

However, I'm getting a new console error now on from Chromium:

tatool-app.min.js:7 Uncaught (in promise) TypeError: Document not active at Object.exit (tatool-app.min.js:7) at e (tatool-app.min.js:14)

Do these give any directions and what could I find more?

alocher commented 5 years ago

Sorry I should have been more precise. You will have to follow the first part of running tatool-web using webpack-dev-server. This means that you'll run the server in one process and the client in another process (using webpack-dev-server). So you'll have to access your instance via the port provided in that client process (e.g. http://localhost:8080/).

If you could then take a screenshot of the error in the developer tools that would be great. Also what is the setting of the module you're trying to export (exporter, delimiter, format)?

ppyyrryy commented 5 years ago

Thank you for elaboration. No new luck, however. Webpack concludes webpack: Compiled successfully., and the error is produced as before.

Screenshot of the latest error:

error

ppyyrryy commented 5 years ago

For the module set-up, I have tried exporter set to "Download and Upload" as well as "only Upload". For the delimiter, I have Semicolon, and for the format I have tried both Long and Legacy.

alocher commented 5 years ago

I can see that the error is thrown when tatool tries to exit from fullscreen. There was a bug in that external library which was later fixed and we've updated our dependency. It's possible that you might need to update your dependencies to make sure you get the latest version.

Can you run the below to download all dependencies and build tatool again: npm run setup This might take a few minutes (and there will be some warnings which you can safely ignore. Give it another try after that.

ppyyrryy commented 5 years ago

Tried but no luck anew. This time the same TypeError comes from tatool-app.min.js:7. Wish I was able to find what exactly makes this...

alocher commented 5 years ago

Can you post the error similar to above when you run it in dev mode. Can you also give it a try when you disable fullscreen for your module?

ppyyrryy commented 5 years ago

Actually, in dev mode I get the exactly same error output as above, also when I have fullscreen disabled.

In the normal "npm start" mode I get the same error but beginning with tatool-app.min.js:7 :

ppyyrryy commented 5 years ago

error

ppyyrryy commented 5 years ago

I wonder if anybody else has this problem? This is a major deficiency in any experiment

alocher commented 5 years ago

This seems to be an issue with your local setup. The error above still points at the same issue, which makes me think that something still isn't quite right. Can you follow the below steps to make sure we can identify the problem:

  1. Get one of the latest Chrome/Firefox/Edge browsers (this is to make sure it's not just a browser version issue)
  2. Get the latest version of tatool-web, either by pulling latest master via git, or downloading it manually (https://github.com/tatool/tatool-web/archive/master.zip).
  3. Run 'npm run setup'.
  4. Run the webpack-dev-server (2 processes, then access tatool web with the 8080 port)
  5. Download a demo module and open it in your editor. (https://raw.githubusercontent.com/tatool/tatool-web/master/app/projects/public/tatool/modules/demoFlanker.json)
  6. Run Module and post error if applicable.

If you get this to run without an error, you can work your way back to your current setup (e.g. use your own module, run on different browser), which should highlight where the issue comes from.

ppyyrryy commented 5 years ago

Thank you for these instructions. You were right and finally I was able to locate my mistake. I had inappropriately bypassed some input handling that I did not recall to have changed, which led to incomplete response objects. There happened to be no errors due to the missing objects and I was looking at wrong explanations. The "Document not active" error still occurs but the experiment itself runs fine and, most importantly, the data gets stored!

Thanks a lot André for your work and help here and have good times!