Activity log for bug #1773316

Date Who What changed Old value New value Message
2018-05-25 07:07:54 errors.ubuntu.com bug bridge bug added bug
2018-05-25 07:07:55 errors.ubuntu.com bug bridge bug added subscriber Jean-Baptiste Lallement
2018-05-31 12:04:07 Balint Reczey branch linked lp:~rbalint/update-manager/fix-stale-pkg-refs
2018-06-06 19:06:43 Julian Andres Klode bug task added python-apt (Ubuntu)
2018-06-06 19:06:53 Julian Andres Klode nominated for series Ubuntu Cosmic
2018-06-06 19:06:53 Julian Andres Klode bug task added python-apt (Ubuntu Cosmic)
2018-06-06 19:06:53 Julian Andres Klode bug task added update-manager (Ubuntu Cosmic)
2018-06-06 19:06:53 Julian Andres Klode nominated for series Ubuntu Bionic
2018-06-06 19:06:53 Julian Andres Klode bug task added python-apt (Ubuntu Bionic)
2018-06-06 19:06:53 Julian Andres Klode bug task added update-manager (Ubuntu Bionic)
2018-06-06 19:07:19 Launchpad Janitor python-apt (Ubuntu): status New Confirmed
2018-06-06 19:07:19 Launchpad Janitor update-manager (Ubuntu): status New Confirmed
2018-06-06 19:07:19 Launchpad Janitor python-apt (Ubuntu Bionic): status New Confirmed
2018-06-06 19:07:19 Launchpad Janitor update-manager (Ubuntu Bionic): status New Confirmed
2018-06-06 19:08:17 Julian Andres Klode summary /usr/bin/update-manager:ValueError:foreach_cb:packages_are_selected:is_selected:marked_install Object of different cache passed as argument to apt_pkg.DepCache method
2018-06-06 19:17:52 Julian Andres Klode description The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/. [Impact] python-apt 1.6 raises an exception when objects of an old cache are passed to a apt_pkg.DepCache methods for a different cache. Prior to that, those would either segfault, succeed, or silently operate on a different object, as they use package/version ids, and e.g. two different packages in the old and new cache might have the same id. With 1.6.1, we introduce a remapping algorithm that remaps objects of apt.Cache() when calling apt.Cache.open(), allowing old objects to be used after reopening, as long as they exist in the new cache. If they don't exist in the new cache, apt_pkg.CacheMismatchError will be raised from the apt_pkg layer. [Test case] import apt c=apt.Cache() p=c["apt"] c.open() p.mark_install() [Regression potential] Could be remapping to wrong items which would cause us to install a wrong version, for example. Compared to pre-bionic, bionic is a regression already, though, and any regression caused here is less important than what we have now. [Original bug report] The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
2018-06-06 19:18:04 Julian Andres Klode update-manager (Ubuntu Bionic): status Confirmed Triaged
2018-06-06 19:18:13 Julian Andres Klode update-manager (Ubuntu Bionic): status Triaged Won't Fix
2018-06-06 19:18:19 Julian Andres Klode update-manager (Ubuntu Cosmic): status Confirmed Won't Fix
2018-06-06 19:18:27 Julian Andres Klode python-apt (Ubuntu Cosmic): status Confirmed Fix Committed
2018-06-06 19:18:31 Julian Andres Klode python-apt (Ubuntu Bionic): status Confirmed Triaged
2018-06-07 01:00:40 Julian Andres Klode python-apt (Ubuntu Cosmic): status Fix Committed Confirmed
2018-06-07 01:00:46 Julian Andres Klode python-apt (Ubuntu Cosmic): status Confirmed Fix Committed
2018-06-08 18:29:22 Launchpad Janitor python-apt (Ubuntu Cosmic): status Fix Committed Fix Released
2018-06-11 19:53:16 Steve Langasek python-apt (Ubuntu Bionic): status Triaged Fix Committed
2018-06-11 19:53:20 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2018-06-11 19:53:23 Steve Langasek bug added subscriber SRU Verification
2018-06-11 19:53:27 Steve Langasek tags bionic cosmic kylin-18.04 bionic cosmic kylin-18.04 verification-needed verification-needed-bionic
2018-06-11 19:54:25 Steve Langasek update-manager (Ubuntu): status Confirmed Won't Fix
2018-06-11 20:22:54 Julian Andres Klode tags bionic cosmic kylin-18.04 verification-needed verification-needed-bionic bionic cosmic kylin-18.04 verification-done verification-done-bionic
2018-06-18 08:50:08 Ɓukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team
2018-06-18 09:00:13 Launchpad Janitor python-apt (Ubuntu Bionic): status Fix Committed Fix Released
2018-07-04 14:51:31 Julian Andres Klode nominated for series Ubuntu Xenial
2018-07-04 14:51:31 Julian Andres Klode bug task added python-apt (Ubuntu Xenial)
2018-07-04 14:51:31 Julian Andres Klode bug task added update-manager (Ubuntu Xenial)
2018-07-04 14:51:31 Julian Andres Klode nominated for series Ubuntu Trusty
2018-07-04 14:51:31 Julian Andres Klode bug task added python-apt (Ubuntu Trusty)
2018-07-04 14:51:31 Julian Andres Klode bug task added update-manager (Ubuntu Trusty)
2018-07-04 14:52:03 Julian Andres Klode description [Impact] python-apt 1.6 raises an exception when objects of an old cache are passed to a apt_pkg.DepCache methods for a different cache. Prior to that, those would either segfault, succeed, or silently operate on a different object, as they use package/version ids, and e.g. two different packages in the old and new cache might have the same id. With 1.6.1, we introduce a remapping algorithm that remaps objects of apt.Cache() when calling apt.Cache.open(), allowing old objects to be used after reopening, as long as they exist in the new cache. If they don't exist in the new cache, apt_pkg.CacheMismatchError will be raised from the apt_pkg layer. [Test case] import apt c=apt.Cache() p=c["apt"] c.open() p.mark_install() [Regression potential] Could be remapping to wrong items which would cause us to install a wrong version, for example. Compared to pre-bionic, bionic is a regression already, though, and any regression caused here is less important than what we have now. [Original bug report] The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/. ========== xenial / trusty ========== [Impact] Some applications, like unattended-upgrades or update-manager, reopen the apt cache. They also keep around old apt.Package objects however, and operate on them after reopening. Under the hood, this means that apt_pkg.Package objects belonging to an old cache are passed to a new cache. APT relies on the ID of the package (it's position in the cache) for it's operation. So if a package has ID 0 in the old cache, and a different package has ID 0 in the new cache, performing operations on the old package would perform it on the new package. If the old package's ID is out of bounds in the new cache, the behavior is undefined - it's an out of bounds array access. [Test case] The attached test case has a list of packages 0-9, a-z; stores the package "z" into a variable, then reopens the cache. It then marks z for deletion. This either segfaults or does nothing; when it should mark z for deletion. More test cases like this are in the autopkgtest. [Regression potential] The initial fix introduced bug 1780099, there might be similar bugs lurking. However, these bugs would have been undefined behavior before and might have caused segmentation faults or did the wrong thing. It seems likely that any regression cannot possibly be worse than the current state. ========== bionic+ =================== [Impact] python-apt 1.6 raises an exception when objects of an old cache are passed to a apt_pkg.DepCache methods for a different cache. Prior to that, those would either segfault, succeed, or silently operate on a different object, as they use package/version ids, and e.g. two different packages in the old and new cache might have the same id. With 1.6.1, we introduce a remapping algorithm that remaps objects of apt.Cache() when calling apt.Cache.open(), allowing old objects to be used after reopening, as long as they exist in the new cache. If they don't exist in the new cache, apt_pkg.CacheMismatchError will be raised from the apt_pkg layer. [Test case] import apt c=apt.Cache() p=c["apt"] c.open() p.mark_install() [Regression potential] Could be remapping to wrong items which would cause us to install a wrong version, for example. Compared to pre-bionic, bionic is a regression already, though, and any regression caused here is less important than what we have now. [Original bug report] The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
2018-07-04 14:52:18 Julian Andres Klode attachment added Test case for xenial/trusty https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1773316/+attachment/5159649/+files/a.py
2018-07-04 14:52:26 Launchpad Janitor python-apt (Ubuntu Trusty): status New Confirmed
2018-07-04 14:52:26 Launchpad Janitor update-manager (Ubuntu Trusty): status New Confirmed
2018-07-04 14:52:26 Launchpad Janitor python-apt (Ubuntu Xenial): status New Confirmed
2018-07-04 14:52:26 Launchpad Janitor update-manager (Ubuntu Xenial): status New Confirmed
2018-07-10 11:02:36 Julian Andres Klode description ========== xenial / trusty ========== [Impact] Some applications, like unattended-upgrades or update-manager, reopen the apt cache. They also keep around old apt.Package objects however, and operate on them after reopening. Under the hood, this means that apt_pkg.Package objects belonging to an old cache are passed to a new cache. APT relies on the ID of the package (it's position in the cache) for it's operation. So if a package has ID 0 in the old cache, and a different package has ID 0 in the new cache, performing operations on the old package would perform it on the new package. If the old package's ID is out of bounds in the new cache, the behavior is undefined - it's an out of bounds array access. [Test case] The attached test case has a list of packages 0-9, a-z; stores the package "z" into a variable, then reopens the cache. It then marks z for deletion. This either segfaults or does nothing; when it should mark z for deletion. More test cases like this are in the autopkgtest. [Regression potential] The initial fix introduced bug 1780099, there might be similar bugs lurking. However, these bugs would have been undefined behavior before and might have caused segmentation faults or did the wrong thing. It seems likely that any regression cannot possibly be worse than the current state. ========== bionic+ =================== [Impact] python-apt 1.6 raises an exception when objects of an old cache are passed to a apt_pkg.DepCache methods for a different cache. Prior to that, those would either segfault, succeed, or silently operate on a different object, as they use package/version ids, and e.g. two different packages in the old and new cache might have the same id. With 1.6.1, we introduce a remapping algorithm that remaps objects of apt.Cache() when calling apt.Cache.open(), allowing old objects to be used after reopening, as long as they exist in the new cache. If they don't exist in the new cache, apt_pkg.CacheMismatchError will be raised from the apt_pkg layer. [Test case] import apt c=apt.Cache() p=c["apt"] c.open() p.mark_install() [Regression potential] Could be remapping to wrong items which would cause us to install a wrong version, for example. Compared to pre-bionic, bionic is a regression already, though, and any regression caused here is less important than what we have now. [Original bug report] The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/. [Impact] python-apt 1.6 raises an exception when objects of an old cache are passed to a apt_pkg.DepCache methods for a different cache. Prior to that, those would either segfault, succeed, or silently operate on a different object, as they use package/version ids, and e.g. two different packages in the old and new cache might have the same id. With 1.6.1, we introduce a remapping algorithm that remaps objects of apt.Cache() when calling apt.Cache.open(), allowing old objects to be used after reopening, as long as they exist in the new cache. If they don't exist in the new cache, apt_pkg.CacheMismatchError will be raised from the apt_pkg layer. [Test case] import apt c=apt.Cache() p=c["apt"] c.open() p.mark_install() [Regression potential] Could be remapping to wrong items which would cause us to install a wrong version, for example. Compared to pre-bionic, bionic is a regression already, though, and any regression caused here is less important than what we have now. [Original bug report] The Ubuntu Error Tracker has been receiving reports about a problem regarding update-manager. This problem was most recently seen with package version 1:18.04.11, the problem page at https://errors.ubuntu.com/problem/e6ff7b5c385c512b7933497ad895c8a19ed063b2 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports. If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
2018-07-10 11:02:48 Julian Andres Klode bug task deleted python-apt (Ubuntu Xenial)
2018-07-10 11:02:54 Julian Andres Klode bug task deleted python-apt (Ubuntu Trusty)