Hi,
I'm sending this report from DrMemory, which shows some leaks from the
current postgres.
DrMemory is it is a reliable tool, but it is not perfect. (
https://drmemory.org/)
regards,
Ranier Vilela
Dr. Memory version 2.2.0 build 1 built on Jul 1 2019 00:42:20
Windows version: WinVer=105;Rel=1909;Build=18363;Edition=Core
Dr. Memory results for pid 24772: "postgres.exe"
Application cmdline: "postgres.exe -D c:/postgres/data -F -c
listen_addresses=localhost -k """
Recorded 117 suppression(s) from default c:\DrMemory\bin\suppress-default.txt
Error #1: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 ReadDir
[C:\dll\postgres\src\backend\storage\file\fd.c:2660]
# 4 SlruScanDirectory
[C:\dll\postgres\src\backend\access\transam\slru.c:1401]
# 5 AsyncShmemInit
[C:\dll\postgres\src\backend\commands\async.c:564]
# 6 CreateSharedMemoryAndSemaphores
[C:\dll\postgres\src\backend\storage\ipc\ipci.c:265]
# 7 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1008]
# 8 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:12.076 in thread 15692
Note: instruction: cmp %eax $0x00000018
Error #2: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 ReadDir
[C:\dll\postgres\src\backend\storage\file\fd.c:2660]
# 4 SlruScanDirectory
[C:\dll\postgres\src\backend\access\transam\slru.c:1401]
# 5 AsyncShmemInit
[C:\dll\postgres\src\backend\commands\async.c:564]
# 6 CreateSharedMemoryAndSemaphores
[C:\dll\postgres\src\backend\storage\ipc\ipci.c:265]
# 7 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1008]
# 8 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:12.076 in thread 15692
Note: instruction: data16 mov %cx -> 0x00000234(%esi,%eax,2)
Error #3: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 ReadDir
[C:\dll\postgres\src\backend\storage\file\fd.c:2660]
# 4 SlruScanDirectory
[C:\dll\postgres\src\backend\access\transam\slru.c:1401]
# 5 AsyncShmemInit
[C:\dll\postgres\src\backend\commands\async.c:564]
# 6 CreateSharedMemoryAndSemaphores
[C:\dll\postgres\src\backend\storage\ipc\ipci.c:265]
# 7 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1008]
# 8 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:12.076 in thread 15692
Note: instruction: test %eax %eax
Error #4: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3142]
# 4 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 5 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 6 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.826 in thread 15692
Note: instruction: cmp %eax $0x00000018
Error #5: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3142]
# 4 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 5 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 6 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.826 in thread 15692
Note: instruction: data16 mov %cx -> 0x00000234(%esi,%eax,2)
Error #6: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.826 in thread 15692
Note: instruction: cmp %eax $0x00000018
Error #7: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.841 in thread 15692
Note: instruction: data16 mov %cx -> 0x00000234(%esi,%eax,2)
Error #8: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.841 in thread 15692
Note: instruction: cmp %eax $0x00000206
Error #9: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.841 in thread 15692
Note: instruction: data16 mov %cx -> 0x2c(%esi,%eax,2)
Error #10: UNINITIALIZED READ: reading 0x0221d168-0x0221d16c 4 byte(s)
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.841 in thread 15692
Note: instruction: test 0x38(%ebx) $0x00000400
Error #11: UNINITIALIZED READ: reading register eax
# 0 ntdll.dll!RtlUnicodeToMultiByteN
# 1 ntdll.dll!RtlUnicodeStringToAnsiString
# 2 KERNELBASE.dll!FindNextFileA
# 3 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 4 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 5 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 6 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 7 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 8 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.857 in thread 15692
Note: instruction: mov (%eax,%esi) -> %al
Error #12: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 4 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 5 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.857 in thread 15692
Note: instruction: test %eax %eax
Error #13: UNINITIALIZED READ: reading register eax
# 0 ntdll.dll!RtlUnicodeToMultiByteN
# 1 ntdll.dll!RtlUnicodeStringToAnsiString
# 2 KERNELBASE.dll!FindNextFileA
# 3 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 4 RemovePgTempRelationFilesInDbspace
[C:\dll\postgres\src\backend\storage\file\fd.c:3170]
# 5 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3154]
# 6 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 7 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 8 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.857 in thread 15692
Note: instruction: mov (%eax,%esi) -> %al
Error #14: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir
[C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempRelationFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3142]
# 4 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3020]
# 5 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 6 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.951 in thread 15692
Note: instruction: test %eax %eax
Error #15: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir [C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3027]
# 4 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 5 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.998 in thread 15692
Note: instruction: test %eax %eax
Error #16: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir [C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3027]
# 4 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 5 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:13.998 in thread 15692
Note: instruction: cmp %eax $0x00000018
Error #17: UNINITIALIZED READ: reading register eax
# 0 KERNELBASE.dll!FindNextFileW
# 1 KERNELBASE.dll!FindNextFileA
# 2 readdir [C:\dll\postgres\src\port\dirent.c:96]
# 3 RemovePgTempFiles
[C:\dll\postgres\src\backend\storage\file\fd.c:3027]
# 4 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1325]
# 5 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:00:14.013 in thread 15692
Note: instruction: data16 mov %cx -> 0x00000234(%esi,%eax,2)
Error #18: LEAK 29 direct bytes 0x02193dc8-0x02193de5 + 0 indirect bytes
# 0 replace_malloc
[d:\drmemory_package\common\alloc_replace.c:2577]
# 1 ucrtbase.dll!mbsdup +0x24 (0x76249235
<ucrtbase.dll+0x49235>)
# 2 set_pglocale_pgservice [C:\dll\postgres\src\common\exec.c:485]
# 3 main
[C:\dll\postgres\src\backend\main\main.c:104]
Error #19: LEAK 8 direct bytes 0x021b1be8-0x021b1bf0 + 519 indirect bytes
# 0 replace_RtlAllocateHeap
[d:\drmemory_package\common\alloc_replace.c:3771]
# 1 RSAENH.dll!CPAcquireContext +0x4d0 (0x743e7b71
<RSAENH.dll+0x7b71>)
# 2 RSAENH.dll!CPAcquireContext +0x65 (0x743e7706
<RSAENH.dll+0x7706>)
# 3 CRYPTSP.dll!CryptAcquireContextA +0x45a (0x75404e6b
<CRYPTSP.dll+0x4e6b>)
# 4 pg_strong_random
[C:\dll\postgres\src\port\pg_strong_random.c:145]
# 5 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:576]
# 6 main
[C:\dll\postgres\src\backend\main\main.c:210]
Error #20: LEAK 17 direct bytes 0x021dc930-0x021dc941 + 0 indirect bytes
# 0 replace_malloc
[d:\drmemory_package\common\alloc_replace.c:2577]
# 1 ucrtbase.dll!mbsdup +0x24 (0x76249235 <ucrtbase.dll+0x49235>)
# 2 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:699]
# 3 main [C:\dll\postgres\src\backend\main\main.c:210]
Error #21: POSSIBLE LEAK 568 direct bytes 0x021f9310-0x021f9548 + 0 indirect
bytes
# 0 replace_malloc
[d:\drmemory_package\common\alloc_replace.c:2577]
# 1 RegisterBackgroundWorker
[C:\dll\postgres\src\backend\postmaster\bgworker.c:881]
# 2 ApplyLauncherRegister
[C:\dll\postgres\src\backend\replication\logical\launcher.c:784]
# 3 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:992]
# 4 main
[C:\dll\postgres\src\backend\main\main.c:210]
Error #22: HANDLE LEAK: KERNEL handle 0x000000c8 and 125 similar handle(s) were
opened but not closed:
# 0 system call NtCreateEvent
# 1 KERNELBASE.dll!CreateEventExW
# 2 KERNELBASE.dll!CreateEventA
# 3 InitSharedLatch
[C:\dll\postgres\src\backend\storage\ipc\latch.c:293]
# 4 InitProcGlobal
[C:\dll\postgres\src\backend\storage\lmgr\proc.c:231]
# 5 CreateSharedMemoryAndSemaphores
[C:\dll\postgres\src\backend\storage\ipc\ipci.c:235]
# 6 PostmasterMain
[C:\dll\postgres\src\backend\postmaster\postmaster.c:1008]
# 7 main
[C:\dll\postgres\src\backend\main\main.c:210]
Note: @0:06:00.610 in thread 15692
===========================================================================
FINAL SUMMARY:
DUPLICATE ERROR COUNTS:
Error # 1: 2
Error # 2: 2
Error # 4: 4
Error # 5: 4
Error # 6: 600
Error # 7: 597
Error # 8: 408
Error # 9: 408
Error # 10: 324
Error # 11: 1914
Error # 12: 318
Error # 13: 90
Error # 22: 126
SUPPRESSIONS USED:
ERRORS FOUND:
0 unique, 0 total unaddressable access(es)
17 unique, 4676 total uninitialized access(es)
0 unique, 0 total invalid heap argument(s)
0 unique, 0 total GDI usage error(s)
1 unique, 126 total handle leak(s)
0 unique, 0 total warning(s)
3 unique, 3 total, 573 byte(s) of leak(s)
1 unique, 1 total, 568 byte(s) of possible leak(s)
ERRORS IGNORED:
40 potential error(s) (suspected false positives)
(details: c:\tmp\DrMemory-postgres.exe.24772.000\potential_errors.txt)
5 potential leak(s) (suspected false positives)
(details: c:\tmp\DrMemory-postgres.exe.24772.000\potential_errors.txt)
221 unique, 512 total, 302573 byte(s) of still-reachable allocation(s)
(re-run with "-show_reachable" for details)
Details: c:\tmp\DrMemory-postgres.exe.24772.000\results.txt