|
34 | 34 | import org.slf4j.LoggerFactory; |
35 | 35 |
|
36 | 36 | import java.io.FileNotFoundException; |
| 37 | +import java.util.ArrayList; |
37 | 38 | import java.util.Collections; |
38 | 39 | import java.util.Iterator; |
39 | 40 | import java.util.List; |
@@ -113,6 +114,7 @@ public void convertFailedTsFilesToTablets() { |
113 | 114 | private void convertAndRetry() { |
114 | 115 | final LoadTsFileDataTypeConverter converter = |
115 | 116 | new LoadTsFileDataTypeConverter(queryContext, isGeneratedByPipe); |
| 117 | + final List<String> failureDetails = new ArrayList<>(); |
116 | 118 |
|
117 | 119 | final Iterator<Integer> iterator = failedTsFileNodeIndexes.iterator(); |
118 | 120 | while (iterator.hasNext()) { |
@@ -141,21 +143,34 @@ private void convertAndRetry() { |
141 | 143 | .LOAD_SUCCESSFULLY_CONVERTED_TSFILE_ARG_INTO_TABLETS_AND_INSERTED, |
142 | 144 | filePath); |
143 | 145 | } else { |
144 | | - LOGGER.warn( |
145 | | - DataNodeQueryMessages.LOAD_FAILED_TO_CONVERT_TO_TABLETS_FROM_TSFILE_ARG_STATUS_ARG, |
146 | | - filePath, |
147 | | - status); |
| 146 | + final String message = |
| 147 | + status == null |
| 148 | + ? String.format( |
| 149 | + DataNodeQueryMessages |
| 150 | + .EXCEPTION_FAILED_TO_CONVERT_TSFILE_ARG_TO_TABLETS_ARG_96358FDD, |
| 151 | + filePath, |
| 152 | + DataNodeQueryMessages.MESSAGE_TABLET_CONVERSION_RETURNED_NO_STATUS_88BAB5D3) |
| 153 | + : String.format( |
| 154 | + DataNodeQueryMessages |
| 155 | + .EXCEPTION_FAILED_TO_CONVERT_TSFILE_ARG_TO_TABLETS_STATUS_ARG_E7C9F477, |
| 156 | + filePath, |
| 157 | + status); |
| 158 | + failureDetails.add(message); |
| 159 | + LOGGER.warn(message); |
148 | 160 | } |
149 | 161 | } catch (final Exception e) { |
150 | | - LOGGER.warn( |
151 | | - DataNodeQueryMessages.LOAD_FAILED_TO_CONVERT_TO_TABLETS_FROM_TSFILE_ARG_EXCEPTION_ARG, |
152 | | - filePath, |
153 | | - e.getMessage(), |
154 | | - e); |
| 162 | + final String message = |
| 163 | + String.format( |
| 164 | + DataNodeQueryMessages |
| 165 | + .EXCEPTION_FAILED_TO_CONVERT_TSFILE_ARG_TO_TABLETS_ARG_96358FDD, |
| 166 | + filePath, |
| 167 | + e); |
| 168 | + failureDetails.add(message); |
| 169 | + LOGGER.warn(message, e); |
155 | 170 | } |
156 | 171 | } |
157 | 172 |
|
158 | | - resolveFinalState(); |
| 173 | + resolveFinalState(failureDetails); |
159 | 174 | } |
160 | 175 |
|
161 | 176 | private TSStatus executeTableModelConversion( |
@@ -185,25 +200,20 @@ private TSStatus executeTreeModelConversion( |
185 | 200 | return converter.convertForTreeModel(statement).orElse(null); |
186 | 201 | } |
187 | 202 |
|
188 | | - private void resolveFinalState() { |
| 203 | + private void resolveFinalState(final List<String> failureDetails) { |
189 | 204 | if (failedTsFileNodeIndexes.isEmpty()) { |
190 | 205 | LOGGER.info(DataNodeQueryMessages.LOAD_ALL_FAILED_TSFILES_ARE_CONVERTED_TO_TABLETS); |
191 | 206 | stateMachine.transitionToFinished(); |
192 | 207 | return; |
193 | 208 | } |
194 | 209 |
|
195 | | - final String remainingFailedFiles = getFailedFilePathsString(); |
196 | | - LOGGER.warn( |
197 | | - DataNodeQueryMessages |
198 | | - .LOG_LOAD_FAILED_TO_LOAD_SOME_TSFILES_BY_CONVERTING_THEM_INTO_TABLETS_FAILED_TSFILES_ARG_7D9DB9C3, |
199 | | - remainingFailedFiles); |
200 | | - |
201 | | - stateMachine.transitionToFailed( |
202 | | - new LoadFileException( |
203 | | - String.format( |
204 | | - DataNodeQueryMessages |
205 | | - .LOG_LOAD_FAILED_TO_LOAD_SOME_TSFILES_BY_CONVERTING_THEM_INTO_TABLETS_FAILED_TSFILES_ARG_7D9DB9C3, |
206 | | - remainingFailedFiles))); |
| 210 | + final String message = |
| 211 | + String.format( |
| 212 | + DataNodeQueryMessages |
| 213 | + .EXCEPTION_FAILED_TO_LOAD_TSFILES_AFTER_TABLET_CONVERSION_DETAILS_ARG_53647EC5, |
| 214 | + String.join("; ", failureDetails)); |
| 215 | + LOGGER.warn(message); |
| 216 | + stateMachine.transitionToFailed(new LoadFileException(message)); |
207 | 217 | } |
208 | 218 |
|
209 | 219 | // ------------------------------------------------------------------------- |
|
0 commit comments