I have a MySQL/Perl Dancer [http://perldancer.org] powered web app. Actually, two web apps.
The user goes to app A [http://teststrata.geology.wisc.edu/macromap] which serves up a Google maps base layer. On document ready, it makes two jQuery ajax calls to app B [http://teststrata.geology.wisc.edu/mstrat/] like so http://teststrata.geology.wisc.edu/mstrat/points.json http://teststrata.geology.wisc.edu/mstrat/polys.json App B queries the MySQL database via DBI, and serves up json packets of points and polys that are rendered in the user's browser. Both apps are proxies through Apache to Perl Starman running via plackup. From time to time, I start getting errors back from the second app. The initial symptoms were {"error":"Warning caught during route execution: DBD::mysql::st fetchall_arrayref failed: fetch() without execute() at <path/to>/macrostrat.pm line 79.\n"} The offending lines are 71> my $sql = qq{ 72> .. 73> 74> 75> }; 76> 77> my $sth = $dbh->prepare($sql); 78> $sth->execute(); 79> my $res = $sth->fetchall_arrayref({}); This is bizarre... how can execute() not take place above? Perl doesn't have a habit of jumping over lines, does it? So, I turned on DBI_TRACE $DBI_TRACE=2=logs/dbi.log plackup -E production -p 5001 -s Starman -w 10 -a bin/app.pl And, following is what stood out to me as the potential culprit in the log file > Handle is not in asynchronous mode error 2000 recorded: Handle is > not in asynchronous mode > !! ERROR: 2000 CLEARED by call to fetch method What is going on? Many thanks in advance... this is my first posting on this board. Puneet.