CA-395093: miss physical-device-path xenstore key#441
CA-395093: miss physical-device-path xenstore key#441chunjiez wants to merge 1 commit intoxapi-project:masterfrom
Conversation
read physical-device-path from xenstore directly, there is no synchronization between slave tapback process and xenopsd hotplug vbd-script, so, in some corner case, slave tapback process would miss physical-device-path xenstore watch event, then blktap io datapath fails to be established. Signed-off-by: Chunjie Zhu <chunjie.zhu@cloud.com>
|
@MarkSymsCtx @TimSmithCtx @LunfanZhang @liulinC @stephenchengCloud Could you please review the bug fix patch? |
|
I understand the patch is to read |
tapback master process (slave_domid == 0)
tapback slave process (slave_domid != 0)
Once the tapback slave process starts/restarts, it does probe all domid's vbd devices by reading xenstore directly, during probing one vbd device, reconnect is called to establish io datapath. In the old days, xenstore key physical-device is used to pass vbd device information. After frankentap remove feature, xenstore key physical-device-path is used to pass vbd device information, here, reconnect misses physical-device-path, in some corner case, xenopsd hotplug vbd-script adds physical-device-path, but tapback slave process has not called xs_watch, so the event is missed, finally, vbd frontend part never reaches Connected state. |
|
The name |
During the lifecycle of a virtual machine, many events may occur, such as suspend and resume. VM suspend causes disconnection, and VM resume triggers reconnection, here, "reconnect" is right, I think. |
|
@MarkSymsCtx @TimSmithCtx @LunfanZhang Could you please review the PR? |
|
Can you explain? |
Now we do not use xapi-project repo to manage blktap, move the pull request to the correct repo. |
Sure, but it wasn't my understanding that you would stop contributing fixes to the upstream blktap. |
read physical-device-path from xenstore directly, there is no synchronization between slave tapback process and xenopsd hotplug vbd-script, so, in some corner case, slave tapback process would miss physical-device-path xenstore watch event, then blktap io datapath fails to be established.