Repository: facebookresearch/ParlAI

Issue:
Can not download p6tyohj.tgz

when I run this command shown at https://parl.ai/#getstarted:

> python examples/eval_model.py -m ir_baseline -t "#moviedd-reddit" -dt valid

It can correctly downloads moviedialog.tar.gz, but can't downlad p6tyohj.tgz.
as following: 
```
[ downloading: http://parl.ai/downloads/moviedialog/moviedialog.tar.gz to path/ParlAI/data/MovieDialog/moviedialog.tar.gz ]
Downloading moviedialog.tar.gz: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████| 224M/224M [00:23<00:00, 9.33MB/s]
[ Checksum Successful ]
unpacking moviedialog.tar.gz
[ downloading: http://tinyurl.com/p6tyohj to path/ParlAI/data/MovieDialog/movie_dialog_dataset/task4_reddit/p6tyohj.tgz ]
Connection error, retrying. (4 retries left)
Connection error, retrying. (3 retries left)
Connection error, retrying. (2 retries left)
Connection error, retrying. (1 retries left)
Connection error, retrying. (0 retries left)
Retried too many times, stopped retrying.
Traceback (most recent call last):
  File "path/ParlAI/parlai/core/worlds.py", line 1116, in _create_task_agents
    task_agents = my_module.create_agents(opt, task)
AttributeError: module 'parlai.tasks.moviedialog.agents' has no attribute 'create_agents'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "examples/eval_model.py", line 17, in <module>
    eval_model(opt, print_parser=parser)
  File "path/ParlAI/parlai/scripts/eval_model.py", line 117, in eval_model
    task_report = _eval_single_world(opt, agent, task)
  File "path/ParlAI/parlai/scripts/eval_model.py", line 69, in _eval_single_world
    world = create_task(task_opt, agent)  # create worlds for tasks
  File "path/ParlAI/parlai/core/worlds.py", line 1221, in create_task
    world = create_task_world(opt, user_agents, default_world=default_world)
  File "path/ParlAI/parlai/core/worlds.py", line 1178, in create_task_world
    opt, user_agents, default_world=default_world
  File "path/ParlAI/parlai/core/worlds.py", line 1126, in _get_task_world
    task_agents = _create_task_agents(opt)
  File "path/ParlAI/parlai/core/worlds.py", line 1119, in _create_task_agents
    return create_task_agent_from_taskname(opt)
  File "path/ParlAI/parlai/core/agents.py", line 837, in create_task_agent_from_taskname
    task_agents = teacher_class(opt)
  File "path/ParlAI/parlai/tasks/moviedialog/agents.py", line 88, in __init__
    opt['datafile'], opt['cands_datafile'] = _path(self.task, opt)
  File "path/ParlAI/parlai/tasks/moviedialog/agents.py", line 36, in _path
    build(opt)
  File "path/ParlAI/parlai/tasks/moviedialog/build.py", line 43, in build
    RESOURCES[1].download_file(dpath2)
  File "path/ParlAI/parlai/core/build_data.py", line 81, in download_file
    download(self.url, dpath, self.file_name)
  File "path/ParlAI/parlai/core/build_data.py", line 216, in download
    raise RuntimeWarning('Connection broken too many times. Stopped retrying.')
RuntimeWarning: Connection broken too many times. Stopped retrying.
Downloading p6tyohj.tgz: 0.00B [00:31, ?B/s]
```

`
RESOURCES = [
    DownloadableFile(
        'http://parl.ai/downloads/moviedialog/moviedialog.tar.gz',
        'moviedialog.tar.gz',
        '9b168d30111f13b9cc50e6a15885adae8f86bc0bb7a124d435c43fd0f7e2a9c7',
    ),
    DownloadableFile(
        'http://tinyurl.com/p6tyohj',  # maybe this URL is wrong.
        'p6tyohj.tgz',
        '6316a6a5c563bc3c133a4a1e611d8ca638c61582f331c500697d9090efd215bb',
    ),
]
`




Discussion:
Hmm yeah that URL looks unreliable. Thanks for reporting

Resolving patch:
diff --git a/parlai/tasks/moviedialog/build.py b/parlai/tasks/moviedialog/build.py
--- a/parlai/tasks/moviedialog/build.py
+++ b/parlai/tasks/moviedialog/build.py
@@ -16,8 +16,8 @@
         '9b168d30111f13b9cc50e6a15885adae8f86bc0bb7a124d435c43fd0f7e2a9c7',
     ),
     DownloadableFile(
-        'http://tinyurl.com/p6tyohj',
-        'p6tyohj.tgz',
+        'http://cs.nyu.edu/~xiang/task4_reddit.tgz',
+        'task4_reddit.tgz',
         '6316a6a5c563bc3c133a4a1e611d8ca638c61582f331c500697d9090efd215bb',
     ),
 ]
@@ -25,7 +25,8 @@
 
 def build(opt):
     dpath = os.path.join(opt['datapath'], 'MovieDialog')
-    version = '3'
+    # 2019-12-11 bump version with changed url
+    version = '3.01'
 
     if not build_data.built(dpath, version_string=version):
         print('[building data: ' + dpath + ']')


Test patch: