opencor / opencor

OpenCOR is a cross-platform modelling environment, which can be used to organise, edit, simulate and analyse CellML files.
https://opencor.ws
GNU General Public License v3.0
33 stars 26 forks source link

ZIP support: use 755 for directories and 644 for files, if no file permissions are set #1417

Closed nickerso closed 7 years ago

nickerso commented 7 years ago

In PMR you can add a COMBINE Archive manifest file to a workspace, then when you create an exposure with that manifest users get a button to download the COMBINE Archive. See https://models.physiomeproject.org/e/4c7 for an example. PMR creates the archive "in memory", not using any physical files and doesn't include any extra metadata such as file permissions. What this means is that if you naively download the archive and unzip it, you get a bunch of files with no permissions set (tested on MacOS and Ubuntu) and unable to read the files. Similarly, if you open the archive in OpenCOR (latest snapshot) you get the error: Error: the manifest is not a valid OMEX file. - presumably due to the file permissions?

Alternatively, loading the archive into the SED-ML Web Tools works fine and the simulation experiment is reproduced :) And manually zipping the workspace into an OMEX file will load into OpenCOR just fine.

@metatoaster is deploying a workaround in PMR to include file permissions when generating the archive which will hopefully get these archives working in OpenCOR, but in general OpenCOR could be a bit cleverer in this regard when loading archives.

nickerso commented 7 years ago

Just to confirm @metatoaster's workaround does indeed work and the COMBINE archive from https://models.physiomeproject.org/e/4c7 now loads fine into OpenCOR.

metatoaster commented 7 years ago

Note that due to the trivial nature of the change I had deployed directly to production (through standard Python packaging and deployment via buildout, as always), this behavior can still be found on the staging instance.

agarny commented 7 years ago

Ok, I can confirm that things now work fine using https://models.physiomeproject.org/e/4c7. Still, I wanted to check with the staging version, but https://staging.physiomeproject.org/e/4c7 doesn't work for me, so where can I find that staging version of the Lorenz attractor?

Otherwise, @nickerso, the error you got comes from here. At that stage, the archive has been successfully uncompressed and we just retrieved or tried to retrieve the contents of the manifest file. Tried to retrieve because it looks like it most likely failed due to the lack of file permissions. Either way, it would be good to be able to find out exactly what happens so I can fix it.

nickerso commented 7 years ago

Thats a new workspace and exposure, so it doesn't exist on staging....yet.

I've just sync'd this across to staging and you can access it here: http://staging.physiomeproject.org/e/2df - I'm having some issues publishing the exposure, so have shared it directly with you @agarny.

agarny commented 7 years ago

Ok, I can now reproduce the problem. Will see what I can do about it.