Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

python crash after closing eyelink datafile

Dear all, dear Sebastiaan,

For a simple eyetracking experiment, I have a brand new (dedicated) 64bit windows 10 laptop combining with EL 1000.
Everything seems to work fine with windows 10 - after installing the correct python libraries from eyelink, however
at the final stage of the experiment, the datafile cannot be downloaded fully:

The edf file is created locally, and the transfer stream seems to work as well. However, at the closing stage, python crashes without any information (empty stack). Afterwards, the datafile is empty. Since this setup is going to be running somewhat 'unattended', this is a rather essential feature :smile:. Are there any ways of investigating this matter (or perhaps workarounds to obtain the datafile from the EL host PC? (My thoughts are that it would have to do with clashing 32 / 64 bit routines, since pylink needed to be 32 bit...) Many thanks in advance for your advice!

Jan-Bernard

=== start trace ==

libeyelink.libeyelink.close(): Transferring sub_2.edf to C:/Users/Marsman/Experiment\sub_2.edf

Python seems to have crashed. This should not happen. If Python crashes often, please report it on the OpenSesame forum.

item-stack:
time: Wed Jan 03 16:09:01 2018

Comments

  • Hi Jan-Bernard,

    I've seen this happen before. It's a bug in PyLink, and not related to the fact that you're running 32 bit libraries on a 64 bit system. (The entire Python environment is 32 bit.)

    There are many different versions of PyLink floating around the internet. Where did you get yours from? Was it already installed on the experimental PC, or did you download it from the SR Support forum? If the first, I would try to download the latest version from their forum. That might fix the issue.

    Otherwise:

    1. Does the issue occur with all backends?
    2. If it occurs for a backend, does it always occur or just sometimes?
    3. When does the crash happen? Immediately when transfer begins, or after a while?

    or perhaps workarounds to obtain the datafile from the EL host PC?

    You can always restart the host PC in Windows, and then get the .edf file from there. (I forgot where exactly it's saved, but you'll find it.) So you're unlikely to lose data, although obviously this is not a satisfactory solution.

    Cheers,
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • Thanks Sebastiaan, I've downloaded the pylink from SR Support forum and taken the latest 32 bit version. There are older versions in the package, so I will try and test these. Indeed, I know how to manually get data from host PC, but that would require quite some intervention for someone without PC skills.
    My ideal solution (since the setup will be running elsewhere) would be that the edf is directly placed onto google drive folders (via some inline script). This allows me to access the data without actually visiting the site. I'll also post my solution/or problems for future reference.

  • Also, I will release OpenSesame 3.2 very soon! This will come with many updated libraries (I don't update libraries during a release cycle to avoid regressions), so you might luck out and find that the PyLink crash has magically disappeared. You can get a pre-release from here (unless I find serious last-minute issues, this will be almost identical to the stable release):

    My ideal solution (since the setup will be running elsewhere) would be that the edf is directly placed onto google drive folders (via some inline script). This allows me to access the data without actually visiting the site.

    If you synchronize the data to a location on the Open Science Framework, then the edf will be automatically uploaded. (Though obviously this is contingent on the transfer from the EyeLink to the experimental PC being successful in the first place!)

    You can also get a list of all data files that OpenSesame knows about as exp.data_files, which is a list. And then you could use this to transfer the data to Google Drive in a custom clean-up function:

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • Thanks for your advice! I'll try 3.2. For now, I discovered that the underlying message from the eyelink API gives an error "Filesize is negative" (by inline code, importing pylink and manually closing the connection).

Sign In or Register to comment.