RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 903017 - Firefox hang when CAC/PIV smart card certificates are viewed in the certificate manager
Summary: Firefox hang when CAC/PIV smart card certificates are viewed in the certifica...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: nss
Version: 6.4
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: rc
: ---
Assignee: Elio Maldonado Batiz
QA Contact: Asha Akkiangady
URL:
Whiteboard:
Depends On:
Blocks: 960054
TreeView+ depends on / blocked
 
Reported: 2013-01-22 22:53 UTC by Asha Akkiangady
Modified: 2013-11-21 06:10 UTC (History)
7 users (show)

Fixed In Version: nss-3.14.3-34.el6
Doc Type: Bug Fix
Doc Text:
Cause: A race condition existed on cert code related to smart cards in the fucntion that adds certificate to the cache. Consequence: Firefox hanged when CAC/PIV smart card certificates on attemps to view them in the certificate manager. Fix: The function now checks the decoder of each certificate, if the decoder is null it returns a failure otherwise it adds the certificate to the cache. Result: The Firefox certificate manager now shows the certificates on the smart card.
Clone Of:
Environment:
Last Closed: 2013-11-21 06:10:28 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Fix race condition in NSS cert code related to smart cards. (770 bytes, patch)
2013-01-29 17:30 UTC, Bob Relyea
no flags Details | Diff
Fix for race condition on cert code related to smart cards - V2 (731 bytes, patch)
2013-08-08 16:58 UTC, Elio Maldonado Batiz
emaldona: review+
rrelyea: review+
Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Mozilla Foundation 902947 0 None None None Never
Red Hat Product Errata RHBA-2013:1558 0 normal SHIPPED_LIVE nss and nspr bug fix and enhancement update 2013-11-21 00:40:48 UTC

Description Asha Akkiangady 2013-01-22 22:53:45 UTC
Description of problem:
Firefox hang when CAC/PIV smart card certificates are viewed in the certificate manager.

Version-Release number of selected component (if applicable):
nss-3.14.0.0-12.el6.i686
nss-util-3.14.0.0-2.el6.i686
coolkey-1.1.0-26.el6.i686
firefox-10.0.12-1.el6_3.i686

How reproducible:


Steps to Reproduce:

The problem showed up on RHEL 6.4 i386 workstation.

1. Plug in DOD PIV/CAC card on a Omnikey 3121 reader, view certificates in Firefox certificate manager (with coolkey installed) 
2. Enter the correct smart card pin. Certificates displayed. 
3. Close Firefox browser.
4. Do not remove the smart card from the reader. Start Firefox browser.
5. View certificates in Certificate Manager request for smart card pin, enter the correct smart card pin and click ok.

Firefox hang.

From the debugger stack trace this looks like it's an NSS race condition.

# firefox --debug
MOZILLA_FIVE_HOME=/usr/lib/firefox
  LD_LIBRARY_PATH=/usr/lib/firefox:/usr/lib/firefox/plugins:/usr/lib/firefox
DISPLAY=:1.0
FONTCONFIG_PATH=/etc/fonts:/usr/lib/firefox/res/Xft
DYLD_LIBRARY_PATH=/usr/lib/firefox:/usr/lib/firefox
     LIBRARY_PATH=
       SHLIB_PATH=/usr/lib/firefox:/usr/lib/firefox
          LIBPATH=/usr/lib/firefox:/usr/lib/firefox
       ADDON_PATH=
      MOZ_PROGRAM=/usr/lib/firefox/firefox
      MOZ_TOOLKIT=
        moz_debug=1
     moz_debugger=
moz_debugger_args=
/usr/lib/firefox/run-mozilla.sh: line 116: type: ddd: not found
/usr/bin/gdb  --args /usr/lib/firefox/firefox
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/firefox/firefox...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install firefox-10.0.12-1.el6_3.i686
(gdb) run
Starting program: /usr/lib/firefox/firefox 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5253.
[New Thread 0xb7affb70 (LWP 5254)]
[New Thread 0xb6909b70 (LWP 5255)]
[New Thread 0xb5f08b70 (LWP 5256)]
[New Thread 0xb53ffb70 (LWP 5257)]
[New Thread 0xb47ffb70 (LWP 5258)]
[New Thread 0xb3dfeb70 (LWP 5259)]
[New Thread 0xb29ffb70 (LWP 5260)]
[New Thread 0xb1dffb70 (LWP 5261)]
[New Thread 0xb11ffb70 (LWP 5262)]
[New Thread 0xb07feb70 (LWP 5263)]
[Thread 0xb29ffb70 (LWP 5260) exited]
[Thread 0xb11ffb70 (LWP 5262) exited]
[New Thread 0xb29ffb70 (LWP 5264)]
[New Thread 0xb11ffb70 (LWP 5265)]
[New Thread 0xae0ffb70 (LWP 5266)]
[New Thread 0xad6feb70 (LWP 5267)]
[New Thread 0xaccfdb70 (LWP 5268)]
[New Thread 0xac2fcb70 (LWP 5269)]
[New Thread 0xab8fbb70 (LWP 5270)]
[New Thread 0xaaefab70 (LWP 5271)]
[New Thread 0xaa1ffb70 (LWP 5273)]
[New Thread 0xa97feb70 (LWP 5274)]
[New Thread 0xa8dfdb70 (LWP 5275)]
[New Thread 0xa83fcb70 (LWP 5276)]
[New Thread 0xa35feb70 (LWP 5277)]
[Thread 0xa97feb70 (LWP 5274) exited]
[Thread 0xa8dfdb70 (LWP 5275) exited]
[Thread 0xaaefab70 (LWP 5271) exited]
[Thread 0xab8fbb70 (LWP 5270) exited]
[Thread 0xad6feb70 (LWP 5267) exited]
[Thread 0xb53ffb70 (LWP 5257) exited]
[Thread 0xa83fcb70 (LWP 5276) exited]
[Thread 0xaa1ffb70 (LWP 5273) exited]
[Thread 0xac2fcb70 (LWP 5269) exited]
[Thread 0xb1dffb70 (LWP 5261) exited]
[Thread 0xb07feb70 (LWP 5263) exited]
[Thread 0xb6909b70 (LWP 5255) exited]
[Thread 0xb5f08b70 (LWP 5256) exited]
[Thread 0xaccfdb70 (LWP 5268) exited]
[Thread 0xb29ffb70 (LWP 5264) exited]
[Thread 0xb11ffb70 (LWP 5265) exited]
[Thread 0xae0ffb70 (LWP 5266) exited]
[Thread 0xb7affb70 (LWP 5254) exited]
[Thread 0xb3dfeb70 (LWP 5259) exited]
[Thread 0xb47ffb70 (LWP 5258) exited]
[Thread 0xa35feb70 (LWP 5277) exited]

Program exited normally.
(gdb) run
Starting program: /usr/lib/firefox/firefox 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5316.
^CQuit
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /usr/lib/firefox/firefox 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5322.
^CQuit
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /usr/lib/firefox/firefox 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5324.
^CQuit
(gdb) where
#0  0x003303cf in dl_open_worker () from /lib/ld-linux.so.2
#1  0x0032bba6 in _dl_catch_error () from /lib/ld-linux.so.2
#2  0x0032fb96 in _dl_open () from /lib/ld-linux.so.2
#3  0x0045fc12 in do_dlopen () from /lib/libc.so.6
#4  0x0032bba6 in _dl_catch_error () from /lib/ld-linux.so.2
#5  0x0045fdd5 in __libc_dlopen_mode () from /lib/libc.so.6
#6  0x0043609f in __nss_lookup_function () from /lib/libc.so.6
#7  0x0043610f in __nss_lookup () from /lib/libc.so.6
#8  0x0043804f in __nss_passwd_lookup2 () from /lib/libc.so.6
#9  0x003dfa9f in getpwnam_r@@GLIBC_2.1.2 () from /lib/libc.so.6
#10 0x02141e29 in ?? () from /lib/libglib-2.0.so.0
#11 0x02143ee5 in g_get_home_dir () from /lib/libglib-2.0.so.0
#12 0x066169e9 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x066190ec in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x065baad5 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x0211bedf in g_option_context_parse () from /lib/libglib-2.0.so.0
#16 0x065ba5b4 in gtk_parse_args () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x007707aa in XRE_main () from /usr/lib/xulrunner-2/libxul.so
#18 0x08049d8e in _start ()
(gdb) run --profile
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /usr/lib/firefox/firefox --profile
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5328.
^C
Program received signal SIGINT, Interrupt.
0x003303cf in dl_open_worker () from /lib/ld-linux.so.2
(gdb) quit
A debugging session is active.

	Inferior 1 [process 5327] will be killed.

Quit anyway? (y or n) y
# firefox --debug
MOZILLA_FIVE_HOME=/usr/lib/firefox
  LD_LIBRARY_PATH=/usr/lib/firefox:/usr/lib/firefox/plugins:/usr/lib/firefox
DISPLAY=:1.0
FONTCONFIG_PATH=/etc/fonts:/usr/lib/firefox/res/Xft
DYLD_LIBRARY_PATH=/usr/lib/firefox:/usr/lib/firefox
     LIBRARY_PATH=
       SHLIB_PATH=/usr/lib/firefox:/usr/lib/firefox
          LIBPATH=/usr/lib/firefox:/usr/lib/firefox
       ADDON_PATH=
      MOZ_PROGRAM=/usr/lib/firefox/firefox
      MOZ_TOOLKIT=
        moz_debug=1
     moz_debugger=
moz_debugger_args=
/usr/lib/firefox/run-mozilla.sh: line 116: type: ddd: not found
/usr/bin/gdb  --args /usr/lib/firefox/firefox
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/firefox/firefox...(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install firefox-10.0.12-1.el6_3.i686
(gdb) run
Starting program: /usr/lib/firefox/firefox 
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 5363.
[New Thread 0xb7affb70 (LWP 5364)]
[New Thread 0xb6909b70 (LWP 5365)]
[New Thread 0xb5f08b70 (LWP 5366)]
[New Thread 0xb53ffb70 (LWP 5367)]
[New Thread 0xb47ffb70 (LWP 5368)]
[New Thread 0xb3dfeb70 (LWP 5369)]
[New Thread 0xb29ffb70 (LWP 5370)]
[New Thread 0xb1dffb70 (LWP 5371)]
[New Thread 0xb11ffb70 (LWP 5372)]
[New Thread 0xb07feb70 (LWP 5373)]
[Thread 0xb29ffb70 (LWP 5370) exited]
[Thread 0xb11ffb70 (LWP 5372) exited]
[New Thread 0xb29ffb70 (LWP 5374)]
[New Thread 0xb11ffb70 (LWP 5375)]
[New Thread 0xae0ffb70 (LWP 5376)]
[New Thread 0xad6feb70 (LWP 5377)]
[New Thread 0xaccfdb70 (LWP 5378)]
[New Thread 0xac2fcb70 (LWP 5379)]
[New Thread 0xab8fbb70 (LWP 5380)]
[New Thread 0xaabffb70 (LWP 5382)]
[New Thread 0xaa1feb70 (LWP 5383)]
[New Thread 0xa97fdb70 (LWP 5384)]
[New Thread 0xa8dfcb70 (LWP 5385)]
[New Thread 0xa3ffeb70 (LWP 5386)]
^C
Program received signal SIGINT, Interrupt.
0x00110424 in __kernel_vsyscall ()
(gdb) where
#0  0x00110424 in __kernel_vsyscall ()
#1  0x004e5019 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x004e044d in _L_lock_845 () from /lib/libpthread.so.0
#3  0x004e0403 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x04b7ada3 in PR_Lock () from /lib/libnspr4.so
#5  0x0571d582 in nssTrustDomain_RemoveTokenCertsFromCache (td=0xaac32818, 
    token=0xaac51018) at tdcache.c:441
#6  0x056d9a05 in nssToken_NotifyCertsNotVisible (tok=0xaac51018)
    at dev3hack.c:307
#7  0x05722b2d in nssSlot_IsTokenPresent (slot=0xaac51818) at devslot.c:209
#8  0x05722c03 in nssSlot_GetToken (slot=0xaac51818) at devslot.c:234
#9  0x0571b6c1 in nssTrustDomain_FindTrustForCertificate (td=0xaac32818, 
    c=0xae2b5868) at trustdomain.c:1081
#10 0x057212ff in nssTrust_GetCERTCertTrustForCert (c=0xae2b5868, 
    cc=0xae2b6010) at pki3hack.c:619
#11 0x05721f96 in fill_CERTCertificateFields (c=0xae2b5868, 
    forceUpdate=<value optimized out>) at pki3hack.c:824
#12 stan_GetCERTCertificate (c=0xae2b5868, forceUpdate=<value optimized out>)
    at pki3hack.c:889
#13 0x05719008 in nssCertificate_GetDecoding (c=0xae2b5868)
    at certificate.c:290
#14 0x05719063 in nssCertificate_SubjectListSort (v1=0xae2b5868, v2=0xae264868)
    at certificate.c:747
---Type <return> to continue, or q <return> to quit---
#15 0x05729470 in nsslist_add_element (list=0xae365018, data=0xae2b5868)
    at list.c:196
#16 0x05729569 in nssList_AddUnique (list=0xae365018, data=0xae2b5868)
    at list.c:243
#17 0x0571cf8f in add_subject_entry (td=0xaac32818, certs=0xbfff920c, 
    numCerts=1) at tdcache.c:533
#18 add_cert_to_cache (td=0xaac32818, certs=0xbfff920c, numCerts=1)
    at tdcache.c:768
#19 nssTrustDomain_AddCertsToCache (td=0xaac32818, certs=0xbfff920c, 
    numCerts=1) at tdcache.c:852
#20 0x0571ece0 in cert_createObject (o=0xae2b5818) at pkibase.c:1053
#21 0x057200f1 in nssPKIObjectCollection_AddInstanceAsObject (
    collection=0xa3408018, instance=0xaac4fa48) at pkibase.c:961
#22 0x0571b935 in collector (instance=0xaac4fa48, arg=0xa3408018)
    at trustdomain.c:992
#23 0x057231f7 in nssToken_TraverseCertificates (token=0xaac5c018, 
    sessionOpt=0xaac32a00, searchType=nssTokenSearchType_TokenOnly, 
    callback=0x571b910 <collector>, arg=0xa3408018) at devtoken.c:1551
#24 0x0571b8b4 in NSSTrustDomain_TraverseCertificates (td=0xaac32818, 
    callback=0x56debf0 <pk11ListCertCallback>, arg=0xbfff9368)
    at trustdomain.c:1039
#25 0x056deafe in PK11_ListCerts (type=PK11CertListUnique, pwarg=0xa3449100)
    at pk11cert.c:2509
---Type <return> to continue, or q <return> to quit---
#26 0x0108e979 in ?? () from /usr/lib/xulrunner-2/libxul.so
#27 0x012fe3d0 in NS_InvokeByIndex_P () from /usr/lib/xulrunner-2/libxul.so
#28 0x00f3f4cd in ?? () from /usr/lib/xulrunner-2/libxul.so
#29 0x00f43c47 in ?? () from /usr/lib/xulrunner-2/libxul.so
#30 0x01500fd9 in ?? () from /usr/lib/xulrunner-2/libxul.so
#31 0x01502141 in ?? () from /usr/lib/xulrunner-2/libxul.so
#32 0x0150117a in ?? () from /usr/lib/xulrunner-2/libxul.so
#33 0x015016e8 in ?? () from /usr/lib/xulrunner-2/libxul.so
#34 0x01486b07 in JS_CallFunctionValue () from /usr/lib/xulrunner-2/libxul.so
#35 0x00c6f341 in ?? () from /usr/lib/xulrunner-2/libxul.so
#36 0x00cc02f6 in ?? () from /usr/lib/xulrunner-2/libxul.so
#37 0x00b411b8 in ?? () from /usr/lib/xulrunner-2/libxul.so
#38 0x00b413a0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#39 0x00b5940a in ?? () from /usr/lib/xulrunner-2/libxul.so
#40 0x00b59537 in ?? () from /usr/lib/xulrunner-2/libxul.so
#41 0x00b59d47 in ?? () from /usr/lib/xulrunner-2/libxul.so
#42 0x008f4de0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#43 0x00fdf279 in ?? () from /usr/lib/xulrunner-2/libxul.so
#44 0x00fdbfcb in ?? () from /usr/lib/xulrunner-2/libxul.so
#45 0x00fe765e in ?? () from /usr/lib/xulrunner-2/libxul.so
#46 0x00fe835b in ?? () from /usr/lib/xulrunner-2/libxul.so
#47 0x00fe8b24 in ?? () from /usr/lib/xulrunner-2/libxul.so
#48 0x00fe8d36 in ?? () from /usr/lib/xulrunner-2/libxul.so
---Type <return> to continue, or q <return> to quit---
#49 0x0078ddef in ?? () from /usr/lib/xulrunner-2/libxul.so
#50 0x008a504a in ?? () from /usr/lib/xulrunner-2/libxul.so
#51 0x008a5764 in ?? () from /usr/lib/xulrunner-2/libxul.so
#52 0x008a2f54 in ?? () from /usr/lib/xulrunner-2/libxul.so
#53 0x0089a030 in ?? () from /usr/lib/xulrunner-2/libxul.so
#54 0x00850883 in ?? () from /usr/lib/xulrunner-2/libxul.so
#55 0x007888d3 in ?? () from /usr/lib/xulrunner-2/libxul.so
#56 0x00788be7 in ?? () from /usr/lib/xulrunner-2/libxul.so
#57 0x012dbef3 in ?? () from /usr/lib/xulrunner-2/libxul.so
#58 0x012ed58c in ?? () from /usr/lib/xulrunner-2/libxul.so
#59 0x012b946d in ?? () from /usr/lib/xulrunner-2/libxul.so
#60 0x0123a4eb in ?? () from /usr/lib/xulrunner-2/libxul.so
#61 0x01310f81 in ?? () from /usr/lib/xulrunner-2/libxul.so
#62 0x01310fcc in ?? () from /usr/lib/xulrunner-2/libxul.so
#63 0x0119fd67 in ?? () from /usr/lib/xulrunner-2/libxul.so
#64 0x0103fba0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#65 0x00772f19 in XRE_main () from /usr/lib/xulrunner-2/libxul.so
#66 0x08049d8e in _start ()
---Type <return> to continue, or q <return> to quit---
#15 0x05729470 in nsslist_add_element (list=0xae365018, data=0xae2b5868)
    at list.c:196
#16 0x05729569 in nssList_AddUnique (list=0xae365018, data=0xae2b5868)
    at list.c:243
#17 0x0571cf8f in add_subject_entry (td=0xaac32818, certs=0xbfff920c, 
    numCerts=1) at tdcache.c:533
#18 add_cert_to_cache (td=0xaac32818, certs=0xbfff920c, numCerts=1)
    at tdcache.c:768
#19 nssTrustDomain_AddCertsToCache (td=0xaac32818, certs=0xbfff920c, 
    numCerts=1) at tdcache.c:852
#20 0x0571ece0 in cert_createObject (o=0xae2b5818) at pkibase.c:1053
#21 0x057200f1 in nssPKIObjectCollection_AddInstanceAsObject (
    collection=0xa3408018, instance=0xaac4fa48) at pkibase.c:961
#22 0x0571b935 in collector (instance=0xaac4fa48, arg=0xa3408018)
    at trustdomain.c:992
#23 0x057231f7 in nssToken_TraverseCertificates (token=0xaac5c018, 
    sessionOpt=0xaac32a00, searchType=nssTokenSearchType_TokenOnly, 
    callback=0x571b910 <collector>, arg=0xa3408018) at devtoken.c:1551
#24 0x0571b8b4 in NSSTrustDomain_TraverseCertificates (td=0xaac32818, 
    callback=0x56debf0 <pk11ListCertCallback>, arg=0xbfff9368)
    at trustdomain.c:1039
#25 0x056deafe in PK11_ListCerts (type=PK11CertListUnique, pwarg=0xa3449100)
    at pk11cert.c:2509
---Type <return> to continue, or q <return> to quit---
#26 0x0108e979 in ?? () from /usr/lib/xulrunner-2/libxul.so
#27 0x012fe3d0 in NS_InvokeByIndex_P () from /usr/lib/xulrunner-2/libxul.so
#28 0x00f3f4cd in ?? () from /usr/lib/xulrunner-2/libxul.so
#29 0x00f43c47 in ?? () from /usr/lib/xulrunner-2/libxul.so
#30 0x01500fd9 in ?? () from /usr/lib/xulrunner-2/libxul.so
#31 0x01502141 in ?? () from /usr/lib/xulrunner-2/libxul.so
#32 0x0150117a in ?? () from /usr/lib/xulrunner-2/libxul.so
#33 0x015016e8 in ?? () from /usr/lib/xulrunner-2/libxul.so
#34 0x01486b07 in JS_CallFunctionValue () from /usr/lib/xulrunner-2/libxul.so
#35 0x00c6f341 in ?? () from /usr/lib/xulrunner-2/libxul.so
#36 0x00cc02f6 in ?? () from /usr/lib/xulrunner-2/libxul.so
#37 0x00b411b8 in ?? () from /usr/lib/xulrunner-2/libxul.so
#38 0x00b413a0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#39 0x00b5940a in ?? () from /usr/lib/xulrunner-2/libxul.so
#40 0x00b59537 in ?? () from /usr/lib/xulrunner-2/libxul.so
#41 0x00b59d47 in ?? () from /usr/lib/xulrunner-2/libxul.so
#42 0x008f4de0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#43 0x00fdf279 in ?? () from /usr/lib/xulrunner-2/libxul.so
#44 0x00fdbfcb in ?? () from /usr/lib/xulrunner-2/libxul.so
#45 0x00fe765e in ?? () from /usr/lib/xulrunner-2/libxul.so
#46 0x00fe835b in ?? () from /usr/lib/xulrunner-2/libxul.so
#47 0x00fe8b24 in ?? () from /usr/lib/xulrunner-2/libxul.so
#48 0x00fe8d36 in ?? () from /usr/lib/xulrunner-2/libxul.so
---Type <return> to continue, or q <return> to quit---
#49 0x0078ddef in ?? () from /usr/lib/xulrunner-2/libxul.so
#50 0x008a504a in ?? () from /usr/lib/xulrunner-2/libxul.so
#51 0x008a5764 in ?? () from /usr/lib/xulrunner-2/libxul.so
#52 0x008a2f54 in ?? () from /usr/lib/xulrunner-2/libxul.so
#53 0x0089a030 in ?? () from /usr/lib/xulrunner-2/libxul.so
#54 0x00850883 in ?? () from /usr/lib/xulrunner-2/libxul.so
#55 0x007888d3 in ?? () from /usr/lib/xulrunner-2/libxul.so
#56 0x00788be7 in ?? () from /usr/lib/xulrunner-2/libxul.so
#57 0x012dbef3 in ?? () from /usr/lib/xulrunner-2/libxul.so
#58 0x012ed58c in ?? () from /usr/lib/xulrunner-2/libxul.so
#59 0x012b946d in ?? () from /usr/lib/xulrunner-2/libxul.so
#60 0x0123a4eb in ?? () from /usr/lib/xulrunner-2/libxul.so
#61 0x01310f81 in ?? () from /usr/lib/xulrunner-2/libxul.so
#62 0x01310fcc in ?? () from /usr/lib/xulrunner-2/libxul.so
#63 0x0119fd67 in ?? () from /usr/lib/xulrunner-2/libxul.so
#64 0x0103fba0 in ?? () from /usr/lib/xulrunner-2/libxul.so
#65 0x00772f19 in XRE_main () from /usr/lib/xulrunner-2/libxul.so
#66 0x08049d8e in _start ()
(gdb) 
  
Actual results:
Firefox hang.

Expected results:
Firefox should show the certificates on the smart card.

Additional info:

Comment 2 RHEL Program Management 2013-01-26 06:47:45 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 5 Bob Relyea 2013-01-29 17:30:56 UTC
Created attachment 689962 [details]
Fix race condition in NSS cert code related to smart cards.

Here's a patch that should fix the problem.

Comment 9 Elio Maldonado Batiz 2013-08-08 16:58:46 UTC
Created attachment 784497 [details]
Fix for race condition on cert code related to smart cards - V2

Comment 10 Bob Relyea 2013-08-08 20:50:26 UTC
Comment on attachment 784497 [details]
Fix for race condition on cert code related to smart cards - V2

r+ rrelyea

Comment 15 Roshni 2013-09-05 21:21:57 UTC
All CAC/ PIV cards do not show this issue on RHEL 6.5 coolkey errata.

Comment 16 errata-xmlrpc 2013-11-21 06:10:28 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.

http://rhn.redhat.com/errata/RHBA-2013-1558.html


Note You need to log in before you can comment on or make changes to this bug.