View Revisions: Issue #6103
Summary | 0006103: Unregistration of client node at server node causes cleanup problems and registration problems when running with multiple queues | ||
---|---|---|---|
Revision | 2023-11-20 18:19 by pmarzullo | ||
Description | Multiple push threads (using queues) attempt to clean up and reregister at the same time when unregistered at the target node. The response of the client is as follows: Each push thread gets notified that the client node is not registered anymore. Each push thread then, at the same time, attempts to unregister/reregister the node with the server. The multiple push threads that are told to initiate a registration need to be controlled so that only one request at a time is made. |
||
Revision | 2023-11-08 16:40 by pmarzullo | ||
Description | Multiple problems when initial load from client to server is requested by server, and the server cancels the initial load and unregisters the node at basically the same time. By the way, the initial load from client to server uses multiple reload channels, each with a different queue defined. So pushes from the client to the server occur at the same time (based on the multiple queue definitions). The response of the client is as follows: Each push thread gets notified that the client node is not registered anymore. Each push thread then, at the same time, attempts to register the node with the server. Cleanup is executed, but there are outgoing batches from the initial load that do not stay marked as ignored (or OK, I can't remember what status they are set to). Processes are interrupted from across the system on the client side, but my expectation is that the DataExtractor threads are not interrupted, and ends up attempting to process these batches that are marked as RQ using a sym_extract_request record, but they do not exist because they were cleaned up, so the DataExtractor gets stuck on moving ahead for the node. So, two things need to be fixed here. The multiple push threads that are told to initiate a registration need to be controlled so that only one request at a time is made. The other thing that needs to be done is to make sure to interrupt DataExtractor threads so that they do not keep processing batches that should not be processed anymore because of the unregistration that occurred. |