Art Sackett wrote:
Greetings:

I've got a very interesting problem here. First a little background:

The application of course uses wxperl. Its function is to read in an
Excel spreadsheet using Spreadsheet::Read and generate various reports
using PDF::API2. Because the PDF generation takes quite a long time I
use IPC::Run to fork off a subroutine that instantiates the various
report generation modules which all share a common PDF::API2 object,
thus returning control back to wxperl to avoid freezing the GUI. Within
my derived Wx module, I start a Wx::Timer with a callback to a sub that
keeps track of document generation progress and provides visual feedback
to the user.

This all works perfectly under Debian lenny/AMD64 and Ubuntu/i386 here
in my office. It also works perfectly on my client's workstation if run
via SSH with X forwarded, but when they run it locally or when I run it
via vncviewer so the entire Gnome desktop environment is involved, an
error is thrown when the forked subroutine exits:

  Is it reported by the parent or by the child?

 *** glibc detected *** perl: free(): invalid pointer <some memory
 address> ***

I have to admit that I'm just assuming that wxperl is involved, since
the key ingredient is the Gnome desktop environment without which
everything works as intended.

  You could try to use valgrind; it should at least show you if
the memory has been allocated by wxPerl or by something else.

I'm presently unable to confirm which version of wxperl is involved on
the remote host with the problems as it's offline, but I'm guessing it'd
be 0.81 as it was installed in February 2008. I know it's in Perl 5.8.8
on the remote host. The working versions here are Perl 5.10.0 with Wx
version 0.84 (Debian lenny AMD64) and Perl 5.8.8 with Wx version 0.82
(Ubuntu i386).

Regards,
Mattia

Reply via email to