| 1800 | } |
| 1801 | |
| 1802 | void TmpFileGroup::WriteComplete( |
| 1803 | TmpWriteHandle* handle, const Status& write_status) { |
| 1804 | Status status; |
| 1805 | // Debug action for simulating disk write error. To use, specify in query options as: |
| 1806 | // 'debug_action': 'IMPALA_TMP_FILE_WRITE:<hostname>:<port>:<action>' |
| 1807 | // where <hostname> and <port> represent the impalad which execute the fragment |
| 1808 | // instances, <port> is the BE krpc port (default 27000). |
| 1809 | const Status* p_write_status = &write_status; |
| 1810 | Status debug_status = DebugAction(debug_action_, "IMPALA_TMP_FILE_WRITE", |
| 1811 | {ExecEnv::GetInstance()->krpc_address().hostname(), |
| 1812 | SimpleItoa(ExecEnv::GetInstance()->krpc_address().port())}); |
| 1813 | if (UNLIKELY(!debug_status.ok())) p_write_status = &debug_status; |
| 1814 | |
| 1815 | if (!p_write_status->ok()) { |
| 1816 | status = RecoverWriteError(handle, *p_write_status); |
| 1817 | if (status.ok()) return; |
| 1818 | } else { |
| 1819 | status = *p_write_status; |
| 1820 | } |
| 1821 | handle->WriteComplete(status); |
| 1822 | } |
| 1823 | |
| 1824 | Status TmpFileGroup::RecoverWriteError( |
| 1825 | TmpWriteHandle* handle, const Status& write_status) { |
nothing calls this directly
no test coverage detected