diff --git a/mephisto/abstractions/architects/ec2/ec2_architect.py b/mephisto/abstractions/architects/ec2/ec2_architect.py index 79b1137e9..43be1e6ee 100644 --- a/mephisto/abstractions/architects/ec2/ec2_architect.py +++ b/mephisto/abstractions/architects/ec2/ec2_architect.py @@ -306,7 +306,7 @@ def __setup_ec2_server(self) -> str: server_dir, ) - # TODO: Remove this kack to address sporadic ConnectionRefusedError + # TODO: Remove this hack to address sporadic ConnectionRefusedError print("EC2: Waiting to establish connection...") time.sleep(10) diff --git a/mephisto/abstractions/providers/prolific/prolific_unit.py b/mephisto/abstractions/providers/prolific/prolific_unit.py index b62192e1c..01f6b9944 100644 --- a/mephisto/abstractions/providers/prolific/prolific_unit.py +++ b/mephisto/abstractions/providers/prolific/prolific_unit.py @@ -160,6 +160,8 @@ def get_status(self) -> str: requester: 'ProlificRequester' = self.get_requester() client = self._get_client(requester.requester_name) + + # time.sleep(2) # Prolific servers may take time to bring their data up-to-date study = prolific_utils.get_study(client, prolific_study_id) if study is None: @@ -173,7 +175,14 @@ def get_status(self) -> str: elif study.status == StudyStatus.UNPUBLISHED: external_status = AssignmentState.COMPLETED elif study.status == StudyStatus.ACTIVE: - external_status = AssignmentState.LAUNCHED + if self.worker_id is None: + # Check for NULL worker_id to prevent accidental reversal of unit's progress + if external_status != AssignmentState.LAUNCHED: + logger.debug( + f'Moving Unit {self.id} status from ' + f'`{external_status}` to `{AssignmentState.LAUNCHED}`' + ) + external_status = AssignmentState.LAUNCHED elif study.status == StudyStatus.SCHEDULED: # TODO (#1008): Choose correct mapping pass