New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 679353 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

Scrolling in research paper using the PDF viewer crashes all PDF viewers currently active

Reported by tvanderl...@gmail.com, Jan 9 2017

Issue description

Chrome Version       : 55.0.2883.87
OS Version: 
URLs (if applicable) : http://keg.cs.uvic.ca/pubs/kalliamvakou-MSR2014.pdf
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari 5:
  Firefox 4.x: OK
     IE 7/8/9:

What steps will reproduce the problem?
1. Open the pdf with the Chrome PDF viewer
2. Scroll to page 4

What is the expected result?
The PDF viewer does not crash

What happens instead of that?
The PDF viewer crashes alongside all currently active PDF viewers

Please provide any additional information below. Attach a screenshot if
possible.

UserAgentString: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

This PDF can be correctly opened in Firefox on the same machine. A user in the ChromeDev Slack reported that he is able to open the PDF using Chrome on OS X, be it that it is quite slow, and it does not crash.
 

Comment 1 by ajha@chromium.org, Jan 10 2017

Components: Internals>Plugins>PDF
Labels: Needs-Triage-M55
Cc: tsepez@chromium.org npm@chromium.org weili@chromium.org
Cc: brajkumar@chromium.org
Labels: Needs-Feedback
Tested this issue on Ubuntu 14.04 and Windows-10 using chrome latest stable M55-55.0.2883.87 by following steps mentioned in the original comment. By opening the provided pdf link the page loads so long and it displays message saying "This site can’t be reached keg.cs.uvic.ca took too long to respond" with a "Show saved copy" button.

By clicking on "show saved copy" observed a pdf file opens and able to scroll till bottom of the page-10 without any crashes.

tvanderlippe@ Could you please provide sample crash ID's from chrome://crashes for further investigation?

Thanks!
The site indeed appears to be unreachable. I have attached my local copy of the pdf which I downloaded yesterday. When I open this file with `google-chrome promises-perils.pdf` from the command-line and scroll to page 4, it crashes.

However, opening just now did not show a new crash event in chrome://crashes. There are some events reported from yesterday, but I am not sure if they are actually from the PDF crashes. Nonetheless these are the ID's:

3276212480000000
414b4ad080000000
85774ad080000000
228b4ad080000000
873b8ad080000000
a5e4212480000000
ec938ad080000000
5b5d8ad080000000
2fc83e2480000000
d82fde2480000000
promises-perils.pdf
3.2 MB Download

Comment 5 by npm@chromium.org, Jan 11 2017

Status: Untriaged (was: Unconfirmed)
It crashed for me when trying to load.
Labels: -Needs-Feedback -Needs-Triage-M55
Status: Available (was: Untriaged)
Ran out of memory:

	0x00007f66fdff3177	(libc-2.19.so -abort.c:125 )	abort
	0x00007f6706c28d91	(chrome -debugger_posix.cc:251 )	base::debug::BreakDebugger()
	0x00007f6706c3b792	(chrome -logging.cc:759 )	logging::LogMessage::~LogMessage()
	0x00007f6706c581ad	(chrome -memory_linux.cc:35 )	base::(anonymous namespace)::OnNoMemory()
	0x00007f6706ca7808	(chrome + 0x022f2808 )	__libc_calloc
	0x00007f6709b31179	(chrome -fx_memory.h:40 )	CPDF_StreamContentParser::AddPathPoint(float, float, FXPT_TYPE, bool)
	0x00007f6709b31d27	(chrome -cpdf_streamcontentparser.cpp )	CPDF_StreamContentParser::ParsePathObject()
	0x00007f6709b339e7	(chrome -cpdf_streamcontentparser.cpp:1539 )	CPDF_StreamContentParser::Parse(unsigned char const*, unsigned int, unsigned int)
	0x00007f6709b28f78	(chrome -cpdf_contentparser.cpp:178 )	CPDF_ContentParser::Continue(IFX_Pause*)
	0x00007f6709ae4b54	(chrome -cpdf_pageobjectholder.cpp:33 )	CPDF_PageObjectHolder::ContinueParse(IFX_Pause*)
	0x00007f6709b32995	(chrome -cpdf_streamcontentparser.cpp:782 )	CPDF_StreamContentParser::AddForm(CPDF_Stream*)
	0x00007f6709b2c4ad	(chrome -cpdf_streamcontentparser.cpp:767 )	CPDF_StreamContentParser::Handle_ExecuteXObject()

There's a second crash that happens at the same time, but it hasn't been decoded, yet.
Not sure how we triggered 2 crash reports for this. I'll look into that separately.
The memory usage here looks awful, but it peeks out at 2.5 GB. In pdfium_test and without sandboxing, the program can actually allocate that much memory and not crash. Under normal conditions, some sandbox mechanism limits the amount that can be allocated.
I probably read the units wrong, but nevertheless we are using a lot of memory. Maybe we can do better. When uncompressed, the PDF has a 38 MB stream.

The double crashes issue is bug 701645.
Owner: thestig@chromium.org
Status: Started (was: Available)
https://pdfium-review.googlesource.com/3110
Project Member

Comment 12 by bugdroid1@chromium.org, Mar 17 2017

The following revision refers to this bug:
  https://pdfium.googlesource.com/pdfium/+/78616574cedcb52cce8a25bd684bf9638a87de7a

commit 78616574cedcb52cce8a25bd684bf9638a87de7a
Author: Lei Zhang <thestig@chromium.org>
Date: Fri Mar 17 15:50:57 2017

Coalesce redundant path points.

There exists PDFs with many redundant path points, and keeping track of
them all uses a lot of memory.

BUG= chromium:679353 

Change-Id: I514610cbba181658b6396e30f5bf58a3661359f5
Reviewed-on: https://pdfium-review.googlesource.com/3110
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>

[modify] https://crrev.com/78616574cedcb52cce8a25bd684bf9638a87de7a/core/fpdfapi/page/cpdf_streamcontentparser.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79d540ff0b5f328a906303a5441a90e3503b3e6a

commit 79d540ff0b5f328a906303a5441a90e3503b3e6a
Author: pdfium-deps-roller <pdfium-deps-roller@chromium.org>
Date: Fri Mar 17 17:29:44 2017

Roll src/third_party/pdfium/ adee4859c..78616574c (1 commit)

https://pdfium.googlesource.com/pdfium.git/+log/adee4859cdb4..78616574cedc

$ git log adee4859c..78616574c --date=short --no-merges --format='%ad %ae %s'
2017-03-16 thestig Coalesce redundant path points.

Created with:
  roll-dep src/third_party/pdfium
BUG= 679353 

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls

TBR=dsinclair@chromium.org

Review-Url: https://codereview.chromium.org/2750173009
Cr-Commit-Position: refs/heads/master@{#457804}

[modify] https://crrev.com/79d540ff0b5f328a906303a5441a90e3503b3e6a/DEPS

Status: Fixed (was: Started)
Thank you for fixing this bug, looking forward to when this is shipped!
You are welcome. Chrome 59.

Sign in to add a comment