version 1.1.2.20, 2014/04/11 00:33:15
|
version 1.1.2.29, 2014/05/02 19:36:25
|
|
|
protocol to be able to count objects in response. Generates | protocol to be able to count objects in response. Generates |
warnings in things like messageserializer and does not work with | warnings in things like messageserializer and does not work with |
OOP right now. Corrected by converting to XML. | OOP right now. Corrected by converting to XML. |
2. OpenExecQuery - Code is incorrect in that it does not include the |
2. OpenExecQuery - Code is incomplete in that it does not include the |
return from the exec query function to the aggregator yet. | return from the exec query function to the aggregator yet. |
3. Code for Pull part of OpenQueryInstancesRequest a) should be part of | 3. Code for Pull part of OpenQueryInstancesRequest a) should be part of |
the common CIMOperationRequestDispatcher execCommon code. | the common CIMOperationRequestDispatcher execCommon code. |
4. The changes to WQLCIMOperationRequestDispatcher and CQL... for handling | 4. The changes to WQLCIMOperationRequestDispatcher and CQL... for handling |
pull not completed so we feed the responses back to the EnmerationContext | pull not completed so we feed the responses back to the EnmerationContext |
queues | queues |
3. Lots of minor TODOs, diagnostics, etc. still in the code |
3. Minor TODOs, diagnostics, etc. still in the code |
4. External runtime variables. Proposing that they be fixed for this release | 4. External runtime variables. Proposing that they be fixed for this release |
rather than set by configuration. This should be discussed. Am making | rather than set by configuration. This should be discussed. Am making |
this a separate bug. See bug 9819 for the changes to cover this. | this a separate bug. See bug 9819 for the changes to cover this. |
5. Decision on EnumerationContext timeout (separate thread or just |
5. Move processPull code in dispatcher from template to |
checks during other operations). Can we, in fact really keep the |
common function which would mean adding intermediate classes in |
enumeration context table and queue under control without monitoring |
CIMMessage but would reduce code size. This createsCIMmessage |
with a separate thread. We must monitor for: |
CIMPullRequestData... between CIMRequestDataMessage and the Pull requests |
a. Client operation that stop requesting (i.e. inter operation time |
since they all have exactly the same input and output pararameters. |
exceeds operationTimeout). Note that if it simply exceeds the time |
6. Extension to avoid double move of objects in CIMResponseData (one |
the next operation does the cleanup. The issue is those clients that |
|
simply stop and do not either close or go to completion. |
|
b. We should protect against providers that no not every finish delivering |
|
or take to long between deliveries. This does not exist in Pegasus |
|
today |
|
6. Consider moving some of the code in dispatcher from templates to common |
|
functions which would mean adding intermediate classes in CIMMessage but |
|
would reduce code size. |
|
7. Extension to avoid double move of objects in CIMResponseData (one |
|
into enumerationContext queue and second to new cimResponseData for | into enumerationContext queue and second to new cimResponseData for |
response. Want to avoid second move by extending Open/Pull response | response. Want to avoid second move by extending Open/Pull response |
messages to include count and CIMResponse data to count objects out | messages to include count and CIMResponse data to count objects out |
of queue when converting (avoids the second move). Big issue here |
of queue when converting (avoids the second move). This would mean |
with binary data since need to extend format to count it. |
extending the output writers to allow the count field to be supplied |
8. NEXT TASKS: |
so they would only create output for up to the count supplied. |
a. test the enumeration timeout thread |
9. Add more static tests (currently only OpenEnumerateInstances and |
b. finish and test the OpenQueryInstances |
OpenEnumerateInstanceNames covered). |
|
Low priority because most of this except exact XML covered in other |
|
tests. note that we can only add very limited tests since a) no |
|
way to test multiple opertions in sequence(i.e. open/pull) and |
|
cannot be sure how many responses will come back in all cases even |
|
for open. |
|
10. Could clean up the CIMOperationRequestDecoder.cpp rejectCIMException |
|
further since there is some overlap. Low priority. |
|
11.Correct issue between operations and HTTP where we are sending |
|
trailers with exceptions. Also correct issue where we are |
|
sending endOfSequence and EnumerationContext in response when |
|
we send CIMException. DONE Except that we really need to get |
|
rid of the trailers completely for pull operations. Need to |
|
have flag to send as non trailer (probably non_chunked flag) |
|
12.Make enumContextTable hashtable dynamicand create entirely within |
|
CIMOperationRequestDispatcher.cpp. Today it has a static size |
|
|
|
NEXT TASKS: |
|
b. Finish and test the OpenQueryInstances |
c. Clean up TODOs | c. Clean up TODOs |
d. Find issue when we run makepoststarttests in pullop client with |
d. Find issue that is causing occasional failures under load. It |
forceProviderProcesses = true. This causes an operation like |
is probably a threading issue between the 3 possible threads |
cimcli pei CIM_ManagedElement to not complete (client timeout) |
that use the EnumerationContext (request thread, provider thread, |
sometimes. |
timeout thread) and a place where not mutuxed, primarily the |
|
timeout thread. |
|
|
|
2 May 2014 |
|
1. Remove Diagnostics from ResponseData.cpp |
|
2. Correct setup and start of EnumerationContextTimerThread |
|
3. Change limit on max number of enum contexts to be set from Dispatcher. |
|
4. Increase size of hashtable for enum contexts. |
|
5. Corrected issue causing failures in removeContext. Now runs through nightly |
|
tests most of the time. |
|
1 May 2014 |
|
1. Cleanup of code and variable names. |
|
2. Removed namespace variable from EnumerationContext. It was never used. |
|
3. Added test for max number of open enumerations. Right now it is fixed |
|
and set about 100. Note that this is tied to the size of hash table |
|
so that there is a issue with more dynamic setting of max and the |
|
hash table size. |
|
4. Removed several unused functions. |
|
5. Found one possible issue causing thread conflict but not the core one |
|
yet. |
|
|
|
30 April |
|
1. Added exception response to dispatcher for Limits exceeded on |
|
CreateEnumerationContext. Returns Exceeded server limits CIMException. |
|
2. Fixed possible deadlock where we were not unlocking EnumerationContext |
|
under error condition |
|
|
|
|
|
27 April - mergeout to head of tree |
|
1. Mergeout of the code to the head of tree. Documented that mergeout in |
|
the bug |
|
|
|
27 April 2014 |
|
1. Clean up in a number of areas, mostly just code without changing |
|
functionality. |
|
2. Modified CIMMessage.h slightly to clarify names of the pull intermediate |
|
messages (the common open and pull response); |
|
3. Removed a number of diagnostics from CIMResponseData |
|
4. Added new function to ResponseStressTestProvider to be able to terminate |
|
output after a defined number of objects with a CIMException. |
|
5. Removed a number of other TODOs |
|
6. Corrected a couple of errors in the server message bundle. |
|
7. Modified ResponseEncoder to only output the error for pull errors. |
|
It was errounously outputting the EndOfSequence, EnumerationContext and |
|
the error. This way, only the error is sent which is spec. |
|
8. Removed number of TODOs and cleaned up a couple of others. |
|
9. Added static tests for OpenEnumerateInstanceNames. |
|
10. Modified a number of the temporary diagnostics to be permanent by |
|
changing them to PEGASUS_DEBUG_ASSERTs |
|
|
|
22 April 2014 |
|
1. Clean up some messages. |
|
2. Still trying to find issue that randomly keeps messages in timeout |
|
queue long after they have been closed and returned. |
|
3. Fixed memory loss error. |
|
4. Added zero reject for OperationTimeout because that effectively disables |
|
the whole timeout mechanism so that enumerations could be started, never |
|
completed by the client and would just hang around in memory. That |
|
would be a significant DDOS attack (start very large enum with no |
|
timeout) and never do pulls after open. |
|
|
|
21 April 2014 |
|
1. Reorganized code in CIMOperationRequestDecoder.cpp ...Iparam classes. |
|
Cleaned up the rejectCIMException code. |
|
2. Cleanup some issues in the EnumerationContextTimeout Thread. |
|
3. Fixed issue in pullop where it was using zero as default for default |
|
operation timeout where it should have been NULL, the DMTF specified |
|
default. |
|
4. Enabled the test to reject 0 as operation timeout on a request and but |
|
controled by a #define in CIMOperationRequestDispatcher.cpp |
|
5. Added test for excessive new OperationContext entries in table. |
|
|
|
18 April 2014 |
|
1. Internationalize remaining messages in CIMOperationRequestDecoder.cpp and |
|
clean up the decoders for some of the messages so they use the |
|
...Iparam classes. Note that we did not clean up all of the old message |
|
decoders, just the new ones and we did not clean up the Count message |
|
since it is deprecated. TODO clean these up so the decoder is really |
|
consistent. |
|
2. Enabled the EnumerationContext Timer and removed code for alternate |
|
non-thread solution. |
|
|
|
17 April 2014 |
|
1. Reorganized the lock/unlock for handling the EnumerationContext because |
|
there were thread windows (i.e. using the context after it was released |
|
by other thread). |
|
2. Modified code for the InteroperationTimerThread and deleted old code that |
|
allowed this whole thread to by bypassed. |
|
3. Internationalized a number of CIMOperationRequestDispatcher CIMException |
|
response messages. |
|
4. Fixed stress tests in Client/tests/pullop that were getting timeout. The |
|
issue was not the pull code but that fact that the idle client timeout |
|
appears to be measureing to the end of the operation and the operation |
|
was taking more than 40 seconds which is the default timeout. The idle |
|
timeout takes no account of the fact that chunks are being regularly |
|
delivered. |
|
5. Several minor code changes. |
|
NOTE: At this point the code passes extensive tests of the pull operations |
|
both in OOP and none OOP mode (but with lots of diagnostics that may |
|
be affecting timing). |
| |
10 April 2014 | 10 April 2014 |
1. Fix issues causing failure with repeated pull operations. | 1. Fix issues causing failure with repeated pull operations. |