[devscripts] 05/06: Devscripts::Debbugs: Request bug status in chunks
James McCoy
jamessan at debian.org
Wed Jun 3 05:02:26 UTC 2015
This is an automated email from the git hooks/post-receive script.
jamessan pushed a commit to branch master
in repository devscripts.
commit 980261776d8ab0c0314923038b7278772e6065bd
Author: James McCoy <jamessan at debian.org>
Date: Wed Jun 3 00:34:14 2015 -0400
Devscripts::Debbugs: Request bug status in chunks
Post-Jessie there are rlimits set on apache processes which cause
bugs.debian.org's SOAP handler to die when building large responses.
Splitting the bug_status request into chunks avoids hitting those
limits.
Signed-off-by: James McCoy <jamessan at debian.org>
---
debian/changelog | 2 ++
lib/Devscripts/Debbugs.pm | 23 ++++++++++++++---------
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index c9ac0c5..2d2d2f7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -30,6 +30,8 @@ devscripts (2.15.5) UNRELEASED; urgency=medium
* debuild: Recognize -jauto as a valid option. Based on a patch by Reiner
Herrmann. (Closes: #787276)
* uscan: Fix Github example in man page. (Closes: #757194)
+ * Devscripts::Debbugs: Retrieve bug status in chunks to avoid building large
+ responses on bugs.d.o.
[ Dominique Dumont ]
* licensecheck:
diff --git a/lib/Devscripts/Debbugs.pm b/lib/Devscripts/Debbugs.pm
index 1ac50b6..ee4ecdf 100644
--- a/lib/Devscripts/Debbugs.pm
+++ b/lib/Devscripts/Debbugs.pm
@@ -253,18 +253,23 @@ sub status {
my $soap = init_soap();
- my $bugs = $soap->get_status(@args);
+ my $result = {};
+ while (my @slice = splice(@args, 0, 500)) {
+ my $bugs = $soap->get_status(@slice);
- if (@errors or not defined $bugs) {
- my $error = join("\n", @errors);
- die "Error while retrieving bug statuses from SOAP server: $error\n";
- }
+ if (@errors or not defined $bugs) {
+ my $error = join("\n", @errors);
+ die "Error while retrieving bug statuses from SOAP server: $error\n";
+ }
- my $result = $bugs->result();
+ my $tmp = $bugs->result();
- if (@errors or not defined $result) {
- my $error = join("\n", @errors);
- die "Error while retrieving bug statuses from SOAP server: $error\n";
+ if (@errors or not defined $tmp) {
+ my $error = join("\n", @errors);
+ die "Error while retrieving bug statuses from SOAP server: $error\n";
+ }
+
+ %$result = (%$result, %$tmp);
}
return $result;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git
More information about the devscripts-devel
mailing list