Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing indications against a container sometimes fails #3022

Closed
KSchopmeyer opened this issue Jun 9, 2023 · 11 comments · Fixed by #3148
Closed

Testing indications against a container sometimes fails #3022

KSchopmeyer opened this issue Jun 9, 2023 · 11 comments · Fixed by #3148

Comments

@KSchopmeyer
Copy link
Collaborator

KSchopmeyer commented Jun 9, 2023

Sending indications from the container sometimes fails in not sending requested number of indications. This shows up in the end2end test but also when running the pegasusindicationtest.py example.

It typically sends less than the number requested but usually sends some and the remainder appear to be still the the OpenPegasus output queue.

So far, this appears to be an issue with the container and not with testing where OpenPegasus and pywbem are in the same system.

It almost never sends zero indications before the issue occurs.

The following is an example of passing the test when sending 10 indicaitons and failing the test when the indication count is 100 indications but having received 23 indications and with 77 still in the OpenPegasus output queue.

In general when insufficient indications are sent from the container, the remainer can be found in a queue in Open Pegasus after the test using code similar to the following:

'''
insts = self.conn.EnumerateInstances(
'PG_ListenerDestinationQueue', namespace='root/PG_Internal')
for inst in insts:
print('ListenerDestinationName={}:\n QueueFullDropped={} , '
'RetryAttemptsExceeded={}, InQueue={}'
.format(inst['ListenerDestinationName'],
inst['QueueFullDroppedIndications'],
inst['RetryAttemptsExceededIndications'],
inst['CurrentIndications']))
'''

The conclusion reached is that there is some sort of occasional time issue between the listener and WBEM server that causes the server to get a zero length completion to its request for the listener response on occasions. This appears to be independent of whether the listener and sender are in the same environment or in containers, etc. In pywbem this might happen for about 1 indication in 4000 when the server is sending indications without delay. However, the indications are not being lost.\

OpenPegasus indication sender attempts an indication send once and then requeues it for resend based on a retry timer. It does this the number of times defined by configuration variables. The pywbem test environment is testing for time between indications received (ex. 5 sec. but the WBEM server is delaying for about 30 seconds before retrying the indication. Therefore our tests fail thinking that an indicaiton was lost. Note that the example code in the examples directory actually confirms that the indications are still in the OpenPegasus dlayed queue to be sent later.

We have not figured out why the the zero lengh response but we propose that for now we document the issue in the pywbem documentation (ex. troubleshooting) as follows:

=========================== proposed issue resolution

If there is a case where the pywbem listener appears to be losing indications
sent from at least the OpenPegasus server, this may be due to timout/retry
settings issues between the WBEM server and pywbem listener.

OpenPegasus has two configuration settings that can impact sending indications:

  1. maxIndicationDeliveryRetryAttempts (Default 3 seconds)

    If set to a positive integer, value defines the number of times
    indication service will enable the reliableIndication feature
    and try to deliver an indication to a particular listener destination.
    This does not effect the original delivery attempt. A value of 0
    disables reliable indication feature completely, and cimserver will
    deliver the indication once.

  2. minIndicationDeliveryRetryInterval (Default: 30 seconds).

    If set to a positive integer, this value defines the minimal time interval
    in seconds for the indication service to wait before retrying to deliver an
    indication to a listener destination that previously failed. Cimserver may
    take longer due to QoS or other processing.

Together these configuration variables try to insure that indications will be
delivered. If there is an issue sending any single indication it is put into
a delay queue for the destination along with any suceeding indications that
are created for the same destination. After the timeout defined by the
configuration variable minIndicationDeliveryRetryInterval, OpenPegasus
attempts to send the indication again. It repeats this process the number of
times determined by the maxIndicationDeliveryRetryAttempts configuration
variable.

Thus, as a default after receiving anything but a successful response from the
listener OpenPegasus waits 30 seconds and retries. It repeats this process
3 times before discarding the indication.

As noted in pywbem issue #3022 tests
with OpenPegasus under high indication loading have indicated that occasionally
the WBEM server receives a zero length response immediatly after sending the
indication. This is treated as
an error and the retry process started. If any timeouts or time checks in the
listener, (ex. very short times in tests between received indications) these
timeouts could be interpreted as lost indications when, in fact, OpenPegasus
will wait 30 seconds and then retry the indication that the server thought
had failed.

This was the case with testing against local OpenPegasus Docker containers where
the WBEM server was requested to deliver a fixed number of indications as fast
as possible but the test listener set a timeout of 3 seonds with no indication
received to indicate that the delivery has stopped before all requested
indications had been delivered. However the delay was simply waiting 30 seconds
delay before resending the failed indications. Setting the
OpenPegasus WBEM server to different timeout times can correct this problem
(ex. delay 2 seconds, retry attempts 5 for local testing).

The OpenPegasus configuration variables can be set with the OpenPegasus cimconfig command
line utility either when the server is running or stopped.

See the OpenPegasus documenation or OpenPegasus cimconfig --help for
detailed information on the command parameters for setting these configuation
variables.

============================

@KSchopmeyer
Copy link
Collaborator Author

For example, this is a test that failed:

./pegasusindicationtest.py localhost:15988 -d 192.168.4.70 -l 192.168.4.70 -i 5000 -r 10
Rcvd 3562 indications.
Rcvd 3885 indications.
waiting 1.51 sec. with no indications ct 1
waiting 2.51 sec. with no indications ct 2
waiting 3.51 sec. with no indications ct 3
waiting 4.51 sec. with no indications ct 4
waiting 5.51 sec. with no indications ct 5
Nothing received for 6.510553 sec: received=3885 time=9.707208 sec: 400.22 per sec. stall ctr=6
Wait for expected indications failed.
Attempting to display pegasus Indication dest queue.

ListenerDestinationName=root/interop:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1:
   QueueFullDropped=0 , RetryAttemptsExceeded=0, InQueue=1115

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Oct 4, 2023

However, this is clearly sending significant quantities of indications from an OpenPegasus container.

Test repeated send of 1000 indications 10 time successfully.

ndication-example)$ ./pegasusindicationtest.py localhost:15988 -d 192.168.4.70 -l 192.168.4.70 -i 1000 -r 10
Rcvd 1000 indications, time=2.076879 sec, 481.49 per sec
Rcvd 1000 indications, time=3.408924 sec, 293.35 per sec
Rcvd 1000 indications, time=3.225261 sec, 310.05 per sec
Rcvd 908 indications.
Rcvd 1000 indications, time=4.850191 sec, 206.18 per sec
Rcvd 1000 indications, time=4.017003 sec, 248.94 per sec
Rcvd 1000 indications, time=3.633305 sec, 275.23 per sec
Rcvd 1000 indications, time=2.500704 sec, 399.89 per sec
Rcvd 1000 indications, time=3.432194 sec, 291.36 per sec
Rcvd 1000 indications, time=4.107473 sec, 243.46 per sec
Rcvd 1000 indications, time=2.866246 sec, 348.89 per sec

Or this test with 4000 indications sent:


$ ./pegasusindicationtest.py localhost:15988 -d 192.168.4.70 -l 192.168.4.70 -i 4000
Rcvd 2912 indications.
Rcvd 3588 indications.
Rcvd 4000 indications, time=8.508808 sec, 470.10 per sec
Indication test completed: Success

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Oct 4, 2023

We are still failing some time but not sure at this point if it is a pywbem issue or an OpenPegasus issue.

It appears that the same issue occurs much more frequently in pywbemtools where the test will send only a few indications before failing with the same issue. I propose that we can better analyze the issue with that code to determine whether it is OpenPegasus or pywbem that is causing the problem.

Note that in comments below we document that the issue can be seen in OpenPegasus where in the indication send and receive the failure is documented as 0 bytes received return in very short time (i.e. less than millisecond).

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Nov 6, 2023

It appears that there is some timing issue between the pywbemlistener and OpenPegasus such that indication delivery fails.

However, there is another issue behind that problem in our test design. OpenPegasus includes a the following two configuration parameters:

  • minIndicationDeliveryRetryInterval - wait time before an indication is retried.
  • maxIndicationDeliveryRetryAttempts - Maximum number of times an indication will be retried before it is dropped from the retry queue.

to set the minimum time to next retry and the max number of retries. The default values of these parameters in the container are:

minIndicationDeliveryRetryInterval=30
maxIndicationDeliveryRetryAttempts=3

In effect, they are designed to delay for 30 seconds (delay the failed indication and any subsequent indications) after a delivery failure where a delivery failure is one call without any retry.

The following is a test I ran after changing the minIndicationDeliveryRetryInterval from 30 sec (the default) to 2 seconds. It indicates that we do keep retrying and that if the min retry interval is less than the test programs max time value for failure (right now a few seconds) the client does continue to receive indications but with frequent retries.

Note however, in the example below we still finally get a failure but it is after may cases where we go through the server 2 sec timeout and we again get indications.

In addition, it would appear that indications are being dropped at the time of the failures.

This however introduces other questions. The reason for the long delay is that the OpenPegasus authors thought that failures would be largely due to indication receivers being off line for some time, not the type of issue we see here. with the default delays the indication will still be sent if the indication receiver is missing for a couple of minutes. Setting the delay to just 2-3 seconds means that the indication receiver can be missing for only a few seconds before Pegasus starts throwing away indications after 3 delayed retries.


(pywbem311) kschopmeyer@penny:~/gitpywbems/pywbem311/pywbem/examples(master)$ ./pegasusindicationtest.py localhost:15988 -d 192.168.4.70 -i 400
Rcvd 168 indications.
waiting 1.95 sec. with no indications rcvd
Rcvd 382 indications.
waiting 1.68 sec. with no indications rcvd
Rcvd 400 indications, time=4.535293 sec, 88.2 indications/sec.
Indication test completed: Success
(pywbem311) kschopmeyer@penny:~/gitpywbems/pywbem311/pywbem/examples(master)$ ./pegasusindicationtest.py localhost:15988 -d 192.168.4.70 -i 4000
Missed 1 indications at 269, last rcvd seq num=270, exp seq num=270
Missed 3 indications at 271, last rcvd seq num=272, exp seq num=272
Missed 3 indications at 275, last rcvd seq num=276, exp seq num=276
Missed 2 indications at 279, last rcvd seq num=280, exp seq num=280
Missed 3 indications at 282, last rcvd seq num=283, exp seq num=283
Missed 1 indications at 286, last rcvd seq num=287, exp seq num=287
Missed 5 indications at 288, last rcvd seq num=289, exp seq num=289
Missed 2 indications at 294, last rcvd seq num=295, exp seq num=295
Missed 2 indications at 297, last rcvd seq num=298, exp seq num=298
Missed 2 indications at 300, last rcvd seq num=301, exp seq num=301
Missed 3 indications at 303, last rcvd seq num=304, exp seq num=304
Missed 2 indications at 307, last rcvd seq num=308, exp seq num=308
Missed 2 indications at 310, last rcvd seq num=311, exp seq num=311
Missed 3 indications at 313, last rcvd seq num=314, exp seq num=314
Missed 3 indications at 317, last rcvd seq num=318, exp seq num=318
Missed 4 indications at 321, last rcvd seq num=322, exp seq num=322
Missed 4 indications at 326, last rcvd seq num=327, exp seq num=327
Missed 3 indications at 331, last rcvd seq num=332, exp seq num=332
Missed 2 indications at 335, last rcvd seq num=336, exp seq num=336
Missed 2 indications at 338, last rcvd seq num=339, exp seq num=339
Missed 3 indications at 341, last rcvd seq num=342, exp seq num=342
Missed 3 indications at 345, last rcvd seq num=346, exp seq num=346
Missed 2 indications at 349, last rcvd seq num=350, exp seq num=350
Missed 2 indications at 352, last rcvd seq num=353, exp seq num=353
Missed 3 indications at 355, last rcvd seq num=356, exp seq num=356
Missed 2 indications at 359, last rcvd seq num=360, exp seq num=360
Missed 3 indications at 362, last rcvd seq num=363, exp seq num=363
Missed 3 indications at 366, last rcvd seq num=367, exp seq num=367
Missed 3 indications at 370, last rcvd seq num=371, exp seq num=371
Missed 2 indications at 374, last rcvd seq num=375, exp seq num=375
Missed 3 indications at 377, last rcvd seq num=378, exp seq num=378
Missed 3 indications at 381, last rcvd seq num=382, exp seq num=382
Missed 3 indications at 385, last rcvd seq num=386, exp seq num=386
Missed 2 indications at 389, last rcvd seq num=390, exp seq num=390
Missed 3 indications at 392, last rcvd seq num=393, exp seq num=393
Missed 2 indications at 396, last rcvd seq num=397, exp seq num=397
Missed 3 indications at 399, last rcvd seq num=400, exp seq num=400
Missed 2 indications at 403, last rcvd seq num=404, exp seq num=404
Missed 2 indications at 406, last rcvd seq num=407, exp seq num=407
Missed 3 indications at 409, last rcvd seq num=410, exp seq num=410
Missed 2 indications at 413, last rcvd seq num=414, exp seq num=414
Missed 2 indications at 416, last rcvd seq num=417, exp seq num=417
Missed 3 indications at 419, last rcvd seq num=420, exp seq num=420
Missed 3 indications at 423, last rcvd seq num=424, exp seq num=424
Missed 2 indications at 427, last rcvd seq num=428, exp seq num=428
Missed 3 indications at 430, last rcvd seq num=431, exp seq num=431
Missed 2 indications at 434, last rcvd seq num=435, exp seq num=435
Missed 1 indications at 437, last rcvd seq num=438, exp seq num=438
Missed 3 indications at 439, last rcvd seq num=440, exp seq num=440
Missed 2 indications at 443, last rcvd seq num=444, exp seq num=444
Missed 3 indications at 446, last rcvd seq num=447, exp seq num=447
Missed 3 indications at 450, last rcvd seq num=451, exp seq num=451
Missed 3 indications at 454, last rcvd seq num=455, exp seq num=455
Missed 2 indications at 458, last rcvd seq num=459, exp seq num=459
Missed 3 indications at 461, last rcvd seq num=462, exp seq num=462
Missed 2 indications at 465, last rcvd seq num=466, exp seq num=466
Missed 2 indications at 468, last rcvd seq num=469, exp seq num=469
Missed 3 indications at 471, last rcvd seq num=472, exp seq num=472
Missed 3 indications at 475, last rcvd seq num=476, exp seq num=476
Missed 3 indications at 479, last rcvd seq num=480, exp seq num=480
Missed 2 indications at 483, last rcvd seq num=484, exp seq num=484
Missed 2 indications at 486, last rcvd seq num=487, exp seq num=487
Missed 2 indications at 489, last rcvd seq num=490, exp seq num=490
Missed 3 indications at 492, last rcvd seq num=493, exp seq num=493
Missed 2 indications at 496, last rcvd seq num=497, exp seq num=497
Missed 2 indications at 499, last rcvd seq num=500, exp seq num=500
Missed 4 indications at 502, last rcvd seq num=503, exp seq num=503
Missed 2 indications at 507, last rcvd seq num=508, exp seq num=508
Missed 3 indications at 510, last rcvd seq num=511, exp seq num=511
Missed 2 indications at 514, last rcvd seq num=515, exp seq num=515
Missed 3 indications at 517, last rcvd seq num=518, exp seq num=518
Missed 3 indications at 521, last rcvd seq num=522, exp seq num=522
Missed 2 indications at 525, last rcvd seq num=526, exp seq num=526
Missed 2 indications at 528, last rcvd seq num=529, exp seq num=529
Missed 2 indications at 531, last rcvd seq num=532, exp seq num=532
Missed 1 indications at 534, last rcvd seq num=535, exp seq num=535
Missed 3 indications at 536, last rcvd seq num=537, exp seq num=537
Missed 3 indications at 540, last rcvd seq num=541, exp seq num=541
Missed 2 indications at 544, last rcvd seq num=545, exp seq num=545
Missed 3 indications at 547, last rcvd seq num=548, exp seq num=548
Missed 3 indications at 551, last rcvd seq num=552, exp seq num=552
Missed 3 indications at 555, last rcvd seq num=556, exp seq num=556
Missed 3 indications at 559, last rcvd seq num=560, exp seq num=560
Missed 2 indications at 563, last rcvd seq num=564, exp seq num=564
Missed 3 indications at 566, last rcvd seq num=567, exp seq num=567
Missed 3 indications at 570, last rcvd seq num=571, exp seq num=571
Missed 3 indications at 574, last rcvd seq num=575, exp seq num=575
Missed 3 indications at 578, last rcvd seq num=579, exp seq num=579
Missed 1 indications at 582, last rcvd seq num=583, exp seq num=583
Missed 3 indications at 584, last rcvd seq num=585, exp seq num=585
Missed 2 indications at 588, last rcvd seq num=589, exp seq num=589
Missed 2 indications at 591, last rcvd seq num=592, exp seq num=592
Missed 3 indications at 594, last rcvd seq num=595, exp seq num=595
Missed 3 indications at 598, last rcvd seq num=599, exp seq num=599
Missed 3 indications at 602, last rcvd seq num=603, exp seq num=603
Missed 2 indications at 606, last rcvd seq num=607, exp seq num=607
Missed 3 indications at 609, last rcvd seq num=610, exp seq num=610
Missed 2 indications at 613, last rcvd seq num=614, exp seq num=614
Missed 3 indications at 616, last rcvd seq num=617, exp seq num=617
Missed 3 indications at 620, last rcvd seq num=621, exp seq num=621
Missed 2 indications at 624, last rcvd seq num=625, exp seq num=625
Missed 2 indications at 627, last rcvd seq num=628, exp seq num=628
Missed 3 indications at 630, last rcvd seq num=631, exp seq num=631
Missed 3 indications at 634, last rcvd seq num=635, exp seq num=635
Missed 2 indications at 638, last rcvd seq num=639, exp seq num=639
Missed 2 indications at 641, last rcvd seq num=642, exp seq num=642
Missed 3 indications at 644, last rcvd seq num=645, exp seq num=645
Missed 2 indications at 648, last rcvd seq num=649, exp seq num=649
Missed 2 indications at 651, last rcvd seq num=652, exp seq num=652
Missed 3 indications at 654, last rcvd seq num=655, exp seq num=655
Missed 3 indications at 658, last rcvd seq num=659, exp seq num=659
Missed 3 indications at 662, last rcvd seq num=663, exp seq num=663
Missed 3 indications at 666, last rcvd seq num=667, exp seq num=667
Missed 3 indications at 670, last rcvd seq num=671, exp seq num=671
Missed 1 indications at 674, last rcvd seq num=675, exp seq num=675
Missed 3 indications at 676, last rcvd seq num=677, exp seq num=677
Missed 2 indications at 680, last rcvd seq num=681, exp seq num=681
Missed 2 indications at 683, last rcvd seq num=684, exp seq num=684
Missed 3 indications at 686, last rcvd seq num=687, exp seq num=687
Missed 2 indications at 690, last rcvd seq num=691, exp seq num=691
Missed 3 indications at 693, last rcvd seq num=694, exp seq num=694
Missed 3 indications at 697, last rcvd seq num=698, exp seq num=698
Missed 2 indications at 701, last rcvd seq num=702, exp seq num=702
Missed 2 indications at 704, last rcvd seq num=705, exp seq num=705
Missed 3 indications at 707, last rcvd seq num=708, exp seq num=708
Missed 3 indications at 711, last rcvd seq num=712, exp seq num=712
Missed 4 indications at 715, last rcvd seq num=716, exp seq num=716
Missed 2 indications at 720, last rcvd seq num=721, exp seq num=721
Missed 3 indications at 723, last rcvd seq num=724, exp seq num=724
Missed 3 indications at 727, last rcvd seq num=728, exp seq num=728
Missed 3 indications at 731, last rcvd seq num=732, exp seq num=732
Missed 3 indications at 735, last rcvd seq num=736, exp seq num=736
Missed 3 indications at 739, last rcvd seq num=740, exp seq num=740
Missed 3 indications at 743, last rcvd seq num=744, exp seq num=744
Missed 2 indications at 747, last rcvd seq num=748, exp seq num=748
Missed 3 indications at 750, last rcvd seq num=751, exp seq num=751
Missed 3 indications at 754, last rcvd seq num=755, exp seq num=755
Missed 2 indications at 758, last rcvd seq num=759, exp seq num=759
Missed 3 indications at 761, last rcvd seq num=762, exp seq num=762
Missed 3 indications at 765, last rcvd seq num=766, exp seq num=766
Missed 3 indications at 769, last rcvd seq num=770, exp seq num=770
Missed 3 indications at 773, last rcvd seq num=774, exp seq num=774
Missed 3 indications at 777, last rcvd seq num=778, exp seq num=778
Missed 2 indications at 781, last rcvd seq num=782, exp seq num=782
Missed 2 indications at 784, last rcvd seq num=785, exp seq num=785
Missed 2 indications at 787, last rcvd seq num=788, exp seq num=788
Missed 2 indications at 790, last rcvd seq num=791, exp seq num=791
Missed 3 indications at 793, last rcvd seq num=794, exp seq num=794
Missed 2 indications at 797, last rcvd seq num=798, exp seq num=798
Missed 3 indications at 800, last rcvd seq num=801, exp seq num=801
Missed 3 indications at 804, last rcvd seq num=805, exp seq num=805
Missed 2 indications at 808, last rcvd seq num=809, exp seq num=809
Missed 3 indications at 811, last rcvd seq num=812, exp seq num=812
Missed 3 indications at 815, last rcvd seq num=816, exp seq num=816
Missed 2 indications at 819, last rcvd seq num=820, exp seq num=820
Missed 2 indications at 822, last rcvd seq num=823, exp seq num=823
Missed 3 indications at 825, last rcvd seq num=826, exp seq num=826
Missed 3 indications at 829, last rcvd seq num=830, exp seq num=830
Missed 2 indications at 833, last rcvd seq num=834, exp seq num=834
Missed 3 indications at 836, last rcvd seq num=837, exp seq num=837
Missed 2 indications at 840, last rcvd seq num=841, exp seq num=841
Missed 3 indications at 843, last rcvd seq num=844, exp seq num=844
Missed 3 indications at 847, last rcvd seq num=848, exp seq num=848
Missed 1 indications at 851, last rcvd seq num=852, exp seq num=852
Missed 2 indications at 853, last rcvd seq num=854, exp seq num=854
Missed 1 indications at 856, last rcvd seq num=857, exp seq num=857
Missed 3 indications at 858, last rcvd seq num=859, exp seq num=859
Missed 2 indications at 862, last rcvd seq num=863, exp seq num=863
Missed 3 indications at 865, last rcvd seq num=866, exp seq num=866
Missed 2 indications at 869, last rcvd seq num=870, exp seq num=870
Missed 2 indications at 872, last rcvd seq num=873, exp seq num=873
Missed 3 indications at 875, last rcvd seq num=876, exp seq num=876
Missed 2 indications at 879, last rcvd seq num=880, exp seq num=880
Missed 3 indications at 882, last rcvd seq num=883, exp seq num=883
Missed 3 indications at 886, last rcvd seq num=887, exp seq num=887
Missed 3 indications at 890, last rcvd seq num=891, exp seq num=891
Missed 4 indications at 894, last rcvd seq num=895, exp seq num=895
Missed 2 indications at 899, last rcvd seq num=900, exp seq num=900
Missed 2 indications at 902, last rcvd seq num=903, exp seq num=903
Missed 3 indications at 905, last rcvd seq num=906, exp seq num=906
Missed 2 indications at 909, last rcvd seq num=910, exp seq num=910
Missed 2 indications at 912, last rcvd seq num=913, exp seq num=913
Missed 2 indications at 915, last rcvd seq num=916, exp seq num=916
Missed 3 indications at 918, last rcvd seq num=919, exp seq num=919
Missed 2 indications at 922, last rcvd seq num=923, exp seq num=923
Missed 3 indications at 925, last rcvd seq num=926, exp seq num=926
Missed 4 indications at 929, last rcvd seq num=930, exp seq num=930
Missed 2 indications at 934, last rcvd seq num=935, exp seq num=935
Missed 2 indications at 937, last rcvd seq num=938, exp seq num=938
Missed 3 indications at 940, last rcvd seq num=941, exp seq num=941
Missed 1 indications at 944, last rcvd seq num=945, exp seq num=945
Missed 3 indications at 946, last rcvd seq num=947, exp seq num=947
Missed 2 indications at 950, last rcvd seq num=951, exp seq num=951
Missed 2 indications at 953, last rcvd seq num=954, exp seq num=954
Missed 3 indications at 956, last rcvd seq num=957, exp seq num=957
Missed 3 indications at 960, last rcvd seq num=961, exp seq num=961
Missed 3 indications at 964, last rcvd seq num=965, exp seq num=965
Missed 2 indications at 968, last rcvd seq num=969, exp seq num=969
Missed 3 indications at 971, last rcvd seq num=972, exp seq num=972
Missed 3 indications at 975, last rcvd seq num=976, exp seq num=976
Missed 3 indications at 979, last rcvd seq num=980, exp seq num=980
Missed 3 indications at 983, last rcvd seq num=984, exp seq num=984
Missed 2 indications at 987, last rcvd seq num=988, exp seq num=988
Missed 3 indications at 990, last rcvd seq num=991, exp seq num=991
Missed 2 indications at 994, last rcvd seq num=995, exp seq num=995
Missed 2 indications at 997, last rcvd seq num=998, exp seq num=998
Missed 3 indications at 1000, last rcvd seq num=1001, exp seq num=1001
Missed 2 indications at 1004, last rcvd seq num=1005, exp seq num=1005
Missed 2 indications at 1007, last rcvd seq num=1008, exp seq num=1008
Missed 3 indications at 1010, last rcvd seq num=1011, exp seq num=1011
Missed 2 indications at 1014, last rcvd seq num=1015, exp seq num=1015
Missed 2 indications at 1017, last rcvd seq num=1018, exp seq num=1018
Missed 2 indications at 1020, last rcvd seq num=1021, exp seq num=1021
Missed 3 indications at 1023, last rcvd seq num=1024, exp seq num=1024
Missed 2 indications at 1027, last rcvd seq num=1028, exp seq num=1028
Missed 3 indications at 1030, last rcvd seq num=1031, exp seq num=1031
Missed 4 indications at 1034, last rcvd seq num=1035, exp seq num=1035
Missed 1 indications at 1039, last rcvd seq num=1040, exp seq num=1040
Missed 2 indications at 1041, last rcvd seq num=1042, exp seq num=1042
Missed 4 indications at 1044, last rcvd seq num=1045, exp seq num=1045
Missed 2 indications at 1049, last rcvd seq num=1050, exp seq num=1050
Missed 2 indications at 1052, last rcvd seq num=1053, exp seq num=1053
Missed 3 indications at 1055, last rcvd seq num=1056, exp seq num=1056
Missed 4 indications at 1059, last rcvd seq num=1060, exp seq num=1060
Missed 3 indications at 1064, last rcvd seq num=1065, exp seq num=1065
Missed 3 indications at 1068, last rcvd seq num=1069, exp seq num=1069
Missed 3 indications at 1072, last rcvd seq num=1073, exp seq num=1073
Missed 2 indications at 1076, last rcvd seq num=1077, exp seq num=1077
Missed 2 indications at 1079, last rcvd seq num=1080, exp seq num=1080
Missed 2 indications at 1082, last rcvd seq num=1083, exp seq num=1083
Missed 2 indications at 1085, last rcvd seq num=1086, exp seq num=1086
Missed 3 indications at 1088, last rcvd seq num=1089, exp seq num=1089
Missed 1 indications at 1092, last rcvd seq num=1093, exp seq num=1093
Missed 2 indications at 1094, last rcvd seq num=1095, exp seq num=1095
Missed 2 indications at 1097, last rcvd seq num=1098, exp seq num=1098
Missed 2 indications at 1100, last rcvd seq num=1101, exp seq num=1101
Missed 2 indications at 1103, last rcvd seq num=1104, exp seq num=1104
Missed 2 indications at 1106, last rcvd seq num=1107, exp seq num=1107
Missed 2 indications at 1109, last rcvd seq num=1110, exp seq num=1110
Missed 2 indications at 1112, last rcvd seq num=1113, exp seq num=1113
Missed 3 indications at 1115, last rcvd seq num=1116, exp seq num=1116
Missed 3 indications at 1119, last rcvd seq num=1120, exp seq num=1120
Missed 2 indications at 1123, last rcvd seq num=1124, exp seq num=1124
Missed 3 indications at 1126, last rcvd seq num=1127, exp seq num=1127
Missed 2 indications at 1130, last rcvd seq num=1131, exp seq num=1131
Missed 2 indications at 1133, last rcvd seq num=1134, exp seq num=1134
Missed 2 indications at 1136, last rcvd seq num=1137, exp seq num=1137
Missed 3 indications at 1139, last rcvd seq num=1140, exp seq num=1140
Missed 3 indications at 1143, last rcvd seq num=1144, exp seq num=1144
Missed 3 indications at 1147, last rcvd seq num=1148, exp seq num=1148
Missed 3 indications at 1151, last rcvd seq num=1152, exp seq num=1152
Missed 3 indications at 1155, last rcvd seq num=1156, exp seq num=1156
Missed 3 indications at 1159, last rcvd seq num=1160, exp seq num=1160
Missed 2 indications at 1163, last rcvd seq num=1164, exp seq num=1164
Missed 2 indications at 1166, last rcvd seq num=1167, exp seq num=1167
Missed 2 indications at 1169, last rcvd seq num=1170, exp seq num=1170
Missed 2 indications at 1172, last rcvd seq num=1173, exp seq num=1173
Missed 3 indications at 1175, last rcvd seq num=1176, exp seq num=1176
Missed 3 indications at 1179, last rcvd seq num=1180, exp seq num=1180
Missed 2 indications at 1183, last rcvd seq num=1184, exp seq num=1184
Missed 3 indications at 1186, last rcvd seq num=1187, exp seq num=1187
Missed 3 indications at 1190, last rcvd seq num=1191, exp seq num=1191
Missed 3 indications at 1194, last rcvd seq num=1195, exp seq num=1195
Missed 3 indications at 1198, last rcvd seq num=1199, exp seq num=1199
Missed 3 indications at 1202, last rcvd seq num=1203, exp seq num=1203
Missed 2 indications at 1206, last rcvd seq num=1207, exp seq num=1207
Missed 2 indications at 1209, last rcvd seq num=1210, exp seq num=1210
Missed 2 indications at 1212, last rcvd seq num=1213, exp seq num=1213
Missed 2 indications at 1215, last rcvd seq num=1216, exp seq num=1216
Missed 3 indications at 1218, last rcvd seq num=1219, exp seq num=1219
Missed 2 indications at 1222, last rcvd seq num=1223, exp seq num=1223
Missed 2 indications at 1225, last rcvd seq num=1226, exp seq num=1226
Missed 3 indications at 1228, last rcvd seq num=1229, exp seq num=1229
Missed 3 indications at 1232, last rcvd seq num=1233, exp seq num=1233
Missed 4 indications at 1236, last rcvd seq num=1237, exp seq num=1237
Missed 3 indications at 1241, last rcvd seq num=1242, exp seq num=1242
Missed 3 indications at 1245, last rcvd seq num=1246, exp seq num=1246
Missed 3 indications at 1249, last rcvd seq num=1250, exp seq num=1250
Missed 3 indications at 1253, last rcvd seq num=1254, exp seq num=1254
Missed 2 indications at 1257, last rcvd seq num=1258, exp seq num=1258
Missed 2 indications at 1260, last rcvd seq num=1261, exp seq num=1261
Missed 3 indications at 1263, last rcvd seq num=1264, exp seq num=1264
Missed 2 indications at 1267, last rcvd seq num=1268, exp seq num=1268
Missed 3 indications at 1270, last rcvd seq num=1271, exp seq num=1271
Missed 2 indications at 1274, last rcvd seq num=1275, exp seq num=1275
Missed 2 indications at 1277, last rcvd seq num=1278, exp seq num=1278
Missed 2 indications at 1280, last rcvd seq num=1281, exp seq num=1281
Missed 2 indications at 1283, last rcvd seq num=1284, exp seq num=1284
Missed 2 indications at 1286, last rcvd seq num=1287, exp seq num=1287
Missed 3 indications at 1289, last rcvd seq num=1290, exp seq num=1290
Missed 3 indications at 1293, last rcvd seq num=1294, exp seq num=1294
Missed 4 indications at 1297, last rcvd seq num=1298, exp seq num=1298
Missed 3 indications at 1302, last rcvd seq num=1303, exp seq num=1303
Missed 3 indications at 1306, last rcvd seq num=1307, exp seq num=1307
Missed 3 indications at 1310, last rcvd seq num=1311, exp seq num=1311
Missed 3 indications at 1314, last rcvd seq num=1315, exp seq num=1315
Missed 3 indications at 1318, last rcvd seq num=1319, exp seq num=1319
Missed 2 indications at 1322, last rcvd seq num=1323, exp seq num=1323
Missed 3 indications at 1325, last rcvd seq num=1326, exp seq num=1326
Missed 3 indications at 1329, last rcvd seq num=1330, exp seq num=1330
Missed 2 indications at 1333, last rcvd seq num=1334, exp seq num=1334
Missed 2 indications at 1336, last rcvd seq num=1337, exp seq num=1337
Missed 2 indications at 1339, last rcvd seq num=1340, exp seq num=1340
Missed 3 indications at 1342, last rcvd seq num=1343, exp seq num=1343
Missed 3 indications at 1346, last rcvd seq num=1347, exp seq num=1347
Missed 2 indications at 1350, last rcvd seq num=1351, exp seq num=1351
Missed 2 indications at 1353, last rcvd seq num=1354, exp seq num=1354
Missed 3 indications at 1356, last rcvd seq num=1357, exp seq num=1357
Missed 2 indications at 1360, last rcvd seq num=1361, exp seq num=1361
Missed 2 indications at 1363, last rcvd seq num=1364, exp seq num=1364
Missed 2 indications at 1366, last rcvd seq num=1367, exp seq num=1367
Missed 3 indications at 1369, last rcvd seq num=1370, exp seq num=1370
Missed 2 indications at 1373, last rcvd seq num=1374, exp seq num=1374
Missed 2 indications at 1376, last rcvd seq num=1377, exp seq num=1377
Missed 3 indications at 1379, last rcvd seq num=1380, exp seq num=1380
Missed 2 indications at 1383, last rcvd seq num=1384, exp seq num=1384
Missed 2 indications at 1386, last rcvd seq num=1387, exp seq num=1387
Missed 3 indications at 1389, last rcvd seq num=1390, exp seq num=1390
Missed 2 indications at 1393, last rcvd seq num=1394, exp seq num=1394
Missed 2 indications at 1396, last rcvd seq num=1397, exp seq num=1397
Missed 3 indications at 1399, last rcvd seq num=1400, exp seq num=1400
Missed 5 indications at 1403, last rcvd seq num=1404, exp seq num=1404
Missed 2 indications at 1409, last rcvd seq num=1410, exp seq num=1410
Missed 2 indications at 1412, last rcvd seq num=1413, exp seq num=1413
Missed 3 indications at 1415, last rcvd seq num=1416, exp seq num=1416
Missed 3 indications at 1419, last rcvd seq num=1420, exp seq num=1420
Missed 2 indications at 1423, last rcvd seq num=1424, exp seq num=1424
Missed 3 indications at 1426, last rcvd seq num=1427, exp seq num=1427
Missed 2 indications at 1430, last rcvd seq num=1431, exp seq num=1431
Missed 3 indications at 1433, last rcvd seq num=1434, exp seq num=1434
Missed 2 indications at 1437, last rcvd seq num=1438, exp seq num=1438
Missed 2 indications at 1440, last rcvd seq num=1441, exp seq num=1441
Missed 3 indications at 1443, last rcvd seq num=1444, exp seq num=1444
Missed 2 indications at 1447, last rcvd seq num=1448, exp seq num=1448
Missed 3 indications at 1450, last rcvd seq num=1451, exp seq num=1451
Missed 2 indications at 1454, last rcvd seq num=1455, exp seq num=1455
Missed 4 indications at 1457, last rcvd seq num=1458, exp seq num=1458
Missed 3 indications at 1462, last rcvd seq num=1463, exp seq num=1463
Missed 2 indications at 1466, last rcvd seq num=1467, exp seq num=1467
Missed 3 indications at 1469, last rcvd seq num=1470, exp seq num=1470
Missed 3 indications at 1473, last rcvd seq num=1474, exp seq num=1474
Missed 2 indications at 1477, last rcvd seq num=1478, exp seq num=1478
Missed 3 indications at 1480, last rcvd seq num=1481, exp seq num=1481
Missed 1 indications at 1484, last rcvd seq num=1485, exp seq num=1485
Missed 3 indications at 1486, last rcvd seq num=1487, exp seq num=1487
Missed 2 indications at 1490, last rcvd seq num=1491, exp seq num=1491
Missed 2 indications at 1493, last rcvd seq num=1494, exp seq num=1494
Missed 2 indications at 1496, last rcvd seq num=1497, exp seq num=1497
Missed 3 indications at 1499, last rcvd seq num=1500, exp seq num=1500
Missed 3 indications at 1503, last rcvd seq num=1504, exp seq num=1504
Missed 3 indications at 1507, last rcvd seq num=1508, exp seq num=1508
Missed 2 indications at 1511, last rcvd seq num=1512, exp seq num=1512
Missed 2 indications at 1514, last rcvd seq num=1515, exp seq num=1515
Missed 3 indications at 1517, last rcvd seq num=1518, exp seq num=1518
Missed 2 indications at 1521, last rcvd seq num=1522, exp seq num=1522
Missed 3 indications at 1524, last rcvd seq num=1525, exp seq num=1525
Missed 2 indications at 1528, last rcvd seq num=1529, exp seq num=1529
Missed 3 indications at 1531, last rcvd seq num=1532, exp seq num=1532
Missed 2 indications at 1535, last rcvd seq num=1536, exp seq num=1536
Missed 3 indications at 1538, last rcvd seq num=1539, exp seq num=1539
Missed 2 indications at 1542, last rcvd seq num=1543, exp seq num=1543
Missed 3 indications at 1545, last rcvd seq num=1546, exp seq num=1546
Missed 2 indications at 1549, last rcvd seq num=1550, exp seq num=1550
Missed 3 indications at 1552, last rcvd seq num=1553, exp seq num=1553
Missed 2 indications at 1556, last rcvd seq num=1557, exp seq num=1557
Missed 3 indications at 1559, last rcvd seq num=1560, exp seq num=1560
Missed 5 indications at 1563, last rcvd seq num=1564, exp seq num=1564
Missed 3 indications at 1569, last rcvd seq num=1570, exp seq num=1570
Missed 2 indications at 1573, last rcvd seq num=1574, exp seq num=1574
Missed 3 indications at 1576, last rcvd seq num=1577, exp seq num=1577
Missed 3 indications at 1580, last rcvd seq num=1581, exp seq num=1581
Missed 3 indications at 1584, last rcvd seq num=1585, exp seq num=1585
Missed 2 indications at 1588, last rcvd seq num=1589, exp seq num=1589
Missed 2 indications at 1591, last rcvd seq num=1592, exp seq num=1592
Missed 3 indications at 1594, last rcvd seq num=1595, exp seq num=1595
Rcvd 645 indications.
waiting 2.00 sec. with no indications rcvd
Missed 1 indications at 1598, last rcvd seq num=1599, exp seq num=1599
Rcvd 985 indications.
waiting 1.36 sec. with no indications rcvd
Rcvd 1170 indications.
Rcvd 1811 indications.
Rcvd 2025 indications.
waiting 1.68 sec. with no indications rcvd
Rcvd 2430 indications.
Rcvd 3045 indications.
waiting 1.10 sec. with no indications rcvd
waiting 2.10 sec. with no indications rcvd
waiting 3.10 sec. with no indications rcvd
waiting 4.10 sec. with no indications rcvd
waiting 5.10 sec. with no indications rcvd
Nothing received for 6.101447 sec: received=3045 time=11.115051 sec: 273.95 per sec. stall ctr=6
Wait for expected indications failed.
Attempting to display pegasus Indication dest queue.

ListenerDestinationName=root/interop:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1:
   QueueFullDropped=955 , RetryAttemptsExceeded=0, InQueue=0


@KSchopmeyer
Copy link
Collaborator Author

We have also notices that:

  1. When we turn on logging we get much fewer indication export failures on the serve. One test of 4000 indications had only 4 cases of time without indications received.
  2. After the linux test system has run for several days and there is a buildup of background processes, We tend to get a lot more failures.

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Nov 14, 2023

Testing with pywbem examples. In a number of tests with the pywbem examples of listen.py and send_indications.py/send_indications.sh we are able to send many thousands of indications without an issue between these senders in both the same machine as the listener and with the senders in a container.

from container
send_indication.sh 10,000 indications, 2:23 min or 142 sec. or about 68 per second.

From sender local

send_indication.sl 10,000 indications 1:45 min or 105 sec or 95 per sec
send_indications.py 10,000 indicaitons, 23:29 min 23.5 sec or 425 indications per second.

We do not have python on the OpenPegasus container so did not run that test. However, my conclusion at this point is that we do not lose indications when sent either local or from container using just the test tools. However, we clearly do have issues when using OpenPegasus.

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Nov 14, 2023

The following is an example of an indication that failed to send and then was resent after the minretry interval successfully.

see lines with "===================" for comments

``
1700345666s-250661us: IndicationGeneration [11:139770334885632:IndicationService.cpp:3428]: Received Test_IndicationProviderClass Indication 0x7f1ed1210150 from namespace test/TestProvider from provider IndicationTestProvider
1700345666s-250670us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

2 20231118221426.246291+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 1

1700345666s-250704us: Http [11:139770333767424:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345666s-250720us: Http [11:139770333767424:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345666s-250748us: XmlIO [11:139770333767424:HTTPConnection.cpp:918]:
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

2 20231118221426.246291+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 1

1700345666s-250773us: Http [11:139770333767424:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345666s-250814us: IndicationGeneration [11:139770334885632:IndicationService.cpp:3533]: Test_IndicationProviderClass Indication 0x7f1ed1210150 satisfies filter test/TestProvider:pywbemfilter:pywbempegasusIndicationTest:filter1 query expression "SELECT * from Test_IndicationProviderClass"
1700345666s-250816us: Http [11:139770333767424:HTTPConnection.cpp:1166]: A response has been sent (1161 of 1161 bytes have been written). A total of 0 requests have been processed on this connection.
1700345666s-250865us: IndicationGeneration [11:139770334885632:IndicationService.cpp:3569]: Handler test/TestProvider:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1 found for Test_IndicationProviderClass Indication 0x7f1ed1210150
1700345666s-250882us: IndicationService [11:139770334885632:IndicationService.cpp:9623]: Sending (SendAsync) Indication to IndicationHandlerService via CIMHandleIndicationRequestMessage
1700345666s-250903us: IndicationGeneration [11:139770334885632:IndicationService.cpp:3642]: 1 subscriptions found for Test_IndicationProviderClass Indication 0x7f1ed1210150 in namespace test/TestProvider
1700345666s-250938us: IndicationGeneration [11:139770334619392:IndicationHandlerService.cpp:299]: Handler service received Test_IndicationProviderClass Indication 1033 for test/TestProvider:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1 Handler
1700345666s-250991us: IndicationHandler [11:139770334619392:IndicationHandlerService.cpp:1136]: Returning the queue name root/interop:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1
1700345666s-251019us: IndicationHandler [11:139770334619392:IndicationHandlerService.cpp:1037]: DestinationQueue root/interop:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1 already exists
1700345666s-251126us: Http [11:139770334353152:CIMOperationRequestDispatcher.cpp:2295]: _CIMOperationRequestDispatcher::_enqueueResponse - request->getCloseConnect() returned 0
1700345666s-251162us: Http [11:139770334353152:CIMOperationResponseEncoder.cpp:405]: CIMOperationResponseEncoder::handleEnque()- message->getCloseConnect() returned 0
1700345666s-251197us: Http [11:139770334353152:CIMOperationResponseEncoder.cpp:139]: name = SendTestIndicationsCount
1700345666s-251221us: Http [11:139770334353152:CIMOperationResponseEncoder.cpp:152]: CIMOperationResponseEncoder::sendResponse()- response->getCloseConnect() returned 0
1700345666s-251244us: Http [11:139770334353152:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345666s-251264us: Http [11:139770334353152:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345666s-251277us: XmlIO [11:139770334353152:HTTPConnection.cpp:918]:
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
content-length: 0000000297
CIMOperation: MethodResponse

0

1700345666s-251289us: Http [11:139770334353152:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345666s-251332us: Http [11:139770334353152:HTTPConnection.cpp:1166]: A response has been sent (420 of 420 bytes have been written). A total of 16 requests have been processed on this connection.
1700345666s-251348us: Http [11:139770334353152:HTTPConnection.cpp:1212]: Now setting state to 0
1700345666s-251388us: Http [11:139770335779776:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 4 idle entries
1700345666s-251422us: Http [11:139770335779776:Monitor.cpp:553]: Monitor::run indx = 0, queueId = 1, q = 0x5617998ad690
1700345666s-251984us: Http [11:139770333767424:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1700345666s-252007us: Http [11:139770333767424:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345666s-252020us: Http [11:139770333767424:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1700345666s-252032us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345666s-252045us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345666s-252067us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 401; Bytes read this iteration = 401
1700345666s-252092us: XmlIO [11:139770333767424:HTTPExportResponseDecoder.cpp:114]: HTTP/1.0 200 OK
Server: pywbem-listener/1.7.0.dev1 BaseHTTP/0.6 Python/3.11.6
Date: Sat, 18 Nov 2023 22:14:26 GMT
Content-Type: text/xml
Content-Length: 209
CIMExport: MethodResponse


1700345666s-252126us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345666s-252146us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:98]: Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/ exported successfully
1700345666s-252164us: IndicationHandler [11:139770333767424:DestinationQueue.cpp:447]: Indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 and SequenceNumber 1 is successfully delivered
1700345666s-252215us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:88]: Exporting Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/
1700345666s-252250us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

3 20231118221426.246882+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 2

1700345666s-252267us: Http [11:139770333767424:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345666s-252280us: Http [11:139770333767424:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345666s-252301us: XmlIO [11:139770333767424:HTTPConnection.cpp:918]:
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

3 20231118221426.246882+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 2

1700345666s-252322us: Http [11:139770333767424:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345666s-252369us: Http [11:139770333767424:HTTPConnection.cpp:1166]: A response has been sent (1161 of 1161 bytes have been written). A total of 1 requests have been processed on this connection.
1700345666s-252635us: Http [11:139770333767424:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1700345666s-252650us: Http [11:139770333767424:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345666s-252662us: Http [11:139770333767424:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1700345666s-252674us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345666s-252686us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345666s-252703us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 0; Bytes read this iteration = 0
1700345666s-252715us: XmlIO [11:139770333767424:HTTPConnection.cpp:2271]:
1700345666s-252740us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345666s-252837us: Http [11:139770333767424:Monitor.cpp:359]: returning from monitor destructor
1700345666s-252852us: Http [11:139770333767424:Monitor.cpp:310]: uninitializing interface
1700345666s-252872us: IndicationGeneration [11:139770333767424:CIMxmlIndicationHandler.cpp:184]: Failed to deliver indication using the existing connection with reconnect : Connection closed by CIM Server.
1700345666s-252926us: IndicationHandler [11:139770333767424:DestinationQueue.cpp:515]: Delivery failure for indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 and SequenceNumber 2. DeliveryRetryAttempts made 1. Exception : Connection closed by CIM Server.
1700345668s-253223us: IndicationGeneration [11:139770333767424:CIMxmlIndicationHandler.cpp:242]: CIM_ListenerDestinationCIMXML test/TestProvider:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1 processing Test_IndicationProviderClass Indication for destination http://192.168.4.70:5000
1700345668s-253855us: Http [11:139770333767424:Socket.cpp:79]: Connection to server in progress. Waiting up to 20000 milliseconds for the socket to become connected.
1700345668s-253969us: Http [11:139770333767424:Socket.cpp:114]: Connection with server established.
1700345668s-254100us: Http [11:139770333767424:HTTPConnection.cpp:282]: Connection IP address =
1700345668s-254213us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:88]: Exporting Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/
1700345668s-254339us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

3 20231118221426.246882+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 2

1700345668s-254432us: Http [11:139770333767424:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345668s-254477us: Http [11:139770333767424:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345668s-254523us: XmlIO [11:139770333767424:HTTPConnection.cpp:918]:
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

3 20231118221426.246882+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 2

1700345668s-254568us: Http [11:139770333767424:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345668s-254703us: Http [11:139770333767424:HTTPConnection.cpp:1166]: A response has been sent (1161 of 1161 bytes have been written). A total of 0 requests have been processed on this connection.
1700345668s-258087us: Http [11:139770333767424:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1700345668s-258187us: Http [11:139770333767424:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 24, q = 0x7f1eac002c90
1700345668s-258233us: Http [11:139770333767424:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1700345668s-258274us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 24, q = 0x7f1eac002c90
1700345668s-258321us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345668s-258393us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 401; Bytes read this iteration = 401
1700345668s-258472us: XmlIO [11:139770333767424:HTTPExportResponseDecoder.cpp:114]: HTTP/1.0 200 OK
Server: pywbem-listener/1.7.0.dev1 BaseHTTP/0.6 Python/3.11.6
Date: Sat, 18 Nov 2023 22:14:28 GMT
Content-Type: text/xml
Content-Length: 209
CIMExport: MethodResponse


1700345668s-258573us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345668s-258631us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:98]: Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/ exported successfully
1700345668s-258691us: IndicationHandler [11:139770333767424:DestinationQueue.cpp:447]: Indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 and SequenceNumber 2 is successfully delivered
1700345668s-258940us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:88]: Exporting Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/
1700345668s-259434us: Http [11:139770333767424:Socket.cpp:79]: Connection to server in progress. Waiting up to 20000 milliseconds for the socket to become connected.
1700345668s-259509us: Http [11:139770333767424:Socket.cpp:114]: Connection with server established.
1700345668s-259563us: Http [11:139770333767424:HTTPConnection.cpp:282]: Connection IP address =
1700345668s-259649us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

4 20231118221426.247305+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 3

1700345668s-259700us: Http [11:139770333767424:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345668s-259741us: Http [11:139770333767424:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345668s-259786us: XmlIO [11:139770333767424:HTTPConnection.cpp:918]:
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

4 20231118221426.247305+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 3

1700345668s-259829us: Http [11:139770333767424:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345668s-259948us: Http [11:139770333767424:HTTPConnection.cpp:1166]: A response has been sent (1161 of 1161 bytes have been written). A total of 0 requests have been processed on this connection.
1700345668s-262522us: Http [11:139770333767424:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1700345668s-262615us: Http [11:139770333767424:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 25, q = 0x7f1eac002c90
1700345668s-262675us: Http [11:139770333767424:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1700345668s-262780us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 25, q = 0x7f1eac002c90
1700345668s-262845us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345668s-262924us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 401; Bytes read this iteration = 401
1700345668s-263059us: XmlIO [11:139770333767424:HTTPExportResponseDecoder.cpp:114]: HTTP/1.0 200 OK
Server: pywbem-listener/1.7.0.dev1 BaseHTTP/0.6 Python/3.11.6
Date: Sat, 18 Nov 2023 22:14:28 GMT
Content-Type: text/xml
Content-Length: 209
CIMExport: MethodResponse


1700345668s-263203us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345668s-263287us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:98]: Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/ exported successfully
1700345668s-263346us: IndicationHandler [11:139770333767424:DestinationQueue.cpp:447]: Indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 and SequenceNumber 3 is successfully delivered
1700345668s-263597us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:88]: Exporting Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/
1700345668s-264228us: Http [11:139770333767424:Socket.cpp:79]: Connection to server in progress. Waiting up to 20000 milliseconds for the socket to become connected.
1700345668s-264334us: Http [11:139770333767424:Socket.cpp:114]: Connection with server established.
1700345668s-264416us: Http [11:139770333767424:HTTPConnection.cpp:282]: Connection IP address =
1700345668s-264541us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

5 20231118221426.247815+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 4

1700345668s-264619us: Http [11:139770333767424:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1700345668s-264679us: Http [11:139770333767424:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1700345668s-264744us: XmlIO [11:139770333767424:HTTPConnection.cpp:918]:
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000959
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

5 20231118221426.247815+000 SendTestIndicationsCount PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 4

1700345668s-264845us: Http [11:139770333767424:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1700345668s-265031us: Http [11:139770333767424:HTTPConnection.cpp:1166]: A response has been sent (1161 of 1161 bytes have been written). A total of 0 requests have been processed on this connection.
1700345668s-268989us: Http [11:139770333767424:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1700345668s-269123us: Http [11:139770333767424:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345668s-269169us: Http [11:139770333767424:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1700345668s-269209us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345668s-269254us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345668s-269325us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 401; Bytes read this iteration = 401
1700345668s-269412us: XmlIO [11:139770333767424:HTTPExportResponseDecoder.cpp:114]: HTTP/1.0 200 OK
Server: pywbem-listener/1.7.0.dev1 BaseHTTP/0.6 Python/3.11.6
Date: Sat, 18 Nov 2023 22:14:28 GMT
Content-Type: text/xml
Content-Length: 209
CIMExport: MethodResponse


1700345668s-269513us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345668s-269571us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:98]: Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/ exported successfully

@KSchopmeyer
Copy link
Collaborator Author

The actual lines in the trace that show the problem are:

1700345666s-252674us: Http [11:139770333767424:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 26, q = 0x7f1eac002c90
1700345666s-252686us: Http [11:139770333767424:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
1700345666s-252703us: Http [11:139770333767424:HTTPConnection.cpp:2240]: Total bytesRead = 0; Bytes read this iteration = 0
1700345666s-252715us: XmlIO [11:139770333767424:HTTPConnection.cpp:2271]: <!-- No request message received; connection closed: queue id: 26 -->
================= Note: above.  run() which makes request for response and response (0 bytes) only 20 microseconds apart
1700345666s-252740us: Http [11:139770333767424:Monitor.cpp:596]: Exited HTTPConnection::run()
1700345666s-252837us: Http [11:139770333767424:Monitor.cpp:359]: returning from monitor destructor
1700345666s-252852us: Http [11:139770333767424:Monitor.cpp:310]: uninitializing interface
1700345666s-252872us: IndicationGeneration [11:139770333767424:CIMxmlIndicationHandler.cpp:184]: Failed to deliver indication using the existing connection with reconnect : Connection closed by CIM Server. 
1700345666s-252926us: IndicationHandler [11:139770333767424:DestinationQueue.cpp:515]: Delivery failure for indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1700343135681448-1700345666216914 and SequenceNumber 2. DeliveryRetryAttempts made 1. Exception : Connection closed by CIM Server.

two seconds later

================= Indication deliver failure. 2 seconds later retry of the same indication.
1700345668s-253223us: IndicationGeneration [11:139770333767424:CIMxmlIndicationHandler.cpp:242]: CIM_ListenerDestinationCIMXML test/TestProvider:CIM_ListenerDestinationCIMXML.pywbemdestination:pywbempegasusIndicationTest:dest1 processing Test_IndicationProviderClass Indication for destination http://192.168.4.70:5000
1700345668s-253855us: Http [11:139770333767424:Socket.cpp:79]: Connection to server in progress.  Waiting up to 20000 milliseconds for the socket to become connected.
1700345668s-253969us: Http [11:139770333767424:Socket.cpp:114]: Connection with server established.
1700345668s-254100us: Http [11:139770333767424:HTTPConnection.cpp:282]: Connection IP address = 
1700345668s-254213us: IndicationGeneration [11:139770333767424:CIMExportClient.cpp:88]: Exporting Test_IndicationProviderClass Indication for destination 192.168.4.70:5000/
1700345668s-254339us: XmlIO [11:139770333767424:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Nov 19, 2023

Note that there is no indication of why the response request terminated in a less than a millisecond with 0 bytes received with no error code.

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Dec 4, 2023

OpenPegasus trace showing case where indication from container fails with 0 bytes rcvd and retry where the same indication is successful:

Indications Error Trace: 2023-11-13 03:07:34.967

1699287164s-596578us: MessageQueueService [13:139784584451840:MessageQueue.cpp:121]: Queue name: [CIMExportRequestEncoder], Message: [CIM_EXPORT_INDICATION_REQUEST_MESSAGE]
1699287164s-596596us: XmlIO [13:139784584451840:CIMExportRequestEncoder.cpp:123]: POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000966
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

<?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="42160" PROTOCOLVERSION="1.0">
<SIMPLEEXPREQ>
<EXPMETHODCALL NAME="ExportIndication">
<EXPPARAMVALUE NAME="NewIndication">
<INSTANCE CLASSNAME="Test_IndicationProviderClass" >
<PROPERTY NAME="IndicationIdentifier"  TYPE="string">
<VALUE>9234</VALUE>
</PROPERTY>
<PROPERTY NAME="IndicationTime"  TYPE="datetime">
<VALUE>20231106161242.583642+000</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="CorrelatedIndications"  TYPE="string">
<VALUE.ARRAY>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="MethodName"  TYPE="string">
<VALUE>SendTestIndicationsCount</VALUE>
</PROPERTY>
<PROPERTY NAME="SequenceContext"  TYPE="string">
<VALUE>PG:IndicationService-PG:172-17-0-2-1699277232627822-1699287158023682</VALUE>
</PROPERTY>
<PROPERTY NAME="SequenceNumber"  TYPE="sint64">
<VALUE>3633</VALUE>
</PROPERTY>
</INSTANCE>
</EXPPARAMVALUE>
</EXPMETHODCALL>
</SIMPLEEXPREQ>
</MESSAGE>
</CIM>

1699287164s-596613us: Http [13:139784584451840:HTTPConnection.cpp:401]: HTTPConnection::handleEnqueue - HTTP_MESSAGE
1699287164s-596623us: Http [13:139784584451840:HTTPConnection.cpp:914]: HTTPConnection::_handleWriteEvent: Server write event.
1699287164s-596634us: XmlIO [13:139784584451840:HTTPConnection.cpp:918]: <!-- Response: queue id: 26 -->
POST / HTTP/1.1
HOST: 192.168.4.70:5000
Content-Type: application/xml; charset=utf-8
content-length: 0000000966
TE: chunked, trailers
CIMExport: MethodRequest
CIMExportMethod: ExportIndication

<?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="42160" PROTOCOLVERSION="1.0">
<SIMPLEEXPREQ>
<EXPMETHODCALL NAME="ExportIndication">
<EXPPARAMVALUE NAME="NewIndication">
<INSTANCE CLASSNAME="Test_IndicationProviderClass" >
<PROPERTY NAME="IndicationIdentifier"  TYPE="string">
<VALUE>9234</VALUE>
</PROPERTY>
<PROPERTY NAME="IndicationTime"  TYPE="datetime">
<VALUE>20231106161242.583642+000</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="CorrelatedIndications"  TYPE="string">
<VALUE.ARRAY>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="MethodName"  TYPE="string">
<VALUE>SendTestIndicationsCount</VALUE>
</PROPERTY>
<PROPERTY NAME="SequenceContext"  TYPE="string">
<VALUE>PG:IndicationService-PG:172-17-0-2-1699277232627822-1699287158023682</VALUE>
</PROPERTY>
<PROPERTY NAME="SequenceNumber"  TYPE="sint64">
<VALUE>3633</VALUE>
</PROPERTY>
</INSTANCE>
</EXPPARAMVALUE>
</EXPMETHODCALL>
</SIMPLEEXPREQ>
</MESSAGE>
</CIM>

1699287164s-596645us: Http [13:139784584451840:HTTPConnection.cpp:1029]: HTTPConnection::_handleWriteEvent: Sending non-chunked data.
1699287164s-596673us: Http [13:139784584451840:HTTPConnection.cpp:1166]: A response has been sent (1168 of 1168 bytes have been written). A total of 1 requests have been processed on this connection.
1699287164s-596710us: Http [13:139784584451840:Monitor.cpp:540]: Monitor::run select event received events = 1, monitoring 2 idle entries
1699287164s-596723us: Http [13:139784584451840:Monitor.cpp:553]: Monitor::run indx = 1, queueId = 26, q = 0x7f21f0000e50
1699287164s-596733us: Http [13:139784584451840:Monitor.cpp:561]: entries[1].type is TYPE_CONNECTION
1699287164s-596742us: Http [13:139784584451840:Monitor.cpp:581]: Entering HTTPConnection::run() for indx = 1, queueId = 26, q = 0x7f21f0000e50
================HTTPConnection = apparently does _handleReadEvent() at line 391
1699287164s-596752us: Http [13:139784584451840:HTTPConnection.cpp:391]: HTTPConnection::handleEnqueue - SOCKET_MESSAGE
================HTTPConnection  inside handle_read_event below
1699287164s-596766us: Http [13:139784584451840:HTTPConnection.cpp:2240]: Total bytesRead = 0; Bytes read this iteration = 0
================ in same method, incoming buffer size was zero., i.e. no message received.
1699287164s-596775us: XmlIO [13:139784584451840:HTTPConnection.cpp:2271]: <!-- No request message received; connection closed: queue id: 26 -->
========================== in messageQueue, enqueue (message)
1699287164s-596786us: MessageQueueService [13:139784584451840:MessageQueue.cpp:121]: Queue name: [CIMExportResponseDecoder], Message: [HTTP_MESSAGE]
=========== here it does a client exception message apparently to the CIMExportClient
1699287164s-596796us: L10N [13:139784584451840:MessageLoader.cpp:418]: Message ID = ExportClient.HTTPExportResponseDecoder.EMPTY_RESPONSE
1699287164s-596808us: MessageQueueService [13:139784584451840:MessageQueue.cpp:121]: Queue name: [CIMExportClient], Message: [CLIENT_EXCEPTION_MESSAGE]
1699287164s-596816us: Http [13:139784584451840:Monitor.cpp:596]: Exited HTTPConnection::run()
=========ExportClient line 229 inside  CIMExportClient::_doRequest(
1699287164s-596826us: ExportClient [13:139784584451840:CIMExportClient.cpp:229]: Client Exception Message received.
========================== inside CIMExportClient::exportIndication class  --- Here _doRequstCalled() and catch Exception which does DiscardedData Trace output
1699287164s-596852us: DiscardedData [13:139784584451840:CIMExportClient.cpp:112]: Failed to export indication: Connection closed by CIM Server.
 
1699287164s-596870us: MessageQueueService [13:139784584451840:MessageQueue.cpp:94]: MessageQueue::~MessageQueue queueId = 25, name = CIMExportResponseDecoder
1699287164s-596885us: MessageQueueService [13:139784584451840:MessageQueue.cpp:94]: MessageQueue::~MessageQueue queueId = 24, name = CIMExportRequestEncoder
1699287164s-596905us: MessageQueueService [13:139784584451840:MessageQueue.cpp:94]: MessageQueue::~MessageQueue queueId = 26, name = HTTPConnection
1699287164s-596918us: MessageQueueService [13:139784584451840:MessageQueue.cpp:94]: MessageQueue::~MessageQueue queueId = 23, name = CIMExportClient
1699287164s-596927us: Http [13:139784584451840:Monitor.cpp:359]: returning from monitor destructor
1699287164s-596936us: Http [13:139784584451840:Monitor.cpp:310]: uninitializing interface
1699287164s-596952us: IndicationGeneration [13:139784584451840:CIMxmlIndicationHandler.cpp:184]: Failed to deliver indication using the existing connection with reconnect : Connection closed by CIM Server.
1699287164s-596980us: IndicationHandler [13:139784584451840:DestinationQueue.cpp:515]: Delivery failure for indication with SequenceContext PG:IndicationService-PG:172-17-0-2-1699277232627822-1699287158023682 and SequenceNumber 3633. DeliveryRetryAttempts made 1. Exception : Connection closed by CIM Server.
1699287164s-596992us: Thread [13:139784584451840:ThreadPool.cpp:220]: Work finished.
1699287166s-597056us: Thread [13:139784587015936:ThreadPool.cpp:322]: Initializing thread(139784584451840) with work function and parameters: parm = 0x561215b31d60
1699287166s-597195us: Thread [13:139784587015936:ThreadPool.cpp:345]: Signal thread to awaken
1699287166s-597344us: Thread [13:139784584451840:ThreadPool.cpp:217]: Work starting.

@KSchopmeyer
Copy link
Collaborator Author

KSchopmeyer commented Apr 2, 2024

ACTION KS: I want to next try an immediate retry if the indication response read operation in the server returns 0 bytes read and then put the indication into the delayed retry queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants