Gnucash nytprof file
John Ralls
jralls at ceridwen.us
Tue Oct 27 17:30:14 EDT 2015
> On Oct 27, 2015, at 1:56 PM, Erik Colson <eco at ecocode.net> wrote:
>
> Jed Diem <jed at tulane.edu> writes:
>
>> I've attached the Gnucash nytprof file.
>>
>> In looking around both a gnucash.trace file and gnucash.dtruss file
>> for patterns, I found the following which may or may not be
>> interesting.
>>
>> In a gnucash tracefile, 74532 instances of "Attempt to open or write
>> to a disabled transaction log."
>>
>> In gnucash.dtruss, 4538 files not found errors. 16 either "LibIDN.pm
>> or LibIDN.pmc instances", 1652 "dylib" instances and 2886 other files.
>
> Hi,
>
> So we are getting closer. I've attached a capture of the time spent in
> loading perl module IO::Socket::SSL.
>
> <Screen Shot 2015-10-27 at 21.02.00.png>
> You'll see that your system spent 21s in line 253
>
> if ( eval { require Net::IDN::Encode }) {
>
> and 42s in line 255
>
> } elsif ( eval { require Net::LibIDN }) {
>
> As you've already detected with dtruss neither of those is installed on
> your system. For some reason those 2 checks take ages.
>
> The version of IO::Socket::SSL included on your system is ageing. Both
> checks have been removed in current version of the module. I have a wild
> guess that the problem you experience might be the reason for that. For
> reference, this is the current version of the BEGIN block that contains
> the problem:
>
> BEGIN {
> # import some constants from Net::SSLeay or use hard-coded defaults
> # if Net::SSLeay isn't recent enough to provide the constants
> my %const = (
> NID_CommonName => 13,
> GEN_DNS => 2,
> GEN_IPADD => 7,
> );
> while ( my ($name,$value) = each %const ) {
> no strict 'refs';
> *{$name} = UNIVERSAL::can( 'Net::SSLeay', $name ) || sub { $value };
> }
>
> *idn_to_ascii = \&IO::Socket::SSL::PublicSuffix::idn_to_ascii;
> *idn_to_unicode = \&IO::Socket::SSL::PublicSuffix::idn_to_unicode;
> }
>
>
> In conclusion, I can figure two possibilities to solve your problem:
>
> - install the first missing module
>
> cpan -i Net::IDN::Encode
>
> That way the first check should succeed and the second check won't be
> reached. If this solves the problem you don't need the second option.
>
> - upgrade IO::Socket::SSL
>
> cpan -i IO::Socket::SLL
>
> but this might brake your system, as you are messing with the system
> perl modules. If you go this way, I recommend that you have a recent
> backup of your system, and be sure you can restore it!
>
>
> Keep me informed !
Erik,
I guess that nails my diagnosis, thanks. It still doesn’t explain why David T’s and Jed’s systems are looking on the network for Net::IDN::Encode and Net::LibIDL when mine aren’t. I suppose that it’s moot if the work-around is sufficient, but I’m curious anyway.
Regards,
John Ralls
More information about the gnucash-user
mailing list