Activity log for bug #2039719

Date Who What changed Old value New value Message
2023-10-18 17:39:42 Jorge Merlino bug added bug
2023-10-18 17:40:03 Jorge Merlino nominated for series Ubuntu Focal
2023-10-18 17:40:03 Jorge Merlino bug task added multipath-tools (Ubuntu Focal)
2023-10-18 17:40:48 Jorge Merlino multipath-tools (Ubuntu): status New Fix Released
2023-10-19 16:42:53 Andrew Cloke bug added subscriber Andrew Cloke
2023-10-27 17:48:08 Mauricio Faria de Oliveira bug added subscriber Mauricio Faria de Oliveira
2023-10-27 17:52:31 Jorge Merlino attachment added lp2039719_focal.debdiff https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2039719/+attachment/5713819/+files/lp2039719_focal.debdiff
2023-10-28 17:14:23 Mauricio Faria de Oliveira bug added subscriber Support Engineering Sponsors
2023-10-29 00:05:48 Mauricio Faria de Oliveira multipath-tools (Ubuntu Focal): status New Incomplete
2023-10-29 00:05:50 Mauricio Faria de Oliveira multipath-tools (Ubuntu Focal): importance Undecided Medium
2023-10-29 00:06:00 Mauricio Faria de Oliveira multipath-tools (Ubuntu Focal): assignee Jorge Merlino (jorge-merlino)
2023-10-29 00:12:44 Mauricio Faria de Oliveira attachment added lp2039719_focal_v2.debdiff https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2039719/+attachment/5714075/+files/lp2039719_focal_v2.debdiff
2023-11-07 19:41:20 Mauricio Faria de Oliveira description [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. The other one uses this new error codes to change the behavior of the check_path() function. These changes affect only the error paths so this should not break anything when the code works without errors. It is possible that problems could occur during error handling. [Other Info] This patch only needs to be applied to Focal as it is already included in the Jammy version. [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected): Sep 28 20:31:20 | 65:208: cannot find block device Sep 28 20:31:20 | 65:208: Empty device name Sep 28 20:31:20 | 65:208: Empty device name Sep 28 20:31:20 | 65:240: cannot find block device Sep 28 20:31:20 | 65:240: Empty device name Sep 28 20:31:20 | 65:240: Empty device name Sep 28 20:31:20 | 65:224: cannot find block device Sep 28 20:31:20 | 65:224: Empty device name Sep 28 20:31:20 | 65:224: Empty device name Sep 28 20:31:20 | 66:0: cannot find block device Sep 28 20:31:20 | 66:0: Empty device name Sep 28 20:31:20 | 66:0: Empty device name 3600a098038305768462b564d48336636 dm-38 ##,## size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=0 status=enabled | |- #:#:#:# - #:# failed undef unknown | `- #:#:#:# - #:# failed undef unknown `-+- policy='service-time 0' prio=0 status=enabled |- #:#:#:# - #:# failed undef unknown `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. The other one uses this new error codes to change the behavior of the check_path() function. These changes affect only the error paths so this should not break anything when the code works without errors. It is possible that problems could occur during error handling. [Other Info] This patch only needs to be applied to Focal as it is already included in the Jammy version.
2023-11-07 19:43:05 Mauricio Faria de Oliveira description [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected): Sep 28 20:31:20 | 65:208: cannot find block device Sep 28 20:31:20 | 65:208: Empty device name Sep 28 20:31:20 | 65:208: Empty device name Sep 28 20:31:20 | 65:240: cannot find block device Sep 28 20:31:20 | 65:240: Empty device name Sep 28 20:31:20 | 65:240: Empty device name Sep 28 20:31:20 | 65:224: cannot find block device Sep 28 20:31:20 | 65:224: Empty device name Sep 28 20:31:20 | 65:224: Empty device name Sep 28 20:31:20 | 66:0: cannot find block device Sep 28 20:31:20 | 66:0: Empty device name Sep 28 20:31:20 | 66:0: Empty device name 3600a098038305768462b564d48336636 dm-38 ##,## size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw |-+- policy='service-time 0' prio=0 status=enabled | |- #:#:#:# - #:# failed undef unknown | `- #:#:#:# - #:# failed undef unknown `-+- policy='service-time 0' prio=0 status=enabled |- #:#:#:# - #:# failed undef unknown `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. The other one uses this new error codes to change the behavior of the check_path() function. These changes affect only the error paths so this should not break anything when the code works without errors. It is possible that problems could occur during error handling. [Other Info] This patch only needs to be applied to Focal as it is already included in the Jammy version. [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. The other one uses this new error codes to change the behavior of the check_path() function. These changes affect only the error paths so this should not break anything when the code works without errors. It is possible that problems could occur during error handling. [Other Info] This patch only needs to be applied to Focal as it is already included in the Jammy version.
2023-11-07 19:47:55 Mauricio Faria de Oliveira description [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. The other one uses this new error codes to change the behavior of the check_path() function. These changes affect only the error paths so this should not break anything when the code works without errors. It is possible that problems could occur during error handling. [Other Info] This patch only needs to be applied to Focal as it is already included in the Jammy version. [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). - One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. - The other one uses this new error codes to change the behavior of the check_path() function. These changes mostly affect the error paths so this should not break anything when the code works without errors, but theoretically might also affect the normal path of periodically checking path status -- fortunaly this runs very often, thus regressions should be easy and quick to spot during tests. There are 2 additional patches upstream for the lines changed by these patches, which are NULL pointer checks, and are introduced here too. [Other Info] Most patches only needs to be applied to Focal as it is already included in the Jammy version. One
2023-11-07 19:49:31 Mauricio Faria de Oliveira description [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). - One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. - The other one uses this new error codes to change the behavior of the check_path() function. These changes mostly affect the error paths so this should not break anything when the code works without errors, but theoretically might also affect the normal path of periodically checking path status -- fortunaly this runs very often, thus regressions should be easy and quick to spot during tests. There are 2 additional patches upstream for the lines changed by these patches, which are NULL pointer checks, and are introduced here too. [Other Info] Most patches only needs to be applied to Focal as it is already included in the Jammy version. One [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). - One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. - The other one uses this new error codes to change the behavior of the check_path() function. These changes mostly affect the error paths so this should not break anything when the code works without errors, but theoretically might also affect the normal path of periodically checking path status -- fortunaly this runs very often, thus regressions should be easy and quick to spot during tests. There are 2 additional upstream patches for the lines changed by these patches, which are NULL pointer checks, and are introduced here too. [Other Info] Most patches only needs to be applied to Focal as it is already included in the Jammy version. One of the additional upstream patches needs to go to Jammy and Lunar, which is done in bug 2042366 in order to get specific/individual testing on the releases.
2023-11-07 19:50:05 Mauricio Faria de Oliveira description [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). - One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. - The other one uses this new error codes to change the behavior of the check_path() function. These changes mostly affect the error paths so this should not break anything when the code works without errors, but theoretically might also affect the normal path of periodically checking path status -- fortunaly this runs very often, thus regressions should be easy and quick to spot during tests. There are 2 additional upstream patches for the lines changed by these patches, which are NULL pointer checks, and are introduced here too. [Other Info] Most patches only needs to be applied to Focal as it is already included in the Jammy version. One of the additional upstream patches needs to go to Jammy and Lunar, which is done in bug 2042366 in order to get specific/individual testing on the releases. [Impact] In a server with high volume of multipath volume creation and teardown it can occur a race condition that keeps a multipath volume that should have been removed with no devices or with failed or unknown devices. In particular this occurs when a multipath device is removed during, or immediately before the call to check_path(). A missing multipath device will cause update_multipath_strings() to fail, setting pp->dmstate to PSTATE_UNDEF. If the path is up, this state will cause reinstate_path() to be called, which will also fail. This will trigger a reload, restoring the recently removed device in an invalid state. The command "multipathd show config" fails with "timeout receiving packet". The command "multipath -ll" shows errors and names/paths as '#' (unexpected):     Sep 28 20:31:20 | 65:208: cannot find block device     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:208: Empty device name     Sep 28 20:31:20 | 65:240: cannot find block device     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:240: Empty device name     Sep 28 20:31:20 | 65:224: cannot find block device     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 65:224: Empty device name     Sep 28 20:31:20 | 66:0: cannot find block device     Sep 28 20:31:20 | 66:0: Empty device name     Sep 28 20:31:20 | 66:0: Empty device name     3600a098038305768462b564d48336636 dm-38 ##,##     size=19G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw     |-+- policy='service-time 0' prio=0 status=enabled     | |- #:#:#:# - #:# failed undef unknown     | `- #:#:#:# - #:# failed undef unknown     `-+- policy='service-time 0' prio=0 status=enabled     |- #:#:#:# - #:# failed undef unknown     `- #:#:#:# - #:# failed undef unknown [Test Plan] This can be reproduced by one of our customers on a Kubernetes installation using Netapp Trident for storage orchestration. Continuously add and remove all the individual paths for storage devices in order to create and remove multipath devices managed by multipathd, while checking the output of `multipath -ll`. [Where problems could occur] We are merging two patches here (both done by the same person on the same day). - One just changes the return value of some functions from a boolean to symbolic codes to differentiate errors. - The other one uses this new error codes to change the behavior of the check_path() function. These changes mostly affect the error paths so this should not break anything when the code works without errors, but theoretically might also affect the normal path of periodically checking path status -- fortunaly this runs very often, thus regressions should be easy and quick to spot during tests. There are 2 additional upstream patches for the lines changed by these patches, which are NULL pointer checks, and are introduced here too. [Other Info] Most patches only need to be applied to Focal as they're included Jammy. One of the additional upstream patches needs to go to Jammy and Lunar, which is done in bug 2042366 in order to get specific/individual testing on the releases.
2023-11-07 22:06:00 Mauricio Faria de Oliveira multipath-tools (Ubuntu Focal): status Incomplete In Progress
2023-11-15 22:46:58 Robie Basak multipath-tools (Ubuntu Focal): status In Progress Fix Committed
2023-11-15 22:46:59 Robie Basak bug added subscriber Ubuntu Stable Release Updates Team
2023-11-15 22:47:00 Robie Basak bug added subscriber SRU Verification
2023-11-15 22:47:03 Robie Basak tags verification-needed verification-needed-focal