devel-nytprof icon indicating copy to clipboard operation
devel-nytprof copied to clipboard

Can't resolve fid of '0' at /bin/nytprofhtml line 1381

Open PenelopeFudd opened this issue 11 years ago • 3 comments

Hello!

I'm debugging a legacy perl program on OpenSolaris 10 with perl v5.8.8 built for i86pc-solaris-thread-multi, with Devel::NYTProf 5.06. It's running as an Fcgi program under apache 2.2.25.

nytprofhtml -f nytprof.out.15306 
Reading nytprof.out.15306
Processing nytprof.out.15306 data
Writing line reports to nytprof directory
 100% ... 
Extracting subroutine call data ...
Extracting subroutine links
Generating subroutine stack flame graph ...
Can't resolve fid of '0' at /bin/nytprofhtml line 1381

The apache configuration has this:

  FcgidCmdOptions /path/to/program.pl \
     InitialEnv PERL5OPT=-d:NYTProf \
     InitialEnv NYTPROF=file=/tmp/nytprof-main.out:addpid=1:start=no \
     MaxProcesses 1

The code has this:

STARTOFLOOP: while ((alarm 0 || 1) && &check_for_signal &&
  (DB::disable_profile() || 1) && 
(my $q = new CGI::Fast) ) {
  if (-e "/tmp/nytprof-please") {DB::enable_profile();}
  if (-e "/tmp/nytprof-exit") {unlink("/tmp/nytprof-exit","/tmp/nytprof-please");exit 0;}

  blah.blah.blah;
}

I copied the nytprof.out file to a linux machine and ran nytprofhtml there, and after complaining about all of the perl files that were not found, it too died with "Can't resolve fid of '0' at /usr/local/bin/nytprofhtml line 1381."

I'm sorry I can't provide more information or spend more time on this, but I thought I ought to submit a bug report.

Good luck! I love your program!

PenelopeFudd avatar Dec 20 '13 21:12 PenelopeFudd

I just realized that nytprofhtml did create an nytprof directory, and it has a bunch of files including index.html, but I don't know if anything is missing or damaged by this error, or if it's a completely harmless error message.

Sorry for any annoyance I may have caused!

PenelopeFudd avatar Dec 20 '13 21:12 PenelopeFudd

No problem. This is actually a known issue - there's an open ticket in rt.cpan.org that's not been copied over to github yet. A small test case (ideally one that doesn't involve Apache) would be helpful.

timbunce avatar Dec 21 '13 12:12 timbunce

Hello!

I'm debugging a legacy perl program on OpenSolaris 10 with perl v5.8.8 built for i86pc-solaris-thread-multi, with Devel::NYTProf 5.06. It's running as an Fcgi program under apache 2.2.25.

nytprofhtml -f nytprof.out.15306 
Reading nytprof.out.15306
Processing nytprof.out.15306 data
Writing line reports to nytprof directory
 100% ... 
Extracting subroutine call data ...
Extracting subroutine links
Generating subroutine stack flame graph ...
Can't resolve fid of '0' at /bin/nytprofhtml line 1381

The apache configuration has this:

  FcgidCmdOptions /path/to/program.pl \
     InitialEnv PERL5OPT=-d:NYTProf \
     InitialEnv NYTPROF=file=/tmp/nytprof-main.out:addpid=1:start=no \
     MaxProcesses 1

The code has this:

STARTOFLOOP: while ((alarm 0 || 1) && &check_for_signal &&
  (DB::disable_profile() || 1) && 
(my $q = new CGI::Fast) ) {
  if (-e "/tmp/nytprof-please") {DB::enable_profile();}
  if (-e "/tmp/nytprof-exit") {unlink("/tmp/nytprof-exit","/tmp/nytprof-please");exit 0;}

  blah.blah.blah;
}

I copied the nytprof.out file to a linux machine and ran nytprofhtml there, and after complaining about all of the perl files that were not found, it too died with "Can't resolve fid of '0' at /usr/local/bin/nytprofhtml line 1381."

I'm sorry I can't provide more information or spend more time on this, but I thought I ought to submit a bug report.

Good luck! I love your program!

In the version of Devel-NYTProf you were using when you filed this ticket, the relevant lines appear to have been:

1380     my (@t_stmt_exec, @t_stmt_time);
1381     my @fis = $profile->noneval_fileinfos;
1382     @fis = sort { $b->meta->{'time'} <=> $a->meta->{'time'} } @fis;

I believe that those statements are now found here in bin/nytprofhtml:

1407     my (@t_stmt_exec, @t_stmt_time);
1408     my @fis = $profile->noneval_fileinfos;
1409     @fis = sort { $b->meta->{'time'} <=> $a->meta->{'time'} } @fis;

Does that seem correct?

BTW: A new version of Devel-NYTProf (6.07) was released to CPAN this morning (https://metacpan.org/pod/Devel::NYTProf).

Thank you very much. Jim Keenan

jkeenan avatar Apr 06 '21 22:04 jkeenan