.net-core - Microsoft Hive ODBC 驱动程序在 .Net 核心应用程序中失败
问题描述
我正在使用 Microsoft Hive ODBC 驱动程序 (v2.6.7) 从我的 .net 核心应用程序 (netcoreapp3.1) 的 Windows Azure HDInsight 服务中获取数据。经过数百次成功查询后,我的应用程序崩溃了,没有任何异常引发退出代码 -1,073,740,791 (0xffffffff)。在 Windows 事件日志中,我看到以下错误:
Faulting application name: dotnet.exe, version: 3.100.119.60804, time stamp: 0x5dedc132
Faulting module name: HiveODBC64.dll, version: 2.6.7.1007, time stamp: 0x5d6978a4
Exception code: 0xc0000409
Fault offset: 0x0000000000c86dfc
Faulting process id: 0x4fb8
Faulting application start time: 0x01d68683f7412b76
Faulting application path: C:\Program Files\dotnet\dotnet.exe
Faulting module path: C:\Program Files\Microsoft Hive ODBC Driver\lib\HiveODBC64.dll
Report Id: b7354942-fdf5-4bdd-bab4-f26418c83f04
Faulting package full name:
Faulting package-relative application ID:
在 ODBC 驱动程序日志中,我看到:
Sep 09 11:49:45.082 DEBUG 9252 HardyTCLIServiceUtils::ThrowOnNotSuccess: Backend returned non-SUCCESS status for operation GetColumns:
TStatus.statusCode=ERROR_STATUS
TStatus.infoMessages="*java.nio.BufferUnderflowException:null:35:34""java.nio.Buffer:nextGetIndex:Buffer.java:506""java.nio.HeapByteBuffer:getLong:HeapByteBuffer.java:425""org.apache.hive.service.cli.HandleIdentifier:<init>:HandleIdentifier.java:46""org.apache.hive.service.cli.Handle:<init>:Handle.java:38""org.apache.hive.service.cli.SessionHandle:<init>:SessionHandle.java:45""org.apache.hive.service.cli.SessionHandle:<init>:SessionHandle.java:41""org.apache.hive.service.cli.thrift.ThriftCLIService:GetColumns:ThriftCLIService.java:600""org.apache.hive.service.cli.thrift.TCLIService$Processor$GetColumns:getResult:TCLIService.java:1497""org.apache.hive.service.cli.thrift.TCLIService$Processor$GetColumns:getResult:TCLIService.java:1482""org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39""org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39""org.apache.thrift.server.TServlet:doPost:TServlet.java:83""org.apache.hive.service.cli.thrift.ThriftHttpServlet:doPost:ThriftHttpServlet.java:206""javax.servlet.http.HttpServlet:service:HttpServlet.java:727""javax.servlet.http.HttpServlet:service:HttpServlet.java:820""org.eclipse.jetty.servlet.ServletHolder:handle:ServletHolder.java:565""org.eclipse.jetty.servlet.ServletHandler:doHandle:ServletHandler.java:479""org.eclipse.jetty.server.session.SessionHandler:doHandle:SessionHandler.java:225""org.eclipse.jetty.server.handler.ContextHandler:doHandle:ContextHandler.java:1031""org.eclipse.jetty.servlet.ServletHandler:doScope:ServletHandler.java:406""org.eclipse.jetty.server.session.SessionHandler:doScope:SessionHandler.java:186""org.eclipse.jetty.server.handler.ContextHandler:doScope:ContextHandler.java:965""org.eclipse.jetty.server.handler.ScopedHandler:handle:ScopedHandler.java:117""org.eclipse.jetty.server.handler.HandlerWrapper:handle:HandlerWrapper.java:111""org.eclipse.jetty.server.Server:handle:Server.java:345""org.eclipse.jetty.server.AbstractHttpConnection:handleRequest:AbstractHttpConnection.java:449""org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler:content:AbstractHttpConnection.java:925""org.eclipse.jetty.http.HttpParser:parseNext:HttpParser.java:857""org.eclipse.jetty.http.HttpParser:parseAvailable:HttpParser.java:235""org.eclipse.jetty.server.AsyncHttpConnection:handle:AsyncHttpConnection.java:76""org.eclipse.jetty.io.nio.SelectChannelEndPoint:handle:SelectChannelEndPoint.java:609""org.eclipse.jetty.io.nio.SelectChannelEndPoint$1:run:SelectChannelEndPoint.java:45""java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1149""java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:624""java.lang.Thread:run:Thread.java:748"
TStatus.sqlState=
TStatus.errorCode=0
TStatus.errorMessage=""
TStatus.__isset.errorCode: false
TStatus.__isset.errorMessage: false
TStatus.__isset.infoMessages: true
TStatus.__isset.sqlState: false
Sep 09 11:49:45.082 TRACE 9252 HardyTable::~HardyTable: +++++ enter +++++
Sep 09 11:49:45.082 TRACE 9252 HardyResultSetBase::~HardyResultSetBase: +++++ enter +++++
Sep 09 11:49:45.082 INFO 9252 HardyDataEngine::Prepare: Exception caught while parsing statement: [Microsoft][Hardy] (61) Server returned error with no error message during operation: GetColumns
TStatus.statusCode=ERROR_STATUS
TStatus.infoMessages="*java.nio.BufferUnderflowException:null:35:34""java.nio.Buffer:nextGetIndex:Buffer.java:506""java.nio.HeapByteBuffer:getLong:HeapByteBuffer.java:425""org.apache.hive.service.cli.HandleIdentifier:<init>:HandleIdentifier.java:46""org.apache.hive.service.cli.Handle:<init>:Handle.java:38""org.apache.hive.service.cli.SessionHandle:<init>:SessionHandle.java:45""org.apache.hive.service.cli.SessionHandle:<init>:SessionHandle.java:41""org.apache.hive.service.cli.thrift.ThriftCLIService:GetColumns:ThriftCLIService.java:600""org.apache.hive.service.cli.thrift.TCLIService$Processor$GetColumns:getResult:TCLIService.java:1497""org.apache.hive.service.cli.thrift.TCLIService$Processor$GetColumns:getResult:TCLIService.java:1482""org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39""org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39""org.apache.thrift.server.TServlet:doPost:TServlet.java:83""org.apache.hive.service.cli.thrift.ThriftHttpServlet:doPost:ThriftHttpServlet.java:206""javax.servlet.http.HttpServlet:service:HttpServlet.java:727""javax.servlet.http.HttpServlet:service:HttpServlet.java:820""org.eclipse.jetty.servlet.ServletHolder:handle:ServletHolder.java:565""org.eclipse.jetty.servlet.ServletHandler:doHandle:ServletHandler.java:479""org.eclipse.jetty.server.session.SessionHandler:doHandle:SessionHandler.java:225""org.eclipse.jetty.server.handler.ContextHandler:doHandle:ContextHandler.java:1031""org.eclipse.jetty.servlet.ServletHandler:doScope:ServletHandler.java:406""org.eclipse.jetty.server.session.SessionHandler:doScope:SessionHandler.java:186""org.eclipse.jetty.server.handler.ContextHandler:doScope:ContextHandler.java:965""org.eclipse.jetty.server.handler.ScopedHandler:handle:ScopedHandler.java:117""org.eclipse.jetty.server.handler.HandlerWrapper:handle:HandlerWrapper.java:111""org.eclipse.jetty.server.Server:handle:Server.java:345""org.eclipse.jetty.server.AbstractHttpConnection:handleRequest:AbstractHttpConnection.java:449""org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler:content:AbstractHttpConnection.java:925""org.eclipse.jetty.http.HttpParser:parseNext:HttpParser.java:857""org.eclipse.jetty.http.HttpParser:parseAvailable:HttpParser.java:235""org.eclipse.jetty.server.AsyncHttpConnection:handle:AsyncHttpConnection.java:76""org.eclipse.jetty.io.nio.SelectChannelEndPoint:handle:SelectChannelEndPoint.java:609""org.eclipse.jetty.io.nio.SelectChannelEndPoint$1:run:SelectChannelEndPoint.java:45""java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1149""java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:624""java.lang.Thread:run:Thread.java:748"
TStatus.sqlState=
TStatus.errorCode=0
TStatus.errorMessage=""
TStatus.__isset.errorCode: false
TStatus.__isset.errorMessage: false
TStatus.__isset.infoMessages: true
TStatus.__isset.sqlState: false
有什么方法可以避免这个错误吗?或者至少要捕获我的 dotnet 应用程序中的错误?
解决方案
推荐阅读
- excel - 使用 CountIfs 检查单元格是否有日期或为空
- python - 将文件路径传输到另一个类并将项目添加到列表
- delphi - 为什么在抑制 WM_PASTE 后数据集的状态会更改为 dsEdit?
- reactjs - 使用 catch 在 redux-saga 中进行 Rest API axios 错误处理
- r - 将值与列名组合为新列
- java - 处理大量输入数据时出现 StackOverflow 错误
- vba - 基于模板的电子邮件中丢失的 HTML 格式
- docker-swarm - docker swarm 如何杀死不健康的容器
- javascript - 在网页上以展开模式在谷歌地图中显示表单
- sql - 根据数量列中的值将行拆分为多行