MPFListener.exe crashed because of sqloledb.dll?
Recently, I have seen a couple of our customers encountered the following where the MPFListner.exe (Provisioning Auditing and Recovery Service) crashed immediately after you try to start it. You can try to reboot the machine, or restart the Provisioning Auditing and Recovery Service multiple times; it just won’t recover from it.
The service will get started and then it will crashed right away giving the following error,
Problem Description: Event Type: Error
Event Source: Application Error
Event Category: (100)
Event ID: 1000
Date: 1/1/2009
Time: 1:00:00 PM
User: N/A
Computer: <ServerName>
Description:
Faulting application MPFListener.exe, version 13.3.609.9, faulting module sqloledb.dll, version 2000.86.3959.0, fault address 0x0004abe4.
For more information, see Help and Support Center at https://go.microsoft.com/fwlink/events.asp.
Data:
0000: 41 70 70 6c 69 63 61 74 Applicat
0008: 69 6f 6e 20 46 61 69 6c ion Fail
0010: 75 72 65 20 20 4d 50 46 ure MPF
0018: 4c 69 73 74 65 6e 65 72 Listener
0020: 2e 65 78 65 20 31 33 2e .exe 13.
0028: 33 2e 36 30 39 2e 39 20 3.609.9
0030: 69 6e 20 73 71 6c 6f 6c in sqlol
0038: 65 64 62 2e 64 6c 6c 20 edb.dll
0040: 32 30 30 30 2e 38 36 2e 2000.86.
0048: 33 39 35 39 2e 30 20 61 3959.0 a
0050: 74 20 6f 66 66 73 65 74 t offset
0058: 20 30 30 30 34 61 62 65 0004abe
0060: 34 4
With the help of some of my colleagues, we were able to track the problem down to a null value in the EventDesc field in the Event table in MPFTranLogData database. It seems that the MPFListener crashes when moving Records from MPFTranLogData to MPFAudit database and the sqloledb.dll was not able to handle the null value when it is called and crashed. Hence, as long as the data is still in the MPFTranLogData, the MPFListener will crash the moment it attempts to move the record with the null value.
A hotfix is available for this where the MPFListener will have better intelligence on dealing with this and will continue to move records over to MPFAudit without crashing like this. However, as I am writing this, you will have to contact Microsoft to obtain the hotfix.
To work around right now is this,
1. To find out if you have such records in your database,
SELECT *
FROM [MPFTranLogData].[dbo].[Events]
WHERE [EventDesc] is null
2. If you find records some there, then try to update those records by setting the EventDesc to ‘N/A’ instead of having it as null like the following,
UPDATE [MPFTranLogData].[dbo].[Events]
SET [EventDesc]=’N/A’
WHERE [EventDesc] is null
Please take note that the above steps will update the database directly. This is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified in the Terms of Use.
Thanks to Mike K and Luc G.
Comments
Anonymous
July 30, 2012
Hi, we ran into the same error on one of our servers. Your article solved the problem for us. Thank you very much!Anonymous
February 14, 2016
hai, I just want to tell you that I am just very new to blogs and seriously loved this website. More than likely I’m planning to bookmark your blog post .
You amazingly come with really good posts. Thanks a lot for sharing your blog Microsoft.
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Aceh
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bali
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Balikpapan
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bandung
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Banjarmasin
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Banten
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Batam
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bekasi
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bengkulu
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bogor
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Bontang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Cianjur
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Cikarang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Cilegon
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Cirebon
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Denpasar
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Jakarta
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Jambi
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Jember
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Karawang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Kendal
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Kudus
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Kupang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Lampung
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Madiun
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Makasar
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Malang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Maluku
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Manado
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Medan
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20NTT
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Padang
http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20BUMN
http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Terbaru
http://www.lokerjobindo.com
http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Serang
http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Tangerang