copying a kernel to -updates appears to get stuck on distrosourcepackage.recalculateBugHeatcache

Bug #723955 reported by Martin Pitt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
High
Unassigned

Bug Description

I am just copying the current linux kernels in -proposed to -updates (and security):

  copy-package.py -ybs hardy-proposed --to-suite hardy-security linux

This now seems to take a very long time; I already waited for 15 minutes, then Control-C'ed it:

^CTraceback (most recent call last):
  File "/srv/launchpad.net/codelines/current/scripts/ftpmaster-tools/copy-package.py", line 19, in <module>
    script.lock_and_run()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/services/scripts/base.py", line 91, in log_unhandled_exceptions_func
    return func(self, *args, **kw)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/services/scripts/base.py", line 353, in lock_and_run
    implicit_begin=implicit_begin, isolation=isolation)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/services/scripts/base.py", line 91, in log_unhandled_exceptions_func
    return func(self, *args, **kw)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/services/scripts/base.py", line 311, in run
    self.main()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/ftpmasterbase.py", line 301, in main
    self.mainTask()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/packagecopier.py", line 780, in mainTask
    self.options.include_binaries, self.allow_delayed_copies)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/packagecopier.py", line 521, in do_copy
    source, archive, destination_series, pocket, include_binaries)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/packagecopier.py", line 561, in _do_direct_copy
    close_bugs_for_sourcepublication(source_copy)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/processaccepted.py", line 153, in close_bugs_for_sourcepublication
    sourcepackagerelease, changesfile_object)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/soyuz/scripts/processaccepted.py", line 192, in close_bugs_for_sourcepackagerelease
    content=content)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1116, in newMessage
    msg, bugwatch, remote_comment_id=remote_comment_id)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1136, in linkMessage
    self.findCvesInText(message.text_contents, user)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1321, in findCvesInText
    self.linkCVE(cve, user)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1299, in linkCVE
    notify(ObjectCreatedEvent(bugcve, user=user))
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.event-3.4.1-py2.6.egg/zope/event/__init__.py", line 23, in notify
    subscriber(event)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/event.py", line 26, in dispatch
    zope.component.subscribers(event, None)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/_api.py", line 138, in subscribers
    return sitemanager.subscribers(objects, interface)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/registry.py", line 323, in subscribers
    return self.adapters.subscribers(objects, provided)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.interface-3.5.2-py2.6-linux-x86_64.egg/zope/interface/adapter.py", line 579, in subscribers
    subscription(*objects)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/event.py", line 34, in objectEventNotify
    zope.component.subscribers((event.object, event), None)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/_api.py", line 138, in subscribers
    return sitemanager.subscribers(objects, interface)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.component-3.9.3-py2.6.egg/zope/component/registry.py", line 323, in subscribers
    return self.adapters.subscribers(objects, provided)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/zope.interface-3.5.2-py2.6-linux-x86_64.egg/zope/interface/adapter.py", line 579, in subscribers
    subscription(*objects)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/canonical/database/sqlbase.py", line 754, in block_implicit_flushes_decorator
    return func(*args, **kwargs)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/subscribers/bugactivity.py", line 138, in record_cve_linked_to_bug
    cve=bug_cve.cve))
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1095, in addChange
    self.updateHeat()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/bugs/model/bug.py", line 1927, in updateHeat
    task.target.recalculateBugHeatCache()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/lib/lp/registry/model/distributionsourcepackage.py", line 222, in recalculateBugHeatCache
    BugTask.status.is_in(UNRESOLVED_BUGTASK_STATUSES)).one()
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/store.py", line 1146, in one
    result = self._store._connection.execute(select)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/databases/postgres.py", line 249, in execute
    return Connection.execute(self, statement, params, noresult)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/database.py", line 237, in execute
    raw_cursor = self.raw_execute(statement, params)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/databases/postgres.py", line 259, in raw_execute
    return Connection.raw_execute(self, statement, params)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/database.py", line 321, in raw_execute
    self._check_disconnect(raw_cursor.execute, *args)
  File "/srv/launchpad.net/codelines/soyuz-production-rev-12381/eggs/storm-0.18-py2.6-linux-x86_64.egg/storm/database.py", line 366, in _check_disconnect
    return function(*args, **kwargs)
KeyboardInterrupt

It seems to get stuck in bug heat recalculation?

2011-02-23 22:20:28 lifeless there is a bug about bug heat calculation being expensive
2011-02-23 22:21:03 lifeless what its doing is refreshing the heat across -all- bugs for that source package
2011-02-23 22:21:07 pitti I guess I'll just let it sit there then and hope that it'll finish at some point?
2011-02-23 22:21:11 lifeless which is more than a little crazy
2011-02-23 22:21:16 lifeless it will, yes
2011-02-23 22:21:21 pitti lifeless: ugh, and as this is linux, there will be many thousands
2011-02-23 22:21:42 lifeless see lib/lp/registry/model/distributionsourcepackage.py
2011-02-23 22:22:18 lifeless pitti: context bug heat is defined with a global algorithm
2011-02-23 22:23:47 lifeless pitti: if it takes > 10 seconds, all bug updates in the context that you're working on will queue in the db for the source package row lock.
2011-02-23 22:24:48 lifeless once a transaction starts a write on row X with FK Y, a row lock on the FK table row Y is taken out.
2011-02-23 22:24:57 lifeless to prevent the FK relationship being broken.

Revision history for this message
Robert Collins (lifeless) wrote :

I'm initially classifying this as high, but we're seeing some timeouts on bug updates - its probably all related. We may need to immediately move bug heat cache calculations out of the model and depend on the backend updates.

summary: - copying a kernel to -updates takes very long now
+ copying a kernel to -updates appears to get stuck on
+ distrosourcepackage.recalculateBugHeatcache
Changed in launchpad:
status: New → Triaged
importance: Undecided → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.