code: def finish_parse(self, last_lineno_seen):
          
          if self.state == self.STATES['step_in_progress']:
              # We've reached the end of the log without seeing the final "step finish"
              # marker, which would normally have triggered updating the step. As such we
              # must manually close out the current step, so things like result, finish
              # time are set for it. This ensures that the error summary for Taskcluster
              # infra failures actually lists the error that occurs at the
              # end of the log.
              self.end_step(last_lineno_seen)
docs: Clean-up/summary tasks run at the end of parsing.