-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 What it is supposed to be doing is creating a pseudo file-handle ($result_buffer) which enables methods that write files to write their output directly to a string. $result_buffer effectively receives output and concatenates it all to $result_string which then gets written to the browser window later in the code.
In other words, it makes a string look like a file. This allows us to use a single method to create results whether we want to write them to the browser window or to a downloadable file. This works perfectly on every machine tried so far except yours, which suggests a Perl incompatibility specific to your setup. What that is I'm not sure - Syed is our Perl expert and I'm hoping he can help you further, but if not, it might be worth trying it on a clean Perl compiled from source with its own separate CPAN repository. As this is really a Perl problem, not a BioMart problem, as proven by the code snipped Syed sent you to test earlier, you might also find a solution by posting a question to a specialist Perl forum or mailing list to see if anyone there has seen this before. That's not to say we won't keep on looking ourselves as well. :) cheers, Richard Etai Jacob wrote: > Hi Syed, > > I did the following: > > Changed Web.pm line ~1850 to: > $result_string = "xxx"; > open(my $result_buffer, '>', $result_string); > > and it is working. > Nevertheless, it writes "xxx" on the browser below the UI. > Could you please elaborate what is the purpose of these lines when > there is no assignment of a string to result_string? > > Should I leave it as "xxx" or something? > Thanks, > Etai > > On 2/14/07, Syed Haider <[EMAIL PROTECTED]> wrote: >> On Wed, 2007-02-14 at 16:18 +0200, Etai Jacob wrote: >> > Hi, >> > >> > It didn't help. >> > >> > Below is the log file. >> >> Hi Etai, >> Try executing the following code as an independent perl script, and let >> me know what you get. >> >> #===================================== >> use strict; >> use warnings; >> use English; >> my $result_string = ""; >> open(my $result_buffer, '>', \$result_string); >> print $result_buffer "\n ======= BIOMART ======== \n"; >> >> close($result_buffer); >> >> print $result_string; >> >> #===================================== >> >> Regards >> Syed >> >> >> >> > Thanks, >> > Etai >> > >> > BioMart.Dataset.TableSet:891:WARN> COUNT SQL: SELECT COUNT(*) FROM >> > DGV.variation__variation__main main >> > BioMart.QueryRunner:132:WARN> ATTRIBUTE: variation start main >> > BioMart.QueryRunner:132:WARN> ATTRIBUTE: variation stop main >> > BioMart.QueryRunner:132:WARN> ATTRIBUTE: variation >> variationtype main >> > BioMart.QueryRunner:150:WARN> NO FILTERS >> > BioMart.Dataset.TableSet:733:WARN> QUERY SQL: SELECT main.start, >> > main.stop, main.variationtype FROM DGV.variation__variation__main main >> > LIMIT 200 >> > Can't open a reference at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/Web.pm line 1852. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 248. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 225. >> > print() on closed filehandle $result_buffer at >> > /home/etai/.html/biomart/biomart-perl/lib/BioMart/QueryRunner.pm line >> > 269. >> > >> > >> > On 2/14/07, Syed Haider <[EMAIL PROTECTED]> wrote: >> > > On Wed, 2007-02-14 at 09:02 +0000, Richard Holland wrote: > I think in this case though that this is the cause of the user not > seeing any results? > > > Syed Haider wrote: >> I am confused. > >> (To SYED...: do you have any ideas? MartView/MartService on >>> this user's >> own server is throwing exceptions like this: Can't open a >>> reference at >> <blah blah>/lib/BioMart/Web.pm line 1850.) > > >>> Yeah, I know whats this all about. Its a warning not causing >>> any harm due >>> passing a string to a file which sometimes is not assigned a >>> value. Will >>> be fixed soon. I dont sense if this should cause any serious >>> troubles. >>> Cheers >>> Syed > >>> > > >>> > > Hi Etai >>> > > >>> > > Could you add the following line just above your line 1850 of Web.pm >>> > > >>> > > $result_string = ""; >>> > > >>> > > just for reference, line 1850: >>> > > >>> > > open(my $result_buffer, '>', \$result_string); >>> > > >>> > > and see if results panel turns up. >>> > > >>> > > Cheers >>> > > Syed >>> > > >>> > > > > > >> cheers, >> Richard > >> Etai Jacob wrote: >>>>> Yes we have, the last version:( >>>>> >>>>> On 2/13/07, Richard Holland <[EMAIL PROTECTED]> wrote: >>>>> Hmm. Well it must be a CPAN module then... not sure exactly >>> as I've not >>>>> seen this problem before. The line I quoted is definitely >>> the line that >>>>> is causing your results to be blank though. >>>>> >>>>> You could check to see if you have IO::Stringy installed >>> from CPAN. It >>>>> provides the functions that back up the open() method. Let >>> me know if it >>>>> is installed or not - if not, install it and retry the >>> request (you'll >>>>> have to restart the MartView server after installing it). >>>>> >>>>> cheers, >>>>> Richard >>>>> >>>>> Etai Jacob wrote: >>>>>> We have perl 5.85 installed. >>>>>> Thanks, >>>>>> Etai >>>>>> On 2/13/07, Richard Holland <[EMAIL PROTECTED]> wrote: >>>>>> This line of the log indicates the problem: >>>>>> Can't open a reference at >>>>>> /home/etai/.html/biomart/biomart-perl/lib/BioMart/Web.pm >>> line 1850. >>>>>> This is a Perl version incompatibility. It is trying to >>> open a >>>>>> filehandle over a string then write the results to that >>> string. This is >>>>>> not possible in versions of Perl older than 5.8. >>>>>> You need to upgrade your Perl to at least 5.8 for this to >>> work. >>>>>> cheers, >>>>>> Richard >>>>>> Etai Jacob wrote: >>>>>>> Attached. >>>>>>> On 2/13/07, Arek Kasprzyk <[EMAIL PROTECTED]> wrote: >>>>>>>> On 13 Feb 2007, at 11:49, Etai Jacob wrote: >>>>>>>>> No errors. >>>>> >>>>>>>> I meant ... could you send us the contents >>>>>>>> of this file while you are doing your query? >>>>>>>> we need to see what comes back from the >>>>>>>> database or webserver when you do it >>>>> >>>>>>>> cheers, >>>>>>>> a. >>>>> >>>>> >>>>> >>>>>>>>> On 2/13/07, Arek Kasprzyk <[EMAIL PROTECTED]> wrote: >>>>>>>>>> On 13 Feb 2007, at 11:23, Etai Jacob wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> My answers below. >>>>>>>>>> Hi Etai, >>>>>>>>>> maybe we need a little bit more debugging there. >>>>>>>>>> Could you change the >>>>>>>>>> >>>>>>>>>> log4perl.threshold = FATAL >>>>>>>>>> >>>>>>>>>> to >>>>>>>>>> >>>>>>>>>> log4perl.threshold = WARN >>>>>>>>>> >>>>>>>>>> in biomart-perl/conf/log4perl.conf >>>>>>>>>> >>>>>>>>>> restart the server and see what you get >>>>>>>>>> in the error_log? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> cheers, >>>>>>>>>> a. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>>> What do you mean by not seeing any results? Do you >>> mean that >>>>> you >>>>>>>>>> get >>>>>>>>>>>> an error message? >>>>>>>>>>> I don't get any error messages, not on the web browser >>>>>> (firefox or >>>>>>>>>>> explorer) and not in the error log file of the httpd. >>>>>>>>>>> >>>>>>>>>>> Or you see the results page but the table only has >>>>>>>>>>>> headings? >>>>>>>>>>> No heading. >>>>>>>>>>> >>>>>>>>>>> What happens exactly? >>>>>>>>>>> When pressing the "results" it waits a second and >>> then when >>>>>> "Done" >>>>>>>>>> the >>>>>>>>>>> page stays blank (except the default GUI of the >>> martview on >>>>>> the left >>>>>>>>>>> side of the page). >>>>>>>>>>> >>>>>>>>>>>> Could you try a query with no filters at all and >>> just one or >>>>> two >>>>>>>>>>>> attributes to see if you get results? >>>>>>>>>>> Yes I tried with many combinations. Nothing. >>>>>>>>>>> >>>>>>>>>>> I tried other biomart web interface, >>>>>>>>>>> http://www.dictybase.org/biomart/martview/, to see >>> whether I >>>>>> have a >>>>>>>>>>> problem with the browser or JVM but it works fine. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Etai >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> Etai Jacob wrote: >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> I am trying to execute few basic queries using the >>> biomart >>>>> web >>>>>>>>>>>>> interface with the default configurations (as >>> instructed in >>>>>> the >>>>>>>>>>>>> installation guide). >>>>>>>>>>>>> I don't get to see any results on the browser even >>> though >>>>>> at the >>>>>>>>>>>> count >>>>>>>>>>>>> stage I see that there are relevant entries (i.e. >>> 1/3967). >>>>>>>>>>>>> >>>>>>>>>>>>> What could be the problem? >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Etai >>>>>>>>>>>>> >>>>> >>>>> >>> > >> ====================================== >> Syed Haider. >> EMBL-European Bioinformatics Institute >> Wellcome Trust Genome Campus, Hinxton, >> Cambridge CB10 1SD, UK. >> ====================================== > >> > > -- >> > > ====================================== >> > > Syed Haider. >> > > EMBL-European Bioinformatics Institute >> > > Wellcome Trust Genome Campus, Hinxton, >> > > Cambridge CB10 1SD, UK. >> > > ====================================== >> > > >> > > >> -- >> ====================================== >> Syed Haider. >> EMBL-European Bioinformatics Institute >> Wellcome Trust Genome Campus, Hinxton, >> Cambridge CB10 1SD, UK. >> ====================================== >> >> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF0z9J4C5LeMEKA/QRAtH/AJ9a1yNHLdhOjHxV8dGZwOQ45UNSBgCfSfCW 3PN6tW7/kI1wPH3yh+hhVQA= =KkiM -----END PGP SIGNATURE-----
