In the mean time, the container dies. When the container reconnects, it is treated as a new replica (replica one).
When a new query is sent, the callback's wait operation completes and the system attempts to send query data to the container with the replica id that was specified when the callback was initiated (replica zero).
This query data passes through Clipper's RPC system and is never processed by a recipient
Steps to reproduce:
bin/start_clipper.sh
)Cause:
After processing the first query, the initial instance of the no-op container (replica zero) initiates a callback within the C++ system that waits on the model request queue (https://github.com/ucbrise/clipper/blob/745a6f7387ceaff6e5ffd4378eb3856cbdb6084b/src/libclipper/include/clipper/task_executor.hpp#L449).
In the mean time, the container dies. When the container reconnects, it is treated as a new replica (replica one).
When a new query is sent, the callback's wait operation completes and the system attempts to send query data to the container with the replica id that was specified when the callback was initiated (replica zero).
This query data passes through Clipper's RPC system and is never processed by a recipient