|
17 | 17 | from ert.constant_filenames import ERROR_file
|
18 | 18 | from ert.load_status import LoadStatus
|
19 | 19 | from ert.storage.realization_storage_state import RealizationStorageState
|
| 20 | +from ert.trace import tracer |
20 | 21 |
|
21 | 22 | from .driver import Driver, FailedSubmit
|
22 | 23 |
|
@@ -147,30 +148,31 @@ async def run(
|
147 | 148 | checksum_lock: asyncio.Lock,
|
148 | 149 | max_submit: int = 1,
|
149 | 150 | ) -> None:
|
150 |
| - self._requested_max_submit = max_submit |
151 |
| - for attempt in range(max_submit): |
152 |
| - await self._submit_and_run_once(sem) |
153 |
| - |
154 |
| - if self.returncode.cancelled() or self._scheduler._cancelled: |
155 |
| - break |
156 |
| - |
157 |
| - if self.returncode.result() == 0: |
158 |
| - if self._scheduler._manifest_queue is not None: |
159 |
| - await self._verify_checksum(checksum_lock) |
160 |
| - async with forward_model_ok_lock: |
161 |
| - await self._handle_finished_forward_model() |
162 |
| - break |
163 |
| - |
164 |
| - if attempt < max_submit - 1: |
165 |
| - message = ( |
166 |
| - f"Realization {self.iens} failed, " |
167 |
| - f"resubmitting for attempt {attempt+2} of {max_submit}" |
168 |
| - ) |
169 |
| - logger.warning(message) |
170 |
| - self.returncode = asyncio.Future() |
171 |
| - self.started.clear() |
172 |
| - else: |
173 |
| - await self._send(JobState.FAILED) |
| 151 | + with tracer.start_as_current_span(f"{__name__}.run.realization_{self.iens}"): |
| 152 | + self._requested_max_submit = max_submit |
| 153 | + for attempt in range(max_submit): |
| 154 | + await self._submit_and_run_once(sem) |
| 155 | + |
| 156 | + if self.returncode.cancelled() or self._scheduler._cancelled: |
| 157 | + break |
| 158 | + |
| 159 | + if self.returncode.result() == 0: |
| 160 | + if self._scheduler._manifest_queue is not None: |
| 161 | + await self._verify_checksum(checksum_lock) |
| 162 | + async with forward_model_ok_lock: |
| 163 | + await self._handle_finished_forward_model() |
| 164 | + break |
| 165 | + |
| 166 | + if attempt < max_submit - 1: |
| 167 | + message = ( |
| 168 | + f"Realization {self.iens} failed, " |
| 169 | + f"resubmitting for attempt {attempt+2} of {max_submit}" |
| 170 | + ) |
| 171 | + logger.warning(message) |
| 172 | + self.returncode = asyncio.Future() |
| 173 | + self.started.clear() |
| 174 | + else: |
| 175 | + await self._send(JobState.FAILED) |
174 | 176 |
|
175 | 177 | async def _max_runtime_task(self) -> None:
|
176 | 178 | assert self.real.max_runtime is not None
|
|
0 commit comments