Bug 491215

Summary: mmldif crashes in PK11_CreateDigestContext
Product: [Retired] 389 Reporter: Noriko Hosoi <nhosoi>
Component: Command Line UtilitiesAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED CURRENTRELEASE QA Contact: Chandrasekar Kannan <ckannan>
Severity: medium Docs Contact:
Priority: low    
Version: 1.1.3CC: benl, mgregg, nkinder
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 8.1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-04-29 23:11:45 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 249650, 493682    
Attachments:
Description Flags
cvs diff ldapserver/ldap/servers/slapd/tools/mmldif.c
none
cvs commit message none

Description Noriko Hosoi 2009-03-19 20:51:43 UTC
Description of problem:
Reported by Neuron Ring.
1. I need to merge to input files using mmldif tool
2. I m exporting it to a ldif file using db2ldif tool

/opt/dirsrv/slapd-<instance1> /db2ldif -n <backend_instance1>
/opt/dirsrv/slapd-<instance1> /db2ldif -n <backend_instance2>

3. I got two ldif files by exporting two directory server instance databases.
One.ldif
dn: sn=Jensen,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Babs Jensen
sn: Jensen
telephoneNumber: 555-5550
createTimestamp: 100

dn: sn=Minsky,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Pete Minsky
sn: Minsky
telephoneNumber: 555-5551
createTimestamp: 100

dn: sn=Rose,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Paula Rose
sn: Rose
telephoneNumber: 555-5552
createTimestamp: 100

Two.ldif

dn: sn=Jensen,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Babs Jensen
sn: Jensen
telephoneNumber: 555-5550
createTimestamp: 100

dn: sn=Minsky,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Pete Minsky
sn: Minsky
telephoneNumber: 555-5559
modifyTimestamp: 200

dn: sn=Morris,dc=siroe,dc=com
objectclass: top
objectclass: person
cn: Ted Morris
sn: Morris
telephoneNumber: 555-5558
createTimestamp: 200

dn: sn=Rose,dc=siroe,dc=com
objectclass: nsTombstone
deleteTimestamp: 200

4. Now I m trying to use mmldif tool.
5. /opt/dirsrv/bin/mmldif -c -D -o /home/neuronring/output.ldif   /home/ neuronring/one.ldif   /home/ neuronring/two.ldif
6. Finally everything IN VAIN, I got the following error: 

[18/Mar/2009:11:35:04 +051800] - finger printing directory 0
[18/Mar/2009:11:35:04 +051800] - db0: dn: sn=Jensen,dc=siroe,dc=com
/opt/dirsrv/bin/mmldif[50]: 18247 Memory fault(coredump)

The following files are created in my path. 
1. one.ldif.delta
2. two.ldif.delta
These two files has no data 0 bytes size.
3. core – size 1882552 bytes

Even I tried exporting the database with –r option (for replica) after stopping the instance. I m getting this error continuously with different error numbers like, /opt/dirsrv/bin/mmldif[50]: 10854 Memory fault(coredump). 

Somebody please suggest me to resolve this issue.

Thanks in advance,
Neuron Ring.

Comment 1 Noriko Hosoi 2009-03-19 20:57:03 UTC
Stacktrace:
Core was generated by `/usr/bin/mmldif-bin -o exampleM.ldif ./example0.ldif ./example1.ldif'.
Program terminated with signal 11, Segmentation fault.
[New process 31424]
#0  0x00007f57fac11acb in NSSRWLock_LockRead_Util (rwlock=0x0) at nssrwlk.c:177
177	    PZ_Lock(rwlock->rw_lock);
Missing separate debuginfos, use: debuginfo-install cyrus-sasl.x86_64 e2fsprogs.x86_64 keyutils.x86_64 krb5.x86_64 libselinux.x86_64 svrcore.x86_64
(gdb) bt
#0  0x00007f57fac11acb in NSSRWLock_LockRead_Util (rwlock=0x0) at nssrwlk.c:177
#1  0x00007f57fb0791bb in SECMOD_GetReadLock (modLock=0x0) at pk11list.c:71
#2  0x00007f57fb09d43e in PK11_GetAllTokens (type=544, needRW=0, loadCerts=1, 
    wincx=0x0) at pk11slot.c:1786
#3  0x00007f57fb09d67a in PK11_GetBestSlotMultiple (type=0x7fff03620438, 
    mech_count=1, wincx=0x0) at pk11slot.c:1876
#4  0x00007f57fb09d8e0 in PK11_GetBestSlot (type=544, wincx=0x0)
    at pk11slot.c:1937
#5  0x00007f57fb07741a in PK11_CreateDigestContext (hashAlg=SEC_OID_SHA1)
    at pk11cxt.c:411
#6  0x0000000000402d99 in hashname (seed=-76 '�', attrib=0x7f57fa686cb0, 
    hashkey=0x7fff03620660 "�\212�\034<")
    at ldap/servers/slapd/tools/mmldif.c:936
#7  0x00000000004014b0 in mm_diff (statsp=0x7fff036206c0)
    at ldap/servers/slapd/tools/mmldif.c:375
#8  0x00000000004045f5 in main (argc=5, argv=0x7fff03620828)
    at ldap/servers/slapd/tools/mmldif.c:1479

Cause: secmod module list / module list lock is NULL.

Comment 2 Noriko Hosoi 2009-03-19 21:09:24 UTC
Created attachment 335932 [details]
cvs diff ldapserver/ldap/servers/slapd/tools/mmldif.c

Description: NSS was not initialized.  Since cert db, key db, or secmod db are not needed, changed to call NSS_NoDB_Init to initialize NSS.

Comment 3 Noriko Hosoi 2009-03-23 16:45:13 UTC
Created attachment 336323 [details]
cvs commit message

Reviewed by Nathan (Thank you!!)

Checked in into CVS HEAD.

Comment 4 Michael Gregg 2009-04-14 20:58:44 UTC
verified against 8.1.0-0.6.el5dsrv

[mgregg@praseodymium shm]$ /usr/bin/mmldif -c -D -o /dev/shm/output.ldif /dev/shm/1.ldif /dev/shm/2.ldif 
[14/Apr/2009:13:56:33 -0700] - finger printing directory 0
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - finger printing directory 1
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - ...data modified
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Morris,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - ...data modified
[14/Apr/2009:13:56:33 -0700] - loading authoritative data from directory 0
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...data loaded
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...data loaded
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...data loaded
[14/Apr/2009:13:56:33 -0700] - loading authoritative data from directory 1
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...winner data loaded
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Morris,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...data loaded
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...winner data loaded
[14/Apr/2009:13:56:33 -0700] - generating differences for directory 0
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...modified
[14/Apr/2009:13:56:33 -0700] - db0: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] -  ...deleted
[14/Apr/2009:13:56:33 -0700] - generating differences for directory 1
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Jensen,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Minsky,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Morris,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - db1: dn: sn=Rose,dc=siroe,dc=com
[14/Apr/2009:13:56:33 -0700] - scanning db for new entries
[14/Apr/2009:13:56:33 -0700] -  ...add new
start time Tue Apr 14 13:56:33 2009

entry counts: unchanged=1 changed=2 new=1 total=4

end time Tue Apr 14 13:56:33 2009
differencing took <= 1 second


output.ldif:
dn: sn=Jensen,dc=siroe,dc=com
cn: Babs Jensen
createTimestamp: 100
objectclass: person
objectclass: top
sn: Jensen
telephoneNumber: 555-5550

dn: sn=Minsky,dc=siroe,dc=com
cn: Pete Minsky
objectclass: person
objectclass: top
sn: Minsky
telephoneNumber: 555-5559

dn: sn=Morris,dc=siroe,dc=com
cn: Ted Morris
createTimestamp: 200
objectclass: person
objectclass: top
sn: Morris
telephoneNumber: 555-5558

Comment 5 Chandrasekar Kannan 2009-04-29 23:11:45 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2009-0455.html