Editing git repository with >1000 refs results in oops
Bug #1511838 reported by
Björn Michaelsen
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Colin Watson |
Bug Description
Steps to reproduce:
1/ go to https:/
2/ uncheck the "Owner Default" checkbox
Expected result:
Repos is not the default anymore.
Actual result:
Launchpad Ooopses:
{Error ID: OOPS-0e143694f22be9bc991059781adb81f4)
Related branches
lp:~cjwatson/launchpad/git-do-not-snapshot-refs
- William Grant (community): Approve (code)
-
Diff: 66 lines (+13/-4)2 files modifiedlib/lp/code/interfaces/gitrepository.py (+5/-4)
lib/lp/code/model/tests/test_gitrepository.py (+8/-0)
Changed in launchpad: | |
assignee: | nobody → Colin Watson (cjwatson) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
This is because we're trying to snapshot a repository with >1000 (in fact currently 42566) refs. We should only snapshot the fields we need.
ShortListTooB igError: Hard limit of 1000 exceeded.
Traceback (most recent call last): publish, line 132, in publish callObject( request, obj) webapp. publication, line 463, in callObject getPositionalAr guments( ), request) publish, line 107, in mapply e.metaconfigure .SimpleViewClas s from /srv/launchpad. net/production/ launchpad- rev-17838/ lib/lp/ code/browser/ ../templates/ gitrepository- edit.pt instance at 0x2b692907fc10> publish, line 113, in debug_call webapp. publisher, line 438, in __call__ initialize( ) browser. launchpadform, line 136, in initialize form_result = form_action. success( data) handler( self.form, self, data) browser. gitrepository, line 356, in change_action providedBy( self.context) ) snapshot, line 90, in __init__ actory, default=_marker) _api, line 102, in queryAdapter hook(interface, object, name, default) hooks, line 104, in adapter_hook adapter_ hook(interface, object, name, default) webapp. snapshot, line 25, in snapshot_sql_result expected= 100, hardlimit= HARD_LIMIT_ FOR_SNAPSHOT) helpers, line 175, in shortlist Error: Hard limit of 1000 exceeded.
Module zope.publisher.
result = publication.
Module lp.services.
return mapply(ob, request.
Module zope.publisher.
return debug_call(obj, args)
- __traceback_info__: <security proxied zope.browserpag
Module zope.publisher.
return obj(*args)
Module lp.services.
self.
Module lp.app.
self.
Module zope.formlib.form, line 620, in success
return self.success_
Module lp.code.
self.context, providing=
Module lazr.lifecycle.
value, ISnapshotValueF
Module zope.component.
return adapter_
Module zope.component.
return siteinfo.
Module lp.services.
value, longest_
Module lp.services.
'Hard limit of %d exceeded.' % hardlimit)
ShortListTooBig