in reply to Re^3: WWW::Mechanize::Firefox delayed returns / slow
in thread WWW::Mechanize::Firefox delayed returns / slow

t/50-mech-bufsize.t 4/8 hangs regardless of proxy being on/off. The pages my program access are also huge pages with lots of images. Maybe there's a connection.

In 50-mech-bufsize.t I noticed you have bufsize=>10_000_000. Are those underscores allowed/valid? For fun I took them out, and I also tried increasing the bufsize to 100M. Didn't seem to change any results either in t tests or my program.

As requested, here's the failing tests with proxy on. For all future testing I am leaving my proxy off to eliminate that as a possible problem.

t/50-mech-status.t ................ 2/5 # Failed test 'GETting http://www.doesnotexist.example/ gives a 500 +(no proxy) or 404 (proxy)' # at t/50-mech-status.t line 30. # '503' # doesn't match '(?-xism:^(404|500)$)' # <html><head> <meta http-equiv="Content-Type" content="text/html; ch +arset=utf-8"> <title>ERROR: The requested URL could not be retrieved< +/title> <style type="text/css"><!-- /* # Stylesheet for Squid Error pages ... t/50-mech-status.t ................ 5/5 # Looks like you failed 1 test + of 5. t/50-mech-status.t ................ Dubious, test returned 1 (wstat 25 +6, 0x100) Failed 1/5 subtests t/51-mech-links.t ................. 3/8 # Failed test 'The two links were found' # at t/51-mech-links.t line 71. # got: '4' # expected: '2' # http://somewhere.example/relative # Failed test 'The two links were found' # at t/51-mech-links.t line 71. # got: '4' # expected: '2' # http://somewhere.example/myiframe # Failed test 'The two links were found' # at t/51-mech-links.t line 71. # got: '4' # expected: '2' # http://somewhere.example/myiframe # Failed test 'The two links were found' # at t/51-mech-links.t line 71. # got: '4' # expected: '2' # mailto:root?subject=CacheErrorInfo%20-%20ERR_DNS_FAIL&body=CacheHost +%3A%20proxy.tecnopolis.ca%0D%0AErrPage%3A%20ERR_DNS_FAIL%0D%0AErr%3A% +20%5Bnone%5D%0D%0ADNS%20ErrMsg%3A%20Name%20Error%3A%20The%20domain%20 +name%20does%20not%20exist.%0D%0ATimeStamp%3A%20Fri,%2003%20Dec%202010 +%2006%3A17%3A31%20GMT%0D%0A%0D%0AClientIP%3A%20192.168.100.1%0D%0ASer +verIP%3A%20somewhere.example%0D%0A%0D%0AHTTP%20Request%3A%0D%0AGET%20 +%2Fmyiframe%20HTTP%2F1.1%0AHost%3A%20somewhere.example%0D%0AUser-Agen +t%3A%20Mozilla%2F5.0%20(X11%3B%20U%3B%20Linux%20i686%3B%20en-US%3B%20 +rv%3A1.9.1.15)%20Gecko%2F20101027%20Fedora%2F3.5.15-1.fc12%20Firefox% +2F3.5.15%0D%0AAccept%3A%20text%2Fhtml,application%2Fxhtml+xml,applica +tion%2Fxml%3Bq%3D0.9,*%2F*%3Bq%3D0.8%0D%0AAccept-Language%3A%20en-us, +en%3Bq%3D0.5%0D%0AAccept-Encoding%3A%20gzip,deflate%0D%0AAccept-Chars +et%3A%20ISO-8859-1,utf-8%3Bq%3D0.7,*%3Bq%3D0.7%0D%0AKeep-Alive%3A%203 +00%0D%0AProxy-Connection%3A%20keep-alive%0D%0A%0D%0A%0D%0A t/51-mech-links.t ................. 10/8 # Looks like you planned 8 te +sts but ran 10. # Looks like you failed 4 tests of 10 run. t/51-mech-links.t ................. Dubious, test returned 4 (wstat 10 +24, 0x400) Failed 4/8 subtests t/70-real-status.t ................ 3/8 # Failed test 'We got a good response for a nonexistent domain' # at t/70-real-status.t line 27. # '503' # doesn't match '(?-xism:^(404|500)$)' t/70-real-status.t ................ 6/8 # Failed test 'We got a good response for a nonexistent domain' # at t/70-real-status.t line 33. # '503' # doesn't match '(?-xism:^(404|500)$)' t/70-real-status.t ................ 8/8 # Looks like you failed 2 test +s of 8. t/70-real-status.t ................ Dubious, test returned 2 (wstat 51 +2, 0x200) Failed 2/8 subtests

And with the proxy on the urlbar.t tests now pass! However, I bet this is just a fluke. I've been seeing some non-deterministic behaviour from the module in my program, where a sequence of gets/saveurls works fine one hour, and barfs out the next. Sometimes in firefox I have to shift-reload a page, clear the cache, restart firefox, restart mozrepl, etc, to get mech to magically start working again. It probably is related to my kludge to exit early from those calls.

Replies are listed 'Best First'.
Re^5: WWW::Mechanize::Firefox delayed returns / slow
by Corion (Patriarch) on Dec 03, 2010 at 12:40 UTC

    At least the failing tests that fail with ... #     doesn't match '(?-xism:^(404|500)$)' are because my test case is too specific. The next release will have relaxed test cases that check for /5\d\d/ instead of 500.

    The other failure happens because the test loads iframes that are not found, and your proxy substitutes the failure and subsequent non-existent documents with some made-up documents. I guess I will have to make the tests more resilient here as well, by substituting the non-existing frames with (empty) documents that can be found.