Menu

qvamps 0.98 infinite loop on new Ubuntu

Help
2007-11-17
2013-04-08
  • Rainer Perske

    Rainer Perske - 2007-11-17

    I use qvamps 0.98 and vamps 0.99.2 on Ubuntu 7.10 and run into an endless loop after pressing the "Copy!" button.
    (This happens both with the version from the Ubuntu repository and with a manually compiled version.)
    The endless loop seems to be entered when (or before) about 1,8 GB of DVD image data are written, it eats more and more memory.
    In the protocol window, only the "Executing dvdauthor -x ..." line is displayed, no further line.
    (Obviously there should be many output lines from dvdauthor; earlier versions on SuSE Linux 10.0 worked.)
    (I assume something goes wrong causing the output buffer not to be flushed into the protocol window.)

    When tracing (perl -d qvamps, with AutoTrace activated) the Perl script qvamps, this endless loop starts after some 100,000 executed lines of code. Here are the last lines of the trace output, starting from entering the "run_dvdauthor" function in DvdMaker.pm. The endless loop consists of the last 34 lines of the trace only, as indicated below:

    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:256):
    256:      my $base_path = shift;
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:257):
    257:      my $rm_temps  = shift;
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:259):
    259:      my $vamps_inj = "$base_path/vamps.inj";
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:261):
    261:      rmtree ("$base_path/image");
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:176):
    176:        my($roots, $verbose, $safe) = @_;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:177):
    177:        my(@files);
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:178):
    178:        my($count) = 0;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:179):
    179:        $verbose ||= 0;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:180):
    180:        $safe ||= 0;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:182):
    182:        if ( defined($roots) && length($roots) ) {
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:183):
    183:          $roots = [$roots] unless ref $roots;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:190):
    190:        my($root);
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:191):
    191:        foreach $root (@{$roots}) {
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:191):
    191:        foreach $root (@{$roots}) {
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:192):
    192:            if ($Is_MacOS) {
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:196):
    196:                $root =~ s#/\z##;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:198):
    198:            (undef, undef, my $rp) = lstat $root or next;
    File::Path::rmtree(/usr/share/perl/5.8/File/Path.pm:282):
    282:        $count;
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:262):
    262:      unlink ($vamps_inj);
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:263):
    263:      update_status (1);
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:417):
    417:      my $forced = shift;
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:419):
    419:      my $elapsed   = elapsed;
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:420):
    420:      my $dst_space = dst_space;
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:422):
    422:      return unless ($elapsed && $dst_space);
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:424):
    424:      $elapsed -> setText ($t_zero ->
    425:                           addMSecs (clock -> elapsed ()) -> toString ("h:mm:ss"));
    Qt::AutoLoad::CODE(0x86220a8)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    Qt::AutoLoad::CODE(0x86220a8)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:579):
    579:            @methodids = () unless objmatch($methodids[0], \@_)
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:525):
    525:        my $method = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:526):
    526:        my $args = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:527):
    527:        for my $i(0..$#$args) {
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:528):
    528:            my $argtype = getSVt($$args[$i]);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:529):
    529:            my $t = getTypeNameOfArg($method, $i);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:530):
    530:            next if length $argtype == 1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:535):
    535:        1;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    Qt::AutoLoad::CODE(0x86220a8)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:562):
    562:            my $count = scalar @_;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:563):
    563:            for my $i (0..$count-1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:564):
    564:                my @matching = argmatch(\@methodids, \@_, $i);
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:469):
    469:        my $methods = shift;
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:470):
    470:        my $args = shift;
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:471):
    471:        my $i = shift;
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:472):
    472:        my %match;
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:473):
    473:        my $argtype = getSVt($args->[$i]);
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:474):
    474:        for my $methix(0..$#$methods) {
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:475):
    475:            my $method = $$methods[$methix]; 
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:476):
    476:            my $typename = getTypeNameOfArg($method, $i);
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:477):
    477:            if($argtype eq 'i') {
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:486):
    486:                if($typename =~ /^(?:(?:const )?u?char\*|(?:const )?(?:(Q(C?)String)|QByteArray)[*&]?)$/) {
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:475):
    475:            my $method = $$methods[$methix]; 
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:476):
    476:            my $typename = getTypeNameOfArg($method, $i);
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:477):
    477:            if($argtype eq 'i') {
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:486):
    486:                if($typename =~ /^(?:(?:const )?u?char\*|(?:const )?(?:(Q(C?)String)|QByteArray)[*&]?)$/) {
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:491):
    491:                    $match{$method}[0] = defined $2 && $2 ? 1 : ( defined $1 ? 2 : 0 );
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:492):
    492:                    $match{$method}[1] = $methix
    Qt::_internal::argmatch(/usr/lib/perl5/Qt.pm:521): 
    521:        return sort { $match{$b}[0] <=> $match{$a}[0] or $match{$a}[1] <=> $match{$b}[1] } keys %match;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:565):
    565:                @methodids = @matching if @matching or $strictArgMatch;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:567):
    567:            do {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    Qt::AutoLoad::CODE(0x8564304)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::AutoLoad::CODE(0x86220a8)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::base::ON_DESTROY(/usr/lib/perl5/Qt.pm:904):
    904:    sub Qt::base::ON_DESTROY { 0 };
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:427):
    427:      my $counter = counter - 1;
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:429):
    429:      if ($forced || $counter == 0)
    430:      {
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:431):
    431:        $counter = 20;
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:433):
    433:        $dst_space -> setText (sprintf "%d/%d MB",
    434:                               dir_files_size (dst_dir) / 1024. / 1024., tgt_size);
    DvdMaker::dir_files_size(/usr/local/share/qvamps/lib/DvdMaker.pm:443):
    443:      my $dir = shift;
    DvdMaker::dir_files_size(/usr/local/share/qvamps/lib/DvdMaker.pm:445):
    445:      return 0 unless (opendir DH, $dir);
    Qt::AutoLoad::CODE(0x8564304)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    DvdMaker::update_status(/usr/local/share/qvamps/lib/DvdMaker.pm:437):
    437:      counter = $counter;
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:265):
    265:      my $dvdauthor_xml = "$base_path/dvdauthor.xml";
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:266):
    266:      my $dvdauthor     = read_setting ("/Dvdauthor/command");  
    QVamps::read_setting(/usr/local/share/qvamps/lib/QVamps.pm:174):    
    174:      my $key = shift;
    QVamps::read_setting(/usr/local/share/qvamps/lib/QVamps.pm:177):
    177:      my $ok;
    QVamps::read_setting(/usr/local/share/qvamps/lib/QVamps.pm:178):
    178:      my $value = $settings -> readEntry ($key, undef, $ok);
    Qt::AutoLoad::CODE(0x85c28d4)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    QVamps::read_setting(/usr/local/share/qvamps/lib/QVamps.pm:181):
    181:      return $value if ($ok);
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:267):
    267:      $dvdauthor        = replace ($dvdauthor, { "x" => $dvdauthor_xml });
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:277):
    277:      my $str = shift;
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:278):
    278:      my %rep = %{shift ()};
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:278):
    278:      my %rep = %{shift ()};
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:280):
    280:      $rep {"%"} = "%";
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:282):
    282:      $str =~ s/%(.)/$rep{$1}/g;
    QVamps::replace(/usr/local/share/qvamps/lib/QVamps.pm:284):
    284:      return $str;
    DvdMaker::run_dvdauthor(/usr/local/share/qvamps/lib/DvdMaker.pm:269):
    269:      my $rc = launch_sh_cmd (0, $dvdauthor);
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:143):
    143:      my $hilite = shift;
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:144):
    144:      my $cmd    = shift;
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:146):
    146:      hilite_errors = $hilite;
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:147):
    147:      my $lv        = log_viewer;
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:149):
    149:      $lv -> setColor (Qt::Color (0, 0, 0xff));
    Qt::_internal::CODE(0x84b20cc)(/usr/lib/perl5/Qt.pm:464):
    464:            $class->new(@_);
    Qt::base::new(/usr/lib/perl5/Qt.pm:8):
    8:          my $t = this;
    Qt::base::new(/usr/lib/perl5/Qt.pm:9):
    9:          shift->NEW(@_);
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:451):
    451:            my $class = shift;
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:452):
    452:            $Qt::AutoLoad::AUTOLOAD = "$class\::$c";
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:453):
    453:            my $autoload = " $class\::_UTOLOAD";
    454:            {
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:455):
    455:                no warnings;
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:457):
    457:                setThis(bless &$autoload, " $class");
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:459):
    459:            setAllocated(this, 1);
    Qt::_internal::CODE(0x84b1f34)(/usr/lib/perl5/Qt.pm:460):
    460:            mapObject(this);
    Qt::base::new(/usr/lib/perl5/Qt.pm:10):
    10:         my $ret = this;
    Qt::base::new(/usr/lib/perl5/Qt.pm:11):
    11:         Qt::_internal::setThis($t);
    Qt::base::new(/usr/lib/perl5/Qt.pm:12):
    12:         return $ret;
    Qt::AutoLoad::CODE(0x861b6bc)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:549):
    549:                @methods = map { $_ . '#' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:549):
    549:                @methods = map { $_ . '#' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:579):
    579:            @methodids = () unless objmatch($methodids[0], \@_)
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:525):
    525:        my $method = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:526):
    526:        my $args = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:527):
    527:        for my $i(0..$#$args) {
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:528):
    528:            my $argtype = getSVt($$args[$i]);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:529):
    529:            my $t = getTypeNameOfArg($method, $i);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:530):
    530:            next if length $argtype == 1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:531):
    531:            $t =~ s/^const\s+//;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:532):
    532:            $t =~ s/(?<=\w)[&*]$//;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:533):
    533:            return 0 unless classIsa($argtype, $t) != -1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:535):
    535:        1;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    Qt::AutoLoad::CODE(0x84b1f04)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::base::ON_DESTROY(/usr/lib/perl5/Qt.pm:904):
    904:    sub Qt::base::ON_DESTROY { 0 };
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:150):
    150:      $lv -> append (sprintf "%s \&quot;%s\&quot;\n\n", &tr ("Executing"), $cmd);
    QVamps::trUtf8(/usr/local/share/qvamps/lib/QVamps.pm:460):
    460:      my $source  = shift;
    QVamps::trUtf8(/usr/local/share/qvamps/lib/QVamps.pm:461):
    461:      my $comment = shift;
    QVamps::trUtf8(/usr/local/share/qvamps/lib/QVamps.pm:463):
    463:      my ($class_name) = caller;
    QVamps::trUtf8(/usr/local/share/qvamps/lib/QVamps.pm:465):
    465:      return Qt::app () -> translate ($class_name, $source, $comment,
    466:                                      &Qt::Application::UnicodeUTF8);
    Qt::AutoLoad::CODE(0x8482208)(/usr/lib/perl5/Qt.pm:428):
    428:            *{ $class . "::AUTOLOAD" } =  sub{ &$closure };
    Qt::AutoLoad::CODE(0x848267c)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::AutoLoad::CODE(0x861b6bc)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:579):
    579:            @methodids = () unless objmatch($methodids[0], \@_)
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:525):
    525:        my $method = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:526):
    526:        my $args = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:527):
    527:        for my $i(0..$#$args) {
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:528):
    528:            my $argtype = getSVt($$args[$i]);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:529):
    529:            my $t = getTypeNameOfArg($method, $i);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:530):
    530:            next if length $argtype == 1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:535):
    535:        1;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:151):
    151:      $lv -> setColor (default_color);
    Qt::AutoLoad::CODE(0x861b6bc)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:153):
    153:      $cmd = "exec $cmd" unless ($cmd =~ /[|;]/);
    DvdMaker::launch_sh_cmd(/usr/local/share/qvamps/lib/DvdMaker.pm:155):
    155:      return launch ([ "/bin/sh", "-c", $cmd ]);
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:103):
    103:      my $args = shift;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:105):
    105:      my $proc = proc;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:107):
    107:      $proc -> setArguments ($args);
    Qt::AutoLoad::CODE(0x85ab334)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:551):
    551:                @methods = map { $_ . '?' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:551):
    551:                @methods = map { $_ . '?' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:579):
    579:            @methodids = () unless objmatch($methodids[0], \@_)
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:525):
    525:        my $method = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:526):
    526:        my $args = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:527):
    527:        for my $i(0..$#$args) {
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:528):
    528:            my $argtype = getSVt($$args[$i]);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:529):
    529:            my $t = getTypeNameOfArg($method, $i);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:530):
    530:            next if length $argtype == 1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:535):
    535:        1;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:109):
    109:      unless ($proc -> start ())
    110:      {
    Qt::AutoLoad::CODE(0x85ab334)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:117):
    117:      my $event_loop = Qt::Application::eventLoop ();
    Qt::AutoLoad::CODE(0x8482208)(/usr/lib/perl5/Qt.pm:428):
    428:            *{ $class . "::AUTOLOAD" } =  sub{ &$closure };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:119):
    119:      proc_running = 1;
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:121):
    121:      while (proc_running)
    122:      {
    DvdMaker::launch(/usr/local/share/qvamps/lib/DvdMaker.pm:123):
    123:        $event_loop -> processEvents (&Qt::EventLoop::WaitForMore);
    Qt::AutoLoad::CODE(0x8504628)(/usr/lib/perl5/Qt.pm:428):
    428:            *{ $class . "::AUTOLOAD" } =  sub{ &$closure };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    Qt::AutoLoad::CODE(0x8504700)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:546):
    546:            unless(defined $arg) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:553):
    553:                @methods = map { $_ . '$' } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:579):
    579:            @methodids = () unless objmatch($methodids[0], \@_)
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:525):
    525:        my $method = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:526):
    526:        my $args = shift;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:527):
    527:        for my $i(0..$#$args) {
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:528):
    528:            my $argtype = getSVt($$args[$i]);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:529):
    529:            my $t = getTypeNameOfArg($method, $i);
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:530):
    530:            next if length $argtype == 1;
    Qt::_internal::objmatch(/usr/lib/perl5/Qt.pm:535):
    535:        1;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;
    DvdMaker::read_output(/usr/local/share/qvamps/lib/DvdMaker.pm:190):
    190:      my $proc = proc;
    DvdMaker::read_output(/usr/local/share/qvamps/lib/DvdMaker.pm:192):
    192:      while (my $s = $proc -> readStdout ())
    193:      {
    Qt::AutoLoad::CODE(0x85ab334)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:539):
    539:        my $package = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:540):
    540:        my $method = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:541):
    541:        my $classId = pop;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:543):
    543:        my $class = $CppName{$IdClass[$classId]};
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:544):
    544:        my @methods = ($method);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:545):
    545:        for my $arg (@_) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:556):
    556:        my @methodids = map { findMethod($class, $_) } @methods;
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:560):
    560:        if(@methodids > 1) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:581):
    581:        unless(@methodids) {
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:624):
    624:        setCurrentMethod($methodids[0]);
    Qt::_internal::do_autoload(/usr/lib/perl5/Qt.pm:625):
    625:        return 1;

    /* endless repetition of the following lines */

    DvdMaker::read_output(/usr/local/share/qvamps/lib/DvdMaker.pm:194):
    194:        append_output (0, $s);
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:167):
    167:      my $e = shift;        # 0: stdout, 1: stderr
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:168):
    168:      my $s = shift;        # string to append
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:171):
    171:      my $flush = ($s =~ s/[\b]+//g);
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:174):
    174:      $s =~ s/\r+/\n/g;
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:175):
    175:      $s =~ s/^libdvdread: .+\n//mg;
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:177):
    177:      $s             = outbuf -> [$e] . $s;
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:178):
    178:      outbuf -> [$e] = !$flush && ($s =~ s/(.+)\z//) ? $1 : ""; 
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:180):
    180:      my $lv = log_viewer;
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:182):
    182:      $lv -> setColor (Qt::Color (0xff, 0, 0)) if ($e && hilite_errors);
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:183):
    183:      $lv -> append ($s);
    Qt::AutoLoad::CODE(0x861b6bc)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    DvdMaker::append_output(/usr/local/share/qvamps/lib/DvdMaker.pm:184):
    184:      $lv -> setColor (default_color);
    Qt::AutoLoad::CODE(0x861b6bc)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::AutoLoad::CODE(0x8494e80)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };
    Qt::base::ON_DESTROY(/usr/lib/perl5/Qt.pm:904):
    904:    sub Qt::base::ON_DESTROY { 0 };
    Qt::AutoLoad::CODE(0x85ab334)(/usr/lib/perl5/Qt.pm:445):
    445:            *{ " $class\::AUTOLOAD" } = sub { &$autosub };

    I am not a Perl programmer, thus I'm not able to fix the bug myself without help. Thanks in advance!

     
    • Rainer Perske

      Rainer Perske - 2007-11-17

      PS: This happens with and without the patch from the thread "qVamps crashes on hitting "Copy!"" applied.
      PS: This happens with and without the patch against vamps 0.99.2 regarding "Premature EOF" applied.

       
    • Rainer Perske

      Rainer Perske - 2007-11-18

      PPS: As expected, the problem does not occur if I switch the "Copy Tasks" to "1: Create XML control file for dvdauthor, menu program stream and a shell script to (re-)run these copy tasks" and then run the generated script "run_me" in a terminal window manually.

       

Log in to post a comment.