-
Notifications
You must be signed in to change notification settings - Fork 10.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow StreamsSequenceStream.readBlock
to skip sub-streams with errors (issue 13794)
#13796
Conversation
…rs (issue 13794) This patch makes use of the existing `ignoreErrors` option, thus allowing a page to continue parsing/rendering even if (some of) its sub-streams are corrupt. Obviously this may cause *part* of a page to be broken/missing, however it should be better than (potentially) rendering nothing. Also, to the best of my knowledge, this is the first bug of its kind that we've encountered. To avoid having to pass in a bunch of, for a `BaseStream`-instance, mostly unrelated parameters when initializing a `StreamsSequenceStream`-instance, I settled on utilizing a callback function instead to allow conditional Error-suppression. Note that the `StreamsSequenceStream`-class is a *special* stream-implementation that we only use when the `/Contents`-entry, in the `/Page`-dictionary, consists of an Array with streams.
/botio test |
From: Bot.io (Linux m4)ReceivedCommand cmd_test from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.67.70.0:8877/b887c37d363a922/output.txt |
From: Bot.io (Windows)ReceivedCommand cmd_test from @Snuffleupagus received. Current queue size: 0 Live output at: http://3.101.106.178:8877/4ac65dc2c7e7c2d/output.txt |
From: Bot.io (Linux m4)FailedFull output at http://54.67.70.0:8877/b887c37d363a922/output.txt Total script time: 26.92 mins
Image differences available at: http://54.67.70.0:8877/b887c37d363a922/reftest-analyzer.html#web=eq.log |
From: Bot.io (Windows)FailedFull output at http://3.101.106.178:8877/4ac65dc2c7e7c2d/output.txt Total script time: 38.50 mins
Image differences available at: http://3.101.106.178:8877/4ac65dc2c7e7c2d/reftest-analyzer.html#web=eq.log |
/botio-linux test |
From: Bot.io (Linux m4)ReceivedCommand cmd_test from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.67.70.0:8877/1923ac43caaa66e/output.txt |
From: Bot.io (Linux m4)FailedFull output at http://54.67.70.0:8877/1923ac43caaa66e/output.txt Total script time: 32.98 mins
Image differences available at: http://54.67.70.0:8877/1923ac43caaa66e/reftest-analyzer.html#web=eq.log |
/botio-linux preview |
From: Bot.io (Linux m4)ReceivedCommand cmd_preview from @timvandermeij received. Current queue size: 0 Live output at: http://54.67.70.0:8877/49e1e7753bb450f/output.txt |
From: Bot.io (Linux m4)SuccessFull output at http://54.67.70.0:8877/49e1e7753bb450f/output.txt Total script time: 5.14 mins Published |
Thanks! /botio makeref |
From: Bot.io (Linux m4)ReceivedCommand cmd_makeref from @timvandermeij received. Current queue size: 0 Live output at: http://54.67.70.0:8877/d6772b83d8dd1f5/output.txt |
From: Bot.io (Windows)ReceivedCommand cmd_makeref from @timvandermeij received. Current queue size: 2 Live output at: http://3.101.106.178:8877/003ad19e5c61402/output.txt |
From: Bot.io (Linux m4)FailedFull output at http://54.67.70.0:8877/d6772b83d8dd1f5/output.txt Total script time: 23.55 mins
|
/botio-linux makeref |
From: Bot.io (Linux m4)ReceivedCommand cmd_makeref from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.67.70.0:8877/689f0feede2759f/output.txt |
From: Bot.io (Windows)SuccessFull output at http://3.101.106.178:8877/003ad19e5c61402/output.txt Total script time: 35.56 mins
|
From: Bot.io (Linux m4)SuccessFull output at http://54.67.70.0:8877/689f0feede2759f/output.txt Total script time: 29.70 mins
|
This patch makes use of the existing
ignoreErrors
option, thus allowing a page to continue parsing/rendering even if (some of) its sub-streams are corrupt. Obviously this may cause part of a page to be broken/missing, however it should be better than (potentially) rendering nothing.Also, to the best of my knowledge, this is the first bug of its kind that we've encountered.
To avoid having to pass in a bunch of, for a
BaseStream
-instance, mostly unrelated parameters when initializing aStreamsSequenceStream
-instance, I settled on utilizing a callback function instead to allow conditional Error-suppression.Note that the
StreamsSequenceStream
-class is a special stream-implementation that we only use when the/Contents
-entry, in the/Page
-dictionary, consists of an Array with streams.