gianm commented on issue #13123:
URL: https://github.com/apache/druid/issues/13123#issuecomment-1251430469

   I'm very interested in improving our error reporting, so I thank you for 
writing this up.
   
   I wanted to note that there is a similar concept to the proposed 
DruidException in the MSQ task engine. If we introduce a Druid-wide system — 
which would be great — it'd be good to be able to merge the MSQ task error 
system into that. It's of course different in the details, but I think we could 
work that out.
   
   When you get an error from an MSQ task, it looks like the following. There's 
a full error report (including hostname, stack trace) but there's also a 
friendly `error` section with information that is meant to make sense to an end 
user. In the code, the model class for the full error report (including 
hostname, stack trace) is `MSQErrorReport`. The model class for the friendly 
error (the `error` key) is `MSQFault`.
   
   ```json
   "errorReport": {
     "taskId": "query-97e1513c-6c57-4484-8f01-ab4611af13de",
     "host": "ip-10-201-5-146.ec2.internal:8100",
     "error": {
       "errorCode": "TooManyColumns",
       "numColumns": 2003,
       "maxColumns": 2000,
       "errorMessage": "Too many output columns (requested = 2003, max = 2000)"
     },
     "exceptionStackTrace": "org.apache.druid.msq.indexing.error.MSQException: 
TooManyColumns: Too many output columns (requested = 2003, max = 2000)\n\tat 
org.apache.druid.msq.exec.QueryValidator.validateQueryDef(QueryValidator.java:48)\n\tat
 
org.apache.druid.msq.exec.ControllerImpl.initializeQueryDefAndState(ControllerImpl.java:529)\n\tat
 
org.apache.druid.msq.exec.ControllerImpl.runTask(ControllerImpl.java:346)\n\tat 
org.apache.druid.msq.exec.ControllerImpl.run(ControllerImpl.java:296)\n\tat 
org.apache.druid.msq.indexing.MSQControllerTask.run(MSQControllerTask.java:192)\n\tat
 
org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:477)\n\tat
 
org.apache.druid.indexing.overlord.SingleTaskBackgroundRunner$SingleTaskBackgroundRunnerCallable.call(SingleTaskBackgroundRunner.java:449)\n\tat
 java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat 
java.base/java.util.concurrent.ThreadPoolExecutor.
 runWorker(ThreadPoolExecutor.java:1128)\n\tat 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat
 java.base/java.lang.Thread.run(Thread.java:829)\n"
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to