ASE Home Page Products Download Purchase Support About ASE
ChartDirector Support
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  unknown method LinearMeter.makeChart
Posted by Karol on Dec-07-2012 22:49
Hello.
Our problem is that we are getting an error unknown method LinearMeter.makeChart.

Here is  stack trace:
calling ModPerl::ROOT::ModPerl::Registry::C_3a_owf2_bin_zest_2epl::handler at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling (eval) at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling ModPerl::RegistryCooker::run at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:170
calling ModPerl::RegistryCooker::default_handler at C:/strawberry/perl/site/lib/ModPerl/Registry.pm:31
calling ModPerl::Registry::handler at -e:0
calling (eval) at -e:0
at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 105
perlchartdir::printerr('unknown method LinearMeter.makeChart\\x{a}', 'LinearMeter.makeChart') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 128
perlchartdir::_m('LinearMeter.makeChart', 'ARRAY(0x4d91f5cc)', 1) called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 239
perlchartdir::_r('LinearMeter::makeChart', 'ARRAY(0x4d91f5cc)') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 657
CDAutoMethod::AUTOLOAD(undef, './static/chart_tmp/cd__127.0.0.16311115401352905338_29.png') called at indicator_column.pm line 128

We are running chartDirector for perl, version 5.0.3 on Apache with configured load balancing, so that one host delegates connections to Virtual Hosts. If there's anything else that you need to know to solve this problem, please let me know.

When this error occures, chart director refuses to work correctly until restart of Apache.

Have you got any fixes that could help us?

  Re: unknown method LinearMeter.makeChart
Posted by Peter Kwan on Dec-08-2012 06:10
Hi Karol,

In your last post, is it the complete and exact error message? Usually, ChartDirector for Perl will print out a line that says "'unknown method xxx", followed by the line "*** Stack back trace ***", following by the stack trace.

I need the first few lines of the error message (especially the "unknown method xxx" line) to confirm the exact method name that is sent to ChartDirector. The method name should be "LinearMeter.makeChart", but from your message, it seems to become "LinearMeter.makeChart\\x{a}". If this is really the case, the method name is corrupted.

From your message, it seems you are using mod_perl.  What I suspect is that there is some corrupted at the memory managed by mod_perl. I think the mod_perl compiles the Perl code, and caches the code and data in memory, so that it can reuse them later. For some unknown reason, some code in memory get corrupted, but mod_perl still continue to use them. That may be why once the issue occurs, it will continue to occur.
Restarting the Apache server, which restarts mod_perl and clears the memory cache, solves the probem.

Instead of mod_perl, is it possible to try regular Perl instead, just to test if it is mod_perl related?

Also, would you mind to inform me how often does this problem occur, and is it always occurring on "LinearMeter.makeChart", or occuring on all method names, or everything is it is occuring on a different method name?  If the error is reproducible, I can create a special version of "ChartDirector for Perl" that will include more detail error message to help trouble-shoot the issue. If you want this option, please inform me if you are using 32-bit or 64-bit ChartDirector for Perl.

Regards
Peter Kwan

  Re: unknown method LinearMeter.makeChart
Posted by Karol on Dec-08-2012 16:49
It was not a full stack trace - I cut off the lines which were related only to our project and, by accident, last line, which was 'unknown method LinearMeter.makeChart'.
This problem occures pretty often and also with method LinearMeter.setTransparentColor

Here are other stack traces
unknown method LinearMeter.setTransparentColor
*** Stack back trace ***
calling LinearMeter.setTransparentColor at c:/owf2/bin/indicator_column.pm:335
calling ...
calling ModPerl::ROOT::ModPerl::Registry::C_3a_owf2_bin_zest_zadania_w_jednostce_2epl::handler at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling (eval) at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling ModPerl::RegistryCooker::run at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:170
calling ModPerl::RegistryCooker::default_handler at C:/strawberry/perl/site/lib/ModPerl/Registry.pm:31
calling ModPerl::Registry::handler at -e:0
calling (eval) at -e:0
at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 105
perlchartdir::printerr('unknown method LinearMeter.setTransparentColor\\x{a}', 'LinearMeter.setTransparentColor') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 128
perlchartdir::_m('LinearMeter.setTransparentColor', 'ARRAY(0x4d13be04)', 1) called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 239
perlchartdir::_r('LinearMeter::setTransparentColor', 'ARRAY(0x4d13be04)') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 657
CDAutoMethod::AUTOLOAD(undef, -1) called at c:/owf2/bin/indicator_column.pm line 335
....


unknown method LinearMeter.makeChart
*** Stack back trace ***
calling LinearMeter.makeChart at C:\\owf2\\bin\\chart_director/perlchartdir.pm:980
calling BaseChart::makeTmpFile at c:/owf2/bin/indicator_column.pm:126
calling ....
calling ModPerl::ROOT::ModPerl::Registry::C_3a_owf2_bin_zest_2epl::handler at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling (eval) at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:204
calling ModPerl::RegistryCooker::run at C:/strawberry/perl/site/lib/ModPerl/RegistryCooker.pm:170
calling ModPerl::RegistryCooker::default_handler at C:/strawberry/perl/site/lib/ModPerl/Registry.pm:31
calling ModPerl::Registry::handler at -e:0
calling (eval) at -e:0
at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 105
perlchartdir::printerr('unknown method LinearMeter.makeChart\\x{a}', 'LinearMeter.makeChart') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 128
perlchartdir::_m('LinearMeter.makeChart', 'ARRAY(0x498bbe44)', 1) called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 239
perlchartdir::_r('LinearMeter::makeChart', 'ARRAY(0x498bbe44)') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 657
CDAutoMethod::AUTOLOAD(undef, 'C:/owf2\\bin\\static\\chart_tmp/cd__127.0.0.16298416908135290522...') called at C:\\owf2\\bin\\chart_director/perlchartdir.pm line 980
BaseChart::makeTmpFile('LinearMeter=HASH(0x49a6056c)', 'C:/owf2\\bin\\static\\chart_tmp', 0) called at c:/owf2/bin/indicator_column.pm line 126
....

And you are right, we are running mod_perl, but it is impossible to turn it off - system becomes too slow then.

We are interested in those libraries with more debug info. We are running Strawberry Perl 5.12, 32-bit version.

  Re: unknown method LinearMeter.makeChart
Posted by Peter Kwan on Dec-10-2012 17:33
Hi Karol,

The issue you are facing seems to be the same as the one in the following thread. In both cases, the environment is Apache/mod_perl on 32-bit Windows using ChartDirector 5.0.x on a heavily loaded web site, and the issue is that some method names are not found.

http://www.chartdir.com/forum/download_thread.php?bn=chartdir_support&thread=1319129294

At the end of the thread above, there is an updated "chartdir.dll". The update has since been incorporated in ChartDirector 5.1. Please try to download ChartDirector 5.1 for Perl, and use the new "chartdir.dll" and "perlchartdir???.dll" to see if this can solve the problem. (Upgrading from ChartDirector 5.0 to 5.1 is free of charge. Your existing license key should continue to work.)

Regards
Peter Kwan