Closed Bug 133882 Opened 22 years ago Closed 17 years ago

Subsystem shutdown registration mechanism for NSS

Categories

(NSS :: Libraries, enhancement, P2)

enhancement

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 326482

People

(Reporter: julien.pierre, Assigned: julien.pierre)

Details

It would be very useful to have a mechanism through which application 
or NSS subsystems that depend on the NSS core could register a shutdown callback 
function . This function would be called upon entry of NSS_Shutdown().
There could be several functions registered in a LIFO queue.

An example of internal subsystem that could immediately benefit from this would 
be SSL to automatically cleanup the session cache upon NSS_Shutdown().

Another immediate use for this shutdown callback mechanism would be client and 
server plug-ins that want to access NSS directly and may start background 
threads making NSS calls for their own purpose. This would pose a problem if 
these client and server applications, unaware of the plug-in's use of NSS, 
called NSS_Shutdown(), without calling the plug-in's shutdown function, for 
example in case the browser wants to keep plug-ins loaded when switching 
profiles. A crash would follow in that situation. But the shutdown registration 
would take care of the problem very nicely.
This is an interesting idea.  On some Unix systems, the SSL library starts
a thread to look for locks held by dead processes.  It might be nice if 
NSS_Shutdown stopped that thread and closed the server session cache memory
map as a side effect.  It might be nice if NSS_Shutdown cleared the client 
session cache as a side effect.  We wouldn't want NSS_Shutdown to call SSL
functions by name to do this because then libNSS would depend on libSSL.
But if NSS_Shutdown had a callback mechanism, that could be used for these
purposes.  

I'd guess that the callback mechanism might need a flag to indicate whether
the callback function should be called before, or after, the PKCS#11 tokens
were shutdown.
Severity: normal → enhancement
Priority: -- → P2
Target Milestone: --- → 4.0
Changed the QA contact to Bishakha.
QA Contact: sonja.mirtitsch → bishakhabanerjee
QA Contact: bishakhabanerjee → jason.m.reid
Assignee: wtchang → nobody
QA Contact: jason.m.reid → libraries
Assignee: nobody → julien.pierre.boogz
This was fixed by Bob as part of bug 326482. Marking as dupe.

Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.