Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-92041

Memory leak in roles_cache_create_object_from_entry

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • rhel-9.7
    • None
    • 389-ds-base
    • None
    • 389-ds-base-2.7.0-5.el9
    • No
    • Important
    • ZStream
    • Customer Escalated
    • rhel-idm-ds
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      Description of a problem

      Unexpected memory growth is observed and the asan analysis shows there is a memory leak.

      Version-Release number of the selected component : 

      RHEL 9.5
      RHDS 12.5 
      389-ds-base-2.5.2-9.el9_5.x86_64                            Tue May  6 10:45:11 2025
      

      Actual results

      - Memory growth is observed day by day as per the SAR report. 
      
      - Memory leak is observed with asan report : 
      
      =================================================================
      ==3495765==ERROR: LeakSanitizer: detected memory leaks
      
      Direct leak of 39634 byte(s) in 5662 object(s) allocated from:
          #0 0x7f913d0b4a07 in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb4a07)
          #1 0x7f913ccd1948 in slapi_ch_malloc (/usr/lib64/dirsrv/libslapd.so.0+0xd1948)
          #2 0x7f913ccead6c in slapi_entry_attr_get_charptr (/usr/lib64/dirsrv/libslapd.so.0+0xead6c)
          #3 0x7f9135a31208 in roles_cache_create_object_from_entry ldap/servers/plugins/roles/roles_cache.c:1118
          #4 0x7f9135a31208 in roles_cache_create_role_under ldap/servers/plugins/roles/roles_cache.c:998
          #5 0x7f9135a318aa in roles_cache_add_entry_cb ldap/servers/plugins/roles/roles_cache.c:964
          #6 0x7f913cd4b0af in send_ldap_search_entry_ext (/usr/lib64/dirsrv/libslapd.so.0+0x14b0af)
          #7 0x7f913cd4b473 in send_ldap_search_entry (/usr/lib64/dirsrv/libslapd.so.0+0x14b473)
          #8 0x7f913cd791bd in send_results_ext.constprop.0 (/usr/lib64/dirsrv/libslapd.so.0+0x1791bd)
          #9 0x7f913cd2a110 in op_shared_search (/usr/lib64/dirsrv/libslapd.so.0+0x12a110)
          #10 0x7f913cd37eec in search_internal_callback_pb (/usr/lib64/dirsrv/libslapd.so.0+0x137eec)
          #11 0x7f9135a32549 in roles_cache_add_roles_from_suffix ldap/servers/plugins/roles/roles_cache.c:936
          #12 0x7f9135a32637 in roles_cache_init ldap/servers/plugins/roles/roles_cache.c:210
          #13 0x7f9135a327e8 in roles_start ldap/servers/plugins/roles/roles_plugin.c:174
          #14 0x7f913cd33222 in plugin_call_func.lto_priv.0 (/usr/lib64/dirsrv/libslapd.so.0+0x133222)
          #15 0x7f913cd34eaf in plugin_startall (/usr/lib64/dirsrv/libslapd.so.0+0x134eaf)
          #16 0x5568ccfad896  (/usr/sbin/ns-slapd+0x25896)
          #17 0x7f913c8295cf in __libc_start_call_main (/lib64/libc.so.6+0x295cf)
          #18 0x7f913c82967f in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2967f)
          #19 0x5568ccfaec14  (/usr/sbin/ns-slapd+0x26c14)
      
      Direct leak of 2944 byte(s) in 92 object(s) allocated from:
          #0 0x7f913d0b4a07 in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb4a07)
          #1 0x7f913ccd1948 in slapi_ch_malloc (/usr/lib64/dirsrv/libslapd.so.0+0xd1948)
          #2 0x7f913ccdc295 in csnset_add_csn (/usr/lib64/dirsrv/libslapd.so.0+0xdc295)
          #3 0x7f913ccdc3ae in csnset_dup (/usr/lib64/dirsrv/libslapd.so.0+0xdc3ae)
          #4 0x7f913cd72927 in valueset_update_csn_for_valuearray_ext (/usr/lib64/dirsrv/libslapd.so.0+0x172927)
          #5 0x7f913cd7fb30 in entry_delete_present_values_wsi.isra.0 (/usr/lib64/dirsrv/libslapd.so.0+0x17fb30)
          #6 0x7f913ccf06f9 in entry_apply_mod_wsi (/usr/lib64/dirsrv/libslapd.so.0+0xf06f9)
          #7 0x7f913ccf082d in entry_apply_mods_wsi (/usr/lib64/dirsrv/libslapd.so.0+0xf082d)
          #8 0x7f9135e03cd3 in modify_apply_check_expand ldap/servers/slapd/back-ldbm/ldbm_modify.c:360
          #9 0x7f9135e07268 in ldbm_back_modify ldap/servers/slapd/back-ldbm/ldbm_modify.c:790
          #10 0x7f913cd1ea35 in op_shared_modify (/usr/lib64/dirsrv/libslapd.so.0+0x11ea35)
          #11 0x7f913cd1ffbc in do_modify (/usr/lib64/dirsrv/libslapd.so.0+0x11ffbc)
          #12 0x5568ccfb6d97 in connection_dispatch_operation ldap/servers/slapd/connection.c:658
          #13 0x5568ccfb6d97 in connection_threadmain ldap/servers/slapd/connection.c:1925
          #14 0x7f913da2ac33 in _pt_root (/lib64/libnspr4.so+0x2cc33)
          #15 0x7f913c8897e1 in start_thread (/lib64/libc.so.6+0x897e1)
          #16 0x7f913c90e7ff in __clone3 (/lib64/libc.so.6+0x10e7ff)
      
      Direct leak of 80 byte(s) in 5 object(s) allocated from:
          #0 0x7f913d0b4db8 in __interceptor_realloc (/usr/lib64/libasan.so.6+0xb4db8)
          #1 0x7f913dabebe4 in ber_memrealloc_x (/lib64/liblber.so.2+0x7be4)
          #2 0x7f913dae01d1 in ldap_pvt_get_controls (/lib64/libldap.so.2+0x171d1)
          #3 0x7f913dae8332 in ldap_parse_result (/lib64/libldap.so.2+0x1f332)
          #4 0x7f9135b4ee47 in conn_read_result_ex ldap/servers/plugins/replication/repl5_connection.c:479
          #5 0x7f9135b5798f in repl5_inc_result_threadmain ldap/servers/plugins/replication/repl5_inc_protocol.c:269
          #6 0x7f913da2ac33 in _pt_root (/lib64/libnspr4.so+0x2cc33)
          #7 0x7f913c8897e1 in start_thread (/lib64/libc.so.6+0x897e1)
          #8 0x7f913c90e7ff in __clone3 (/lib64/libc.so.6+0x10e7ff)
      
      Indirect leak of 160 byte(s) in 5 object(s) allocated from:
          #0 0x7f913d0b4bd7 in calloc (/usr/lib64/libasan.so.6+0xb4bd7)
          #1 0x7f913dabea3c in ber_memcalloc_x (/lib64/liblber.so.2+0x7a3c)
          #2 0x7f913dae01b7 in ldap_pvt_get_controls (/lib64/libldap.so.2+0x171b7)
          #3 0x7f913dae8332 in ldap_parse_result (/lib64/libldap.so.2+0x1f332)
          #4 0x7f9135b4ee47 in conn_read_result_ex ldap/servers/plugins/replication/repl5_connection.c:479
          #5 0x7f9135b5798f in repl5_inc_result_threadmain ldap/servers/plugins/replication/repl5_inc_protocol.c:269
          #6 0x7f913da2ac33 in _pt_root (/lib64/libnspr4.so+0x2cc33)
          #7 0x7f913c8897e1 in start_thread (/lib64/libc.so.6+0x897e1)
          #8 0x7f913c90e7ff in __clone3 (/lib64/libc.so.6+0x10e7ff)
      
      Indirect leak of 120 byte(s) in 5 object(s) allocated from:
          #0 0x7f913d0b4a07 in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb4a07)
          #1 0x7f913dabdf14 in ber_memalloc_x (/lib64/liblber.so.2+0x6f14)
          #2 0x7f913dabdfdf in ber_get_stringbv (/lib64/liblber.so.2+0x6fdf)
          #3 0x7f913dabe41d in ber_get_stringa (/lib64/liblber.so.2+0x741d)
          #4 0x7f913dac098d in ber_scanf (/lib64/liblber.so.2+0x998d)
          #5 0x7f913dae0201 in ldap_pvt_get_controls (/lib64/libldap.so.2+0x17201)
          #6 0x7f913dae8332 in ldap_parse_result (/lib64/libldap.so.2+0x1f332)
          #7 0x7f9135b4ee47 in conn_read_result_ex ldap/servers/plugins/replication/repl5_connection.c:479
          #8 0x7f9135b5798f in repl5_inc_result_threadmain ldap/servers/plugins/replication/repl5_inc_protocol.c:269
          #9 0x7f913da2ac33 in _pt_root (/lib64/libnspr4.so+0x2cc33)
          #10 0x7f913c8897e1 in start_thread (/lib64/libc.so.6+0x897e1)
          #11 0x7f913c90e7ff in __clone3 (/lib64/libc.so.6+0x10e7ff)
      
      Indirect leak of 15 byte(s) in 5 object(s) allocated from:
          #0 0x7f913d0b4a07 in __interceptor_malloc (/usr/lib64/libasan.so.6+0xb4a07)
          #1 0x7f913dabdf14 in ber_memalloc_x (/lib64/liblber.so.2+0x6f14)
          #2 0x7f913dabdfdf in ber_get_stringbv (/lib64/liblber.so.2+0x6fdf)
          #3 0x7f913dac0a09 in ber_scanf (/lib64/liblber.so.2+0x9a09)
          #4 0x7f913dae026b in ldap_pvt_get_controls (/lib64/libldap.so.2+0x1726b)
          #5 0x7f913dae8332 in ldap_parse_result (/lib64/libldap.so.2+0x1f332)
          #6 0x7f9135b4ee47 in conn_read_result_ex ldap/servers/plugins/replication/repl5_connection.c:479
          #7 0x7f9135b5798f in repl5_inc_result_threadmain ldap/servers/plugins/replication/repl5_inc_protocol.c:269
          #8 0x7f913da2ac33 in _pt_root (/lib64/libnspr4.so+0x2cc33)
          #9 0x7f913c8897e1 in start_thread (/lib64/libc.so.6+0x897e1)
          #10 0x7f913c90e7ff in __clone3 (/lib64/libc.so.6+0x10e7ff)
      
      SUMMARY: AddressSanitizer: 42953 byte(s) leaked in 5774 allocation(s).
      
      

      Additional information

      - Disabled transparent huge pages. 

        1. jeprof.2702210.0.f.heap.pdf
          23 kB
          Viktor Ashirov
        2. ns-slapd-localhost.asan.3495765
          7 kB
          AbhinayReddy Peddireddy

              vashirov@redhat.com Viktor Ashirov
              rhn-support-apeddire AbhinayReddy Peddireddy
              IdM DS Dev IdM DS Dev
              IdM DS QE IdM DS QE
              Evgenia Martyniuk Evgenia Martyniuk
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated: