On Tuesday 07 August 2007, Junichi Uekawa wrote:
> in lib/debian/bts.rb there is a constant
>
>         ParseStep = 200
>
> This is the value which determines how many bugs to process at a time.
> Reducing this number will make things slow, and it should really be
> determined dynamically based on available memory, but it's currently
> defined static.
>
> If you can tweak this number and find out if this improves the
> situation for you, it will be a source of motivation for me to make
> this variable dynamic (or configurable).

Hi Junichi,

I tried with multiple numbers - 100, 50, 10.
No luck, none of them helped.

FYI, this issue is also reproducible on Debian GNU/kFreeBSD running under a 
separate VM with 256M of RAM.
So the swapping issue should stay valid or not is a difficult thing to say, at 
least for BSDs.

I looked into bts.rb

ParseStep = 200

        def parse(pkgs, severities = ["critical", "grave"])
          require 'debian/btssoap'
          soap = Debian::BTSSOAP::Soap.new(@host, @port)
          sa = Debian::BTSSOAP::StringArray.new
          bugs = Debian::Bugs.new

          reqbugs = soap.get_bugs('severity', severities, 'package', pkgs)

          # the total number of bugs
          max = reqbugs.length
          # progressed amount
          offset_i = 0

          # process each bug number and get contents, in bach of ParseStep
          reqbugs.each { |bug|
            sa << bug
            if sa.length > ParseStep
              soap.get_status(sa).each { |b| bugs << b }
              offset_i += sa.length
              sa = Debian::BTSSOAP::StringArray.new
              yield "#{((offset_i).to_f*100/max.to_f).to_i}%"


As I had mentioned in my earlier posts, this issue is only seen when the 
number of packages passed is too high. In both the cases for me, the meta 
package being installed was xserver-xorg which led to installation of 41 
packages.
If I lower down the number of packages, thing will work.

So maybe you could try to look into ways to cut down one shot execution of 
Parsing all packages. If the number of packages passed is too high (say 
packages > 15), process them in order.

I think this should be the cause because lower number of packages passed 
doesn't create trouble for apt-listbug on other platforms.

# process each bug number and get contents, in bach of ParseStep
BTW, I couldn't make out the meaning of this comment. Are you talking 
about "batch" or "back" ?


Ritesh
-- 
Ritesh Raj Sarraf
RESEARCHUT - http://www.researchut.com
"Necessity is the mother of invention."

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to