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:

 *** 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.

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). 

Has anyone seen anything like this before and know how I might fix or
work around it? Or, lacking that, some ideas of who I might isolate and
correct the problem?

Any assistance/enlightenment or excuse to glue my hair back in will be
be very greatly appreciated!

-- 
Art Sackett
http://www.artsackett.com/

Reply via email to