SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION”...

本文详细记录了在SQL Server 2017中配置Oracle Linked Server时遇到的异常错误"Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION"的问题。问题源于"Allow InProcess"选项,微软技术支持建议取消该选项并更新权限设置,实施后问题得到解决。但该问题仅在特定版本SQL Server 2017中出现,且简单查询可能不会触发此bug。
摘要由CSDN通过智能技术生成

SQL Server 2017的Linked Server配置触发的bugException Code    = c0000005 EXCEPTION_ACCESS_VIOLATION

 

现象描述:

 

 

数据库版本:SQL Server 2017 (RTM-CU14) (KB4484710) - 14.0.3076.1 (X64) 出现大量的Dump File文件,如下所示:

 

clip_image001

 

其中一个SQLDump748.txt如下所示:

 

 

Current time is 05:00:20 05/17/19.                                                                               
=====================================================================                                            
       BugCheck Dump                                                                                             
=====================================================================                                            
                                                                                                                 
This file is generated by Microsoft SQL Server                                                                   
version 14.0.3076.1                                                                                              
upon detection of fatal unexpected error. Please return this file,                                               
the query or program that produced the bugcheck, the database and                                                
the error log, and any other pertinent information with a Service Request.                                       
                                                                                                                 
                                                                                                                 
Computer type is Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz.                                                       
Bios Version is INTEL  - 6040000                                                                                 
PhoenixBIOS 4.0 Release 6.0                                                                                      
8 X64 level 8664, 2 Mhz processor (s).                                                                           
Windows NT 6.2 Build 9200 CSD .                                                                                  
                                     
Memory                               
MemoryLoad = 92%                     
Total Physical = 131071 MB           
Available Physical = 10157 MB        
Total Page File = 262143 MB          
Available Page File = 135435 MB      
Total Virtual = 134217727 MB         
Available Virtual = 133928023 MB     
***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\LOG\SQLDump7265.txt  
SqlDumpExceptionHandler: Process 59 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is 
terminating this process.                                                                                        
* *******************************************************************************                                
*                                                                                                                
* BEGIN STACK DUMP:                                                                                              
*   05/17/19 05:00:20 spid 59                                                                                    
*                                                                                                                
*                                                                                                                
*   Exception Address = 000001DF83DBC4AC Module(oranls11+000000000004C4AC)                                       
*   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION                                                      
*   Access Violation occurred writing address 00000000E7DF2E60                                                   
* Input Buffer 140 bytes -                                                                                       
*             EXEC [DBO].[usp_sdAutoUploadPriceAndDeliveryDateToESCM_New]                                        
*                                                                                                                
*                                                                                                                
MODULE                          BASE      END       SIZE                                                      
* sqlservr                       00007FF6C47C0000  00007FF6C483EFFF  0007f000                                    
* ntdll                          00007FFE18480000  00007FFE1864FFFF  001d0000                                    
* KERNEL32                       00007FFE16BC0000  00007FFE16C6BFFF  000ac000                                    
* KERNELBASE                     00007FFE15340000  00007FFE1555CFFF  0021d000                                    
* SYSFER                         000000006E400000  000000006E494FFF  00095000                                    
* ADVAPI32                       00007FFE16D10000  00007FFE16DB1FFF  000a2000                                    
* msvcrt                         00007FFE165D0000  00007FFE1666DFFF  0009e000                                    
* sechost                        00007FFE182D0000  00007FFE18328FFF  00059000                                    
* RPCRT4                         00007FFE16910000  00007FFE16A30FFF  00121000                                    
* ole32                          00007FFE15CE0000  00007FFE15E17FFF  00138000                                    
* combase                        00007FFE15A10000  00007FFE15CD4FFF  002c5000                                    
* ucrtbase                       00007FFE149E0000  00007FFE14AD3FFF  000f4000                                    
* bcryptPrimitives               00007FFE14BF0000  00007FFE14C59FFF  0006a000                                    
* GDI32                          00007FFE16420000  00007FFE16453FFF  00034000                                    
* gdi32full                      00007FFE15610000  00007FFE15790FFF  00181000                                    
* USER32                         00007FFE15E80000  00007FFE15FE4FFF  00165000                                    
* NETAPI32                       00007FFE0C660000  00007FFE0C677FFF  00018000                                    
* pdh                            00007FFE11390000  00007FFE113DCFFF  0004d000                                    
* win32u                         00007FFE14970000  00007FFE1498DFFF  0001e000                                    
* sqlmin                         00007FFE02EC0000  00007FFE060B8FFF  031f9000                                    
* sqlTsEs                        00007FFE060C0000  00007FFE069EEFFF  0092f000                                    
* sqllang                        00007FFE00740000  00007FFE02EBAFFF  0277b000                                    
* SQLOS                          00007FFE06EF0000  00007FFE06EF6FFF  00007000                                    
* sqldk                          00007FFE069F0000  00007FFE06EEBFFF  004fc000                                    
* OLEAUT32                       00007FFE16500000  00007FFE165BEFFF  000bf000                                    
* msvcp_win                      00007FFE157A0000  00007FFE1583BFFF  0009c000                                    
* opends60                       00007FFE00730000  00007FFE00738FFF  00009000                                    
* qds                            00007FFE00600000  00007FFE0072BFFF  0012c000                                    
* svl                            00007FFE004E0000  00007FFE0050DFFF  0002e000                                    
* CRYPT32                        00007FFE15840000  00007FFE15A08FFF  001c9000                                    
* MSASN1                         00007FFE14910000  00007FFE1491FFFF  00010000                                    
* WS2_32                         00007FFE18350000  00007FFE183B9FFF  0006a000                                    
* MSVCP120                       00007FFE0BDF0000  00007FFE0BE95FFF  000a6000                                    
* MSVCR120                       00007FFE0D6B0000  00007FFE0D79EFFF  000ef000                                    
* WINMM                          00007FFE12CF0000  00007FFE12D12FFF  00023000                                    
* Secur32                        00007FFE11250000  00007FFE1125BFFF  0000c000                                    
* WINHTTP                        00007FFE11280000  00007FFE1134BFFF  000cc000                                    
* ODBC32                         00007FFE00430000  00007FFE004DEFFF  000af000                                    
* secforwarder                   00007FFE00510000  00007FFE00519FFF  0000a000                                    
* WINMMBASE                      00007FFE12C90000  00007FFE12CBAFFF  0002b000                                    
* cfgmgr32                       00007FFE14990000  00007FFE149D1FFF  00042000                                    
* bcrypt                         00007FFE14820000  00007FFE1484AFFF  0002b000                                    
* ncrypt                         00007FFE14430000  00007FFE14455FFF  00026000                                    
* NTASN1                         00007FFE143F0000  00007FFE1442AFFF  0003b000                                    
* SSPICLI                        00007FFE14550000  00007FFE1457BFFF  0002c000                                    
* NETUTILS                       00007FFE13F70000  00007F
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对下面代码每一步含义进行注释 def convert_to_doubly_linked_list(self): if not self.root: return None def convert(root): if not root.left and not root.right: return ListNode(root.val) if not root.left: right_head = convert(root.right) right_tail = right_head while right_tail.next: right_tail = right_tail.next cur_node = ListNode(root.val, None, right_head) right_head.prev = cur_node return cur_node if not root.right: left_tail = convert(root.left) left_head = left_tail while left_head.prev: left_head = left_head.prev cur_node = ListNode(root.val, left_tail, None) left_tail.next = cur_node return cur_node left_tail = convert(root.left) right_head = convert(root.right) left_head = left_tail while left_head.prev: left_head = left_head.prev right_tail = right_head while right_tail.next: right_tail = right_tail.next cur_node = ListNode(root.val, left_tail, right_head) left_tail.next = cur_node right_head.prev = cur_node return left_head return convert(self.root) def inorder_traversal(self, root): if not root: return self.inorder_traversal(root.left) print(root.val, end=' ') self.inorder_traversal(root.right) def print_bst(self): self.inorder_traversal(self.root) print() def traverse_doubly_linked_list(self, head): cur_node = head while cur_node: print(cur_node.val, end=' ') cur_node = cur_node.next print() def reverse_traverse_doubly_linked_list(self, head): cur_node = head while cur_node.next: cur_node = cur_node.next while cur_node: print(cur_node.val, end=' ') cur_node = cur_node.prev print()
最新发布
06-12
这段代码是一个二叉搜索树(BST)转化为双向链表的函数,同时提供了打印BST和遍历双向链表的函数。 - `def convert_to_doubly_linked_list(self):`:定义一个将BST转化为双向链表的函数。 - `if not self.root:`:如果BST为空,则返回None。 - `def convert(root):`:定义一个递归函数,将BST转化为双向链表。 - `if not root.left and not root.right:`:如果该节点没有左右子树,返回一个只包含该节点值的ListNode。 - `if not root.left:`:如果该节点没有左子树,将右子树转化为双向链表,并将节点值作为新的头结点,返回该节点。 - `if not root.right:`:如果该节点没有右子树,将左子树转化为双向链表,并将节点值作为新的尾结点,返回该节点。 - `left_tail = convert(root.left)`:将左子树转化为双向链表,并返回左子树的尾结点。 - `right_head = convert(root.right)`:将右子树转化为双向链表,并返回右子树的头结点。 - `left_head = left_tail`:将左子树的头结点设置为左子树的尾结点。 - `while left_head.prev:`:找到左子树双向链表的头结点。 - `right_tail = right_head`:将右子树的尾结点设置为右子树的头结点。 - `while right_tail.next:`:找到右子树双向链表的尾结点。 - `cur_node = ListNode(root.val, left_tail, right_head)`:创建一个新的节点,值为当前节点值,左指针指向左子树双向链表的尾结点,右指针指向右子树双向链表的头结点。 - `left_tail.next = cur_node`:将左子树双向链表的尾结点的右指针指向新节点。 - `right_head.prev = cur_node`:将右子树双向链表的头结点的左指针指向新节点。 - `return left_head`:返回双向链表的头结点。 - `return convert(self.root)`:调用递归函数convert并返回结果。 - `def inorder_traversal(self, root):`:定义一个中序遍历BST的函数。 - `if not root:`:如果该节点为空,则返回。 - `self.inorder_traversal(root.left)`:递归遍历左子树。 - `print(root.val, end=' ')`:输出当前节点的值。 - `self.inorder_traversal(root.right)`:递归遍历右子树。 - `def print_bst(self):`:定义一个打印BST的函数。 - `self.inorder_traversal(self.root)`:调用中序遍历函数遍历BST。 - `print()`:输出一个空行。 - `def traverse_doubly_linked_list(self, head):`:定义一个遍历双向链表的函数。 - `cur_node = head`:将当前节点指向链表的头结点。 - `while cur_node:`:遍历整个链表,直到当前节点为空。 - `print(cur_node.val, end=' ')`:输出当前节点的值。 - `cur_node = cur_node.next`:将当前节点指向下一个节点。 - `print()`:输出一个空行。 - `def reverse_traverse_doubly_linked_list(self, head):`:定义一个逆序遍历双向链表的函数。 - `cur_node = head`:将当前节点指向链表的头结点。 - `while cur_node.next:`:找到链表的尾结点。 - `cur_node = cur_node.next`:将当前节点指向下一个节点。 - `while cur_node:`:逆序遍历整个链表,直到当前节点为空。 - `print(cur_node.val, end=' ')`:输出当前节点的值。 - `cur_node = cur_node.prev`:将当前节点指向上一个节点。 - `print()`:输出一个空行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值