Skip to content

[vm_topology] Fix pid=0 issue if ptf docker is not running#19793

Merged
StormLiangMS merged 1 commit intosonic-net:masterfrom
wangxin:get-ptf-pid
Jul 29, 2025
Merged

[vm_topology] Fix pid=0 issue if ptf docker is not running#19793
StormLiangMS merged 1 commit intosonic-net:masterfrom
wangxin:get-ptf-pid

Conversation

@wangxin
Copy link
Copy Markdown
Collaborator

@wangxin wangxin commented Jul 23, 2025

Description of PR

Summary:
Fixes # (issue)

Type of change

  • Bug fix
  • Testbed and Framework(new/improvement)
  • New Test case
    • Skipped for non-supported platforms
  • Test case improvement

Back port request

  • 202205
  • 202305
  • 202311
  • 202405
  • 202411
  • 202505

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:

    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.

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.pid to None.

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

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]>
@wangxin wangxin requested a review from lolyu July 23, 2025 08:02
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Collaborator

@StormLiangMS StormLiangMS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@StormLiangMS StormLiangMS merged commit ef6d9de into sonic-net:master Jul 29, 2025
18 checks passed
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]>
@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202505: #19905

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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants