While handling an incoming delivery from the NFVO, a plugin may crash or lose connectivity with RabbitMQ without being able to acknowledge the received RPC request.
If this happens, the thread running the instance of org.openbaton.plugin.utils.PluginCaller will stall forever while waiting for ACKs on a temporary queue nobody will ever publish to anymore, there is no timeout to break the lock.
An example of this can be seen in org.openbaton.nfvo.core.api.VimManagement.refresh(): if the VimDriver crashed during listImages, the queryNetworks() method of Vim will never return because it will be stuck in a call to the nextDelivery() of its AMQP consumer.
While handling an incoming delivery from the NFVO, a plugin may crash or lose connectivity with RabbitMQ without being able to acknowledge the received RPC request.
If this happens, the thread running the instance of
org.openbaton.plugin.utils.PluginCaller
will stall forever while waiting for ACKs on a temporary queue nobody will ever publish to anymore, there is no timeout to break the lock.An example of this can be seen in
org.openbaton.nfvo.core.api.VimManagement.refresh()
: if the VimDriver crashed duringlistImages
, thequeryNetworks()
method ofVim
will never return because it will be stuck in a call to thenextDelivery()
of its AMQP consumer.