(file) Return to README.mday CVS log (file) (dir) Up to [Pegasus] / pegasus

File: [Pegasus] / pegasus / Attic / README.mday (download)
Revision: 1.1.2.1, Wed Oct 30 21:27:29 2002 UTC (21 years, 6 months ago) by mday
Branch: mday-2-0-patches
CVS Tags: LOCAL_ASSOCPROV-ROOT, LOCAL_ASSOCPROV-BRANCH
Changes since 1.1: +94 -0 lines
*** empty log message ***

Wed Oct 30 14:56:07 2002

Notes for mday-2-0-patches branch.This is a branch from the STABLE
tag, main trunk, as of October 29.

There are some substantial changes in addition to small bug fixes in
this branch. PLEASE TEST this on your platform(s) and send me trace
files or console dumps when you have problems. 



The following known issues are fixed for Linux and Windows in this branch: 


1) cimserver -s now shuts down the cimserver. This involved a fix to
the Indication Service, which was hanging because it shut down its
message queue prior to sending alerts to indication subscribers. I
changed the ordering of its shutdown procedures and it unblocked
everything else. There are a series of messages that display 

2) HTTPConnection destructor fault. This was a combination of problems
that involved the Monitor, the HTTP Connector, and the HTTP Connection
classes. I rewrote the monitor to use a pre-allocated connection table
and to change the state of table entries to reflect the creation and
destruction of connections (instead of creating and destroying table
entries). This is a much more stable design than the previous one,
given an asynchronous environment. The actual segfault occured when
the monitor selected a socket for which the owner had already deleted
the HTTPConnection. This can still happen on an MP machine. However,
now the monitor only changes the status of the entry to EMPTY. All the
cleanup is done outside of the monitor. 

cimconfig now works. 

2) HTTPConnection locking. The locking of an HTTP connection is still
necessary to avoid a race condition that involves socket
selection. However, I changed the locking to be per connection, rather
than for the entire class. 

3) Indication Response Handler lifetime. Indications did not work
because the Provider Manager Services used an automatic reference to
an EnableIndicationResponseHandler to pass to the indication
provider. Of course, when the indication fired it went into stack
memory that was no longer framed. Now the Provider Manager Service
allocates the EnableIndicationResponseHandler on the heap and stores
it in a table of active indication subscriptions (on a per-provider
basis). Only after the indication subscription is cancelled does the
Provider Manager Service delete the response handler. 

You can now run the subscription tests successfully. 

3) CIMOM Handle Lifetime. The Provider Manager was giving all
providers a reference to the same automatically allocated cimom
handle. When the stack went out of frame the CIMOM Handle reference
pointed to unframed stack memory. Now the Provider Manager allocates
the CIMOMHandle from the heap and keeps it until the provider
terminates. 

4) CIMOM Handle message addressing. The CIMOM handle is not complete
and uses the messaging system correctly. It works. I've done some
initial tests and they are all successful. I still want to make some
changes to better contain error conditions. 

5) Provider Lifetime. Providers are now unloaded after being idle for
five minutes. This feature was disabled in the main branch after the
provider manager reference counting was rewritten to support
HPUX. The storage of providers and provider modules as references in
the Array class caused memory corruption. This is all fixed and the
provider manager is completely rewritten. 

6) Provider Module reference counting. Reference counting is now
accomplished differently and provider modules are not copied - there
is only one module per library, but the reference counting now works. 

7) Provider Module Lifetime. Modules (provider libraries) are now
unloaded when their reference count goes to zero. This will work on
operating systems that do not have inherent reference counting for
shared libraries. 

8) Thread Pool lifetime. The thread pool's management of idle threads
has been restored to its previous algorithm, except the bugs that
caused memory corruption on MP systems. These were broken from the
very beginning but should now work correctly. The code is set to
delete deadlocked threads in addition to idle threads. 

9) I changed the method of making the name space manager
case-insensitive. 

Please run the ThreadPool test and let me know how it works. I cannot
test this code on all platforms. 


 


No CVS admin address has been configured
Powered by
ViewCVS 0.9.2