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/