Bug 1714657

Summary: Valgrind reports errors and lost memory when running rpm -Uvh with rpm-plugin-systemd-inhibit
Product: Red Hat Enterprise Linux 8 Reporter: Jan Pazdziora <jpazdziora>
Component: rpmAssignee: Panu Matilainen <pmatilai>
Status: CLOSED ERRATA QA Contact: Eva Mrakova <emrakova>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: awilliam, emrakova, ffesti, pmatilai
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rpm-4.14.2-25.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1798401 (view as bug list) Environment:
Last Closed: 2019-11-05 22:22:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Pazdziora 2019-05-28 14:15:49 UTC
Description of problem:

In bug 1702283, I was pointed to rpm-plugin-systemd-inhibit as potential culprit of some memory leak issues. The rpm itself seems to have some small issues, reported in bug 1714652. Here we rerun the same command with rpm-plugin-systemd-inhibit installed.

Version-Release number of selected component (if applicable):

rpm-plugin-systemd-inhibit-4.14.2-17.el8.x86_64

How reproducible:

Deterministic.

Steps to Reproduce:
1. Make sure rpm-plugin-systemd-inhibit is installed:
   rpm -q rpm-plugin-systemd-inhibit
2. Get zsh rpm to play with:
   dnf install --downloadonly zsh
3. Install the rpm:
   valgrind --leak-check=full rpm -Uvh $( find /var/cache/dnf -name 'zsh-*.rpm' )

Actual results:

==3170== Memcheck, a memory error detector
==3170== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==3170== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==3170== Command: rpm -Uvh /var/cache/dnf/beaker-BaseOS-8c497e5ab46f90a9/packages/zsh-5.5.1-6.el8.x86_64.rpm
==3170== 
warning: /var/cache/dnf/beaker-BaseOS-8c497e5ab46f90a9/packages/zsh-5.5.1-6.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.5.1-6.el8                  ################################# [100%]
==3170== Syscall param pwrite64(buf) points to uninitialised byte(s)
==3170==    at 0x740E528: pwrite (in /usr/lib64/libpthread-2.28.so)
==3170==    by 0x585DC14: __os_io (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x5849432: ??? (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x58497CB: __memp_bhwrite (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x5859936: __memp_sync_int (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x57EFFEE: __db_sync (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x5801937: __db_sync_pp (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x4E56EFD: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E633E9: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E76BBD: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8BB49: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E92613: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==  Address 0xbe43942 is 1,122 bytes inside a block of size 4,096 alloc'd
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0x585ADF4: __os_malloc (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x58495EF: ??? (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x58497CB: __memp_bhwrite (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x5859936: __memp_sync_int (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x57EFFEE: __db_sync (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x5801937: __db_sync_pp (in /usr/lib64/libdb-5.3.so)
==3170==    by 0x4E56EFD: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E633E9: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E76BBD: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8BB49: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E92613: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170== 
==3170== 
==3170== HEAP SUMMARY:
==3170==     in use at exit: 8,525 bytes in 83 blocks
==3170==   total heap usage: 116,365 allocs, 116,282 frees, 83,405,419 bytes allocated
==3170== 
==3170== 26 bytes in 1 blocks are definitely lost in loss record 9 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0xA0CAC42: ???
==3170==    by 0xA0ABB64: ???
==3170==    by 0xA0AC2C2: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 26 bytes in 1 blocks are definitely lost in loss record 10 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0xA0CAC42: ???
==3170==    by 0xA0AC4DD: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 38 bytes in 1 blocks are definitely lost in loss record 15 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0xA0CAC42: ???
==3170==    by 0xA0AC404: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 52 bytes in 1 blocks are definitely lost in loss record 20 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0x50CFEAB: rmalloc (in /usr/lib64/librpmio.so.8.1.0)
==3170==    by 0x50D34EA: rasprintf (in /usr/lib64/librpmio.so.8.1.0)
==3170==    by 0x4E9951B: rpmsinfoMsg (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8F0C7: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E99AAB: rpmvsVerify (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E92474: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 72 (24 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 23 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0xA0CCAE1: ???
==3170==    by 0xA0B9C2D: ???
==3170==    by 0xA0C16E5: ???
==3170==    by 0xA0B029A: ???
==3170==    by 0xA0ABF37: ???
==3170==    by 0xA0AC1B3: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170== 
==3170== 384 (184 direct, 200 indirect) bytes in 1 blocks are definitely lost in loss record 41 of 50
==3170==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==3170==    by 0xA0B96A4: ???
==3170==    by 0xA0BCDCF: ???
==3170==    by 0xA0ADED1: ???
==3170==    by 0xA0B09CB: ???
==3170==    by 0xA0AC1A0: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170== 
==3170== 520 bytes in 13 blocks are definitely lost in loss record 43 of 50
==3170==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==3170==    by 0xA0D3355: ???
==3170==    by 0xA0C6764: ???
==3170==    by 0xA0C68FC: ???
==3170==    by 0xA0AC0AD: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 567 (184 direct, 383 indirect) bytes in 1 blocks are definitely lost in loss record 44 of 50
==3170==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==3170==    by 0xA0B96A4: ???
==3170==    by 0xA0BA48D: ???
==3170==    by 0xA0ABF1C: ???
==3170==    by 0xA0AC1B3: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== 708 (368 direct, 340 indirect) bytes in 2 blocks are definitely lost in loss record 45 of 50
==3170==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==3170==    by 0xA0B96A4: ???
==3170==    by 0xA0BE8B2: ???
==3170==    by 0xA0C761F: ???
==3170==    by 0xA0C7715: ???
==3170==    by 0xA0C815C: ???
==3170==    by 0xA0C890D: ???
==3170==    by 0xA0C7490: ???
==3170==    by 0xA0AF2EB: ???
==3170==    by 0xA0AFCBC: ???
==3170==    by 0xA0B0285: ???
==3170==    by 0xA0ABF37: ???
==3170== 
==3170== 727 (184 direct, 543 indirect) bytes in 1 blocks are definitely lost in loss record 47 of 50
==3170==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==3170==    by 0xA0B96A4: ???
==3170==    by 0xA0BDBEA: ???
==3170==    by 0xA0C118B: ???
==3170==    by 0xA0AFFB1: ???
==3170==    by 0xA0B026B: ???
==3170==    by 0xA0ABF37: ???
==3170==    by 0xA0AC1B3: ???
==3170==    by 0x9E95EF1: ???
==3170==    by 0x4E96D7F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E90687: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170== 
==3170== 3,499 (48 direct, 3,451 indirect) bytes in 1 blocks are definitely lost in loss record 50 of 50
==3170==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==3170==    by 0x50CFEF2: rcalloc (in /usr/lib64/librpmio.so.8.1.0)
==3170==    by 0x4E99664: rpmvsCreate (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E923D0: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==3170==    by 0x109DD9: ??? (in /usr/bin/rpm)
==3170==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==3170== 
==3170== LEAK SUMMARY:
==3170==    definitely lost: 1,654 bytes in 24 blocks
==3170==    indirectly lost: 4,965 bytes in 51 blocks
==3170==      possibly lost: 0 bytes in 0 blocks
==3170==    still reachable: 1,906 bytes in 8 blocks
==3170==         suppressed: 0 bytes in 0 blocks
==3170== Reachable blocks (those to which a pointer was found) are not shown.
==3170== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==3170== 
==3170== Use --track-origins=yes to see where uninitialised values come from
==3170== For lists of detected and suppressed errors, rerun with: -s
==3170== ERROR SUMMARY: 23 errors from 12 contexts (suppressed: 0 from 0)

Expected results:

==27456== Memcheck, a memory error detector
==27456== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==27456== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==27456== Command: rpm -Uvh /var/cache/dnf/beaker-BaseOS-8c497e5ab46f90a9/packages/zsh-5.5.1-6.el8.x86_64.rpm
==27456== 
warning: /var/cache/dnf/beaker-BaseOS-8c497e5ab46f90a9/packages/zsh-5.5.1-6.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:zsh-5.5.1-6.el8                  ################################# [100%]
==27456== Syscall param pwrite64(buf) points to uninitialised byte(s)
==27456==    at 0x740E528: pwrite (in /usr/lib64/libpthread-2.28.so)
==27456==    by 0x585DC14: __os_io (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x5849432: ??? (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x58497CB: __memp_bhwrite (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x5859936: __memp_sync_int (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x57EFFEE: __db_sync (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x5801937: __db_sync_pp (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x4E56EFD: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E633E9: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E76BBD: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E8BB49: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E92613: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==27456==  Address 0xa27ffa3 is 1,139 bytes inside a block of size 4,096 alloc'd
==27456==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==27456==    by 0x585ADF4: __os_malloc (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x58495EF: ??? (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x58497CB: __memp_bhwrite (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x5859936: __memp_sync_int (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x57EFFEE: __db_sync (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x5801937: __db_sync_pp (in /usr/lib64/libdb-5.3.so)
==27456==    by 0x4E56EFD: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E633E9: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E76BBD: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E8BB49: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E92613: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==27456== 
==27456== 
==27456== HEAP SUMMARY:
==27456==     in use at exit: 3,842 bytes in 43 blocks
==27456==   total heap usage: 116,090 allocs, 116,047 frees, 83,186,616 bytes allocated
==27456== 
==27456== 52 bytes in 1 blocks are definitely lost in loss record 10 of 26
==27456==    at 0x4C30EDB: malloc (vg_replace_malloc.c:309)
==27456==    by 0x50CFEAB: rmalloc (in /usr/lib64/librpmio.so.8.1.0)
==27456==    by 0x50D34EA: rasprintf (in /usr/lib64/librpmio.so.8.1.0)
==27456==    by 0x4E9951B: rpmsinfoMsg (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E8F0C7: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E99AAB: rpmvsVerify (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E92474: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x109DD9: ??? (in /usr/bin/rpm)
==27456==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==27456== 
==27456== 3,499 (48 direct, 3,451 indirect) bytes in 1 blocks are definitely lost in loss record 26 of 26
==27456==    at 0x4C331EA: calloc (vg_replace_malloc.c:762)
==27456==    by 0x50CFEF2: rcalloc (in /usr/lib64/librpmio.so.8.1.0)
==27456==    by 0x4E99664: rpmvsCreate (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E923D0: rpmtsRun (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E8594F: ??? (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x4E86B30: rpmInstall (in /usr/lib64/librpm.so.8.1.0)
==27456==    by 0x109DD9: ??? (in /usr/bin/rpm)
==27456==    by 0x763F812: (below main) (in /usr/lib64/libc-2.28.so)
==27456== 
==27456== LEAK SUMMARY:
==27456==    definitely lost: 100 bytes in 2 blocks
==27456==    indirectly lost: 3,451 bytes in 38 blocks
==27456==      possibly lost: 0 bytes in 0 blocks
==27456==    still reachable: 291 bytes in 3 blocks
==27456==         suppressed: 0 bytes in 0 blocks
==27456== Reachable blocks (those to which a pointer was found) are not shown.
==27456== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==27456== 
==27456== Use --track-origins=yes to see where uninitialised values come from
==27456== For lists of detected and suppressed errors, rerun with: -s
==27456== ERROR SUMMARY: 14 errors from 3 contexts (suppressed: 0 from 0)

Additional info:

The Expected results is the output that I got in bug 1714652 with rpm-plugin-systemd-inhibit not installed.

Comment 1 Panu Matilainen 2019-05-29 09:25:47 UTC
Right, there are actually multiple leaks in there:
- the ones from systemd-inhibit are not rpm leaks as such, its dbus internal memory but we should be calling dbus_shutdown() to mop it up
- while looking at this, spotted an unrelated memleak from file triggers on erasure
- one related to verification, already fixed upstream but not yet in rhel

First two are fixed in https://github.com/rpm-software-management/rpm/pull/718, the verication thing (which is by far the worst one) in https://github.com/rpm-software-management/rpm/commit/788935c9ea9d2f469f24be10a9fa998594046731. All of these should be fixed, so the "expected result" output here is bogus, no definitely/indirectly/possibly lost bytes should ever be present. Some amount of "still reachable" is to be expected with librpm though.

devel_ack+ for fixing all three leaks.

Comment 2 Panu Matilainen 2019-06-18 07:12:58 UTC
*** Bug 1714652 has been marked as a duplicate of this bug. ***

Comment 13 Adam Williamson 2019-10-16 00:08:18 UTC
I don't believe this is a safe change. After a bunch of debugging, it seems that it breaks dnfdaemon in Fedora:

https://bugzilla.redhat.com/show_bug.cgi?id=1750575#c30

I don't think RHEL 8 ships dnfdaemon, but I believe that at least theoretically any process that both uses dbus itself and uses the RPM Python bindings (or I guess librpm directly) could run into this problem if it happens to do anything that triggers this `dbus_shutdown()` call.

Comment 14 Panu Matilainen 2019-10-16 11:15:46 UTC
(In reply to Adam Williamson from comment #13)
> I don't believe this is a safe change. After a bunch of debugging, it seems
> that it breaks dnfdaemon in Fedora:

There are multiple other "normal" leaks being fixed via this bug as well, so we need to be careful with what "this change" means: yes, we'll need to revert (or rather, drop) the part that dbus_shutdown(). To be exact, the 0001-Fully-shutdown-DBUS-on-systemd_inhibit-cleanup-RhBug.patch patch.

Comment 15 Adam Williamson 2019-10-16 14:48:43 UTC
yep, sorry, I was pretty tired after an all-day debugging session so I didn't notice this was actually two commits! Indeed that's what I meant.

Comment 17 errata-xmlrpc 2019-11-05 22:22:37 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:3584