[vm_topology] Fix pid=0 issue if ptf docker is not running#19793
Merged
StormLiangMS merged 1 commit intosonic-net:masterfrom Jul 29, 2025
Merged
[vm_topology] Fix pid=0 issue if ptf docker is not running#19793StormLiangMS merged 1 commit intosonic-net:masterfrom
StormLiangMS merged 1 commit intosonic-net:masterfrom
Conversation
In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example:
```
if self.pid is None
```
In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`.
Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface.
The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`.
Signed-off-by: Xin Wang <[email protected]>
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
mssonicbld
pushed a commit
to mssonicbld/sonic-mgmt
that referenced
this pull request
Jul 30, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
Collaborator
|
Cherry-pick PR to 202505: #19905 |
11 tasks
mssonicbld
pushed a commit
that referenced
this pull request
Jul 30, 2025
In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example:
```
if self.pid is None
```
In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`.
Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface.
The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`.
Signed-off-by: Xin Wang <[email protected]>
nissampa
pushed a commit
to nissampa/sonic-mgmt_dpu_test
that referenced
this pull request
Aug 7, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
ashutosh-agrawal
pushed a commit
to ashutosh-agrawal/sonic-mgmt
that referenced
this pull request
Aug 14, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
vidyac86
pushed a commit
to vidyac86/sonic-mgmt
that referenced
this pull request
Oct 23, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
opcoder0
pushed a commit
to opcoder0/sonic-mgmt
that referenced
this pull request
Dec 8, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
gshemesh2
pushed a commit
to gshemesh2/sonic-mgmt
that referenced
this pull request
Dec 16, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]> Signed-off-by: Guy Shemesh <[email protected]>
AharonMalkin
pushed a commit
to AharonMalkin/sonic-mgmt
that referenced
this pull request
Dec 16, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]> Signed-off-by: Aharon Malkin <[email protected]>
gshemesh2
pushed a commit
to gshemesh2/sonic-mgmt
that referenced
this pull request
Dec 21, 2025
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]> Signed-off-by: Guy Shemesh <[email protected]>
venu-nexthop
pushed a commit
to venu-nexthop/sonic-mgmt
that referenced
this pull request
Jan 13, 2026
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
gshemesh2
pushed a commit
to gshemesh2/sonic-mgmt
that referenced
this pull request
Jan 26, 2026
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]> Signed-off-by: Guy Shemesh <[email protected]>
ytzur1
pushed a commit
to ytzur1/sonic-mgmt
that referenced
this pull request
Feb 2, 2026
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]> Signed-off-by: Yael Tzur <[email protected]>
venu-nexthop
pushed a commit
to venu-nexthop/sonic-mgmt
that referenced
this pull request
Mar 27, 2026
…#19793) In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example: ``` if self.pid is None ``` In case PTF container is stopped, the current code would store PTF container pid "0" in `self.pid`. Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface. The fix is to check the Running states of PTF container. If the container is not running, explicitly set `self.pid` to `None`. Signed-off-by: Xin Wang <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
In vm_topology.py code, lots of the code check if the PTF container pid is 'None'. For example:
In case PTF container is stopped, the current code would store PTF container pid "0" in
self.pid.Consequently, some of the logic is incorrect. For example, remove-topo while PTF container is stopped, the unbind topology step would fail if the host device happens to have a "eth0" interface.
How did you do it?
The fix is to check the Running states of PTF container. If the container is not running, explicitly set
self.pidtoNone.How did you verify/test it?
Run 'add-topo' and 'remove-topo'.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation