Repository: erikbern/ann-benchmarks
Issue: Internal Server Error
Root cause: Environment Incompatibility

Hi! I am following every step of the instruction and install.py shows that all the algorithms are installed success. But when I run on glove there is an internal server error. Can you please help me? Thanks so much!

`(ann) X@X$ python run.py --dataset glove-100-angular
2022-08-05 23:29:36,948 - annb - INFO - Not running disabled algorithms [Definition(algorithm='dummy-algo-st', constructor='DummyAlgoSt', module='ann_benchmarks.algorithms.dummy_algo', docker_tag='ann-benchmarks-sklearn', 
......

Process Process-1:
Traceback (most recent call last):
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/api/client.py", line 268, in _raise_for_status
    response.raise_for_status()
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/requests/models.py", line 960, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.41/containers/aa3a75a25a4afcdc0c7b8df4e530614da065d90c3ed27f28a5d8b91ebb13312b/start

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/tartarus/qcyang/ann-benchmarks/ann_benchmarks/main.py", line 49, in run_worker
    args.runs, args.timeout, args.batch, cpu_limit, mem_limit)
  File "/tartarus/qcyang/ann-benchmarks/ann_benchmarks/runner.py", line 244, in run_docker
    detach=True)
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/models/containers.py", line 826, in run
    container.start()
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/models/containers.py", line 404, in start
    return self.client.api.start(self.id, **kwargs)
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/api/container.py", line 1109, in start
    self._raise_for_status(res)
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/api/client.py", line 270, in _raise_for_status
    raise create_api_error_from_http_exception(e)
  File "/home/qcyang/anaconda3/envs/ann/lib/python3.6/site-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 500 Server Error for http+docker://localhost/v1.41/containers/aa3a75a25a4afcdc0c7b8df4e530614da065d90c3ed27f28a5d8b91ebb13312b/start: Internal Server Error ("error while creating mount source path '/tartarus/qcyang/ann-benchmarks/ann_benchmarks': mkdir /tartarus: read-only file system")`

It seems `error while creating mount source path '/tartarus/qcyang/ann-benchmarks/ann_benchmarks': mkdir /tartarus: read-only file system` is the problem here. We mount some directories as `read-write` in docker to store results and create datasets, which requires that you can write to these outside of the docker container. This doesn't seem to be the case in your setup.