Closed stuarteberg closed 6 years ago
$ curl -s http://emdata3:8900/api/node/2053/segmentation_sv_meshes/tarfile/267551639 > 267551639.tar
$ mkdir 267551639
$ cd 267551639
$ tar -xf ../267551639.tar
$ ls | wc
95 95 1344
EDIT: Something weird is going on... Now when I fetch the tarball, I get even fewer meshes. Only 95, as shown above. But I got more the last time I tried.
EDIT2: It seems that I get a different number of supervoxels each time I request the tarball. Strange...
Here's the list of (some of) the supervoxels that are MISSING from the tarball:
Spot-checking the first supervoxel in that list, it appears that it does indeed exist in the filestore:
$ ssh emdata3
$ find /nvme0/filestore/hemi-blobs -name "*421068800*"
/nvme0/filestore/hemi-blobs/66/16/91cd/v1-i34-421068800.drc
The /tarfile code should have returned with an error because having missing supervoxel files was considered an error. In any case, it would have resulted in premature termination of the tarfile. Will investigate why it didn't return with an error instead of the 200.
I have modified the code to be tolerant of missing meshes since that seems to be an unwritten part of the spec. The new code returns the proper # of files. So issue resolved with commit 6f9e2653.
Thanks! Sorry for the incomplete spec...
I found the bug -- the error returned by the tar processing routine wasn't passed on but another err variable was, leading to the correct premature stoppage but not the propagation of the error. The current code fix doesn't have this bug so we should be good.
Today I loaded meshes for body
267551639
into the followingtarsupervoxels
instance:http://emdata3:8900/api/node/2053c1a64f254961874d91407e7301e3/segmentation_sv_meshes/info
I loaded 1969 supervoxels into the instance, via a single call to the
/load
endpoint. (The body has a total of 1975 supervoxels, but a few were too small to be detected in scale-1 segmentation.)However, when I attempt to fetch the supervoxel meshes via the
/tarfile
endpoint, I get back only 359 meshes. I know the mesh files were uploaded and stored, because I can manually inspect the contents of the file store in/nvme0/filestore/hemi-blobs
, and the "missing" supervoxel files are indeed present.(I'll attach some example calls and logs in my next comment.)