|
|
Chromium Code Reviews
DescriptionFail when uploading blob is non-existant
BUG=692860
Review-Url: https://codereview.chromium.org/2829923004
Cr-Commit-Position: refs/heads/master@{#476858}
Committed: https://chromium.googlesource.com/chromium/src/+/a9e68ce94c149e7322faaa09fddb3aa2c1e0a2de
Patch Set 1 #Patch Set 2 : test for blobs being uploaded #Patch Set 3 : rebase #
Total comments: 6
Patch Set 4 : moved attach blobs before Continue call #Patch Set 5 : reworked to be exactly the same, logically #
Total comments: 3
Patch Set 6 : fixed #
Messages
Total messages: 50 (31 generated)
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...) win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...) win_clang on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/...)
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
dmurph@chromium.org changed reviewers: + horo@chromium.org
Horo, can you PTAL?
a drive by comment https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, Looks like ContinuePendingBeginRequest can be deferred till later, do we need to AttachRequestBodyBlobDataHandles before making this async function call?
lgtm https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, On 2017/05/31 22:41:19, michaeln wrote: > Looks like ContinuePendingBeginRequest can be deferred till later, do we need to > AttachRequestBodyBlobDataHandles before making this async function call? OnHttpHeaderReceived() in chrome_content_browser_client_extensions_part.cc is the only interceptor. And it is calling the callback synchronously. So even if we call AttachRequestBodyBlobDataHandles() before it, the issue will not be fixed.
Could we add a similar code in navigation_url_loader_network_service.cc (a new alternative code path for BeginNavigationRequest when some flags are on)?
Since I couldn't find an obvious way to fail the request, I created a bug for the new path and assigned to Kinuko: https://bugs.chromium.org/p/chromium/issues/detail?id=728728 Thanks for the review https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, On 2017/06/01 02:04:48, horo wrote: > On 2017/05/31 22:41:19, michaeln wrote: > > Looks like ContinuePendingBeginRequest can be deferred till later, do we need > to > > AttachRequestBodyBlobDataHandles before making this async function call? > > OnHttpHeaderReceived() in chrome_content_browser_client_extensions_part.cc is > the only interceptor. > And it is calling the callback synchronously. > > So even if we call AttachRequestBodyBlobDataHandles() before it, the issue will > not be fixed. Acknowledged.
Since I couldn't find an obvious way to fail the request, I created a bug for the new path and assigned to Kinuko: https://bugs.chromium.org/p/chromium/issues/detail?id=728728 Thanks for the review
The CQ bit was checked by dmurph@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
dmurph@chromium.org changed reviewers: + kinuko@chromium.org
Whoops, Kinuko, can you PTAL for content/browser/loader/resource_dispatcher_host_impl.cc approval?
https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, On 2017/06/01 02:04:48, horo wrote: > On 2017/05/31 22:41:19, michaeln wrote: > > Looks like ContinuePendingBeginRequest can be deferred till later, do we need > to > > AttachRequestBodyBlobDataHandles before making this async function call? > > OnHttpHeaderReceived() in chrome_content_browser_client_extensions_part.cc is > the only interceptor. > And it is calling the callback synchronously. > > So even if we call AttachRequestBodyBlobDataHandles() before it, the issue will > not be fixed Oh well, I was hoping that might be the source of (some of) the missing blobs, guess not. Since the interceptor interface provides for an async completion code path, it'd probably be good to rearrange the order so that a new interceptor, or a change to the existing interceptor, that does use the async completion doesn't tickle the latent bug.
lgtm https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, On 2017/06/01 20:46:59, michaeln wrote: > On 2017/06/01 02:04:48, horo wrote: > > On 2017/05/31 22:41:19, michaeln wrote: > > > Looks like ContinuePendingBeginRequest can be deferred till later, do we > need > > to > > > AttachRequestBodyBlobDataHandles before making this async function call? > > > > OnHttpHeaderReceived() in chrome_content_browser_client_extensions_part.cc is > > the only interceptor. > > And it is calling the callback synchronously. > > > > So even if we call AttachRequestBodyBlobDataHandles() before it, the issue > will > > not be fixed > > Oh well, I was hoping that might be the source of (some of) the missing blobs, > guess not. > > Since the interceptor interface provides for an async completion code path, it'd > probably be good to rearrange the order so that a new interceptor, or a change > to the existing interceptor, that does use the async completion doesn't tickle > the latent bug. Moving AttachRequestBodyBlobDataHandle earlier also makes sense, dmurph: mind changing the order a bit? Doing it in a follow-up is also fine.
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Done. Hopefully this doesn't break anything - it shouldn't it's just moving this higher up the chain. https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/40001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1180: &ResourceDispatcherHostImpl::ContinuePendingBeginRequest, On 2017/06/02 03:15:40, kinuko wrote: > On 2017/06/01 20:46:59, michaeln wrote: > > On 2017/06/01 02:04:48, horo wrote: > > > On 2017/05/31 22:41:19, michaeln wrote: > > > > Looks like ContinuePendingBeginRequest can be deferred till later, do we > > need > > > to > > > > AttachRequestBodyBlobDataHandles before making this async function call? > > > > > > OnHttpHeaderReceived() in chrome_content_browser_client_extensions_part.cc > is > > > the only interceptor. > > > And it is calling the callback synchronously. > > > > > > So even if we call AttachRequestBodyBlobDataHandles() before it, the issue > > will > > > not be fixed > > > > Oh well, I was hoping that might be the source of (some of) the missing blobs, > > guess not. > > > > Since the interceptor interface provides for an async completion code path, > it'd > > probably be good to rearrange the order so that a new interceptor, or a change > > to the existing interceptor, that does use the async completion doesn't tickle > > the latent bug. > > Moving AttachRequestBodyBlobDataHandle earlier also makes sense, dmurph: mind > changing the order a bit? Doing it in a follow-up is also fine. Done.
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by dmurph@chromium.org
The CQ bit was checked by dmurph@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kinuko@chromium.org, horo@chromium.org Link to the patchset: https://codereview.chromium.org/2829923004/#ps80001 (title: "reworked to be exactly the same, logically")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_headless_rel on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
On 2017/06/02 20:14:50, commit-bot: I haz the power wrote: > Try jobs failed on following builders: > linux_chromium_headless_rel on master.tryserver.chromium.linux (JOB_FAILED, > http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) Moving that seemed to make everything crash - maybe somehow the blob storage context is only available after a certain point? I'd rather not make functional changes in this code, as I'm unfamiliar with this pipeline. Reverting the order change.
michaeln@chromium.org changed reviewers: + michaeln@chromium.org
https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (left): https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1304: GetBlobStorageContext(requester_info->blob_storage_context()); you could retain the local variable and avoid the extra param to the ContinuePendingBeginRequest method https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (right): https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1214: headers, std::move(mojo_request), std::move(url_loader_client), nullptr, it's crashing because of this nullptr
found the bug, doing what michael suggested. https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... File content/browser/loader/resource_dispatcher_host_impl.cc (left): https://codereview.chromium.org/2829923004/diff/80001/content/browser/loader/... content/browser/loader/resource_dispatcher_host_impl.cc:1304: GetBlobStorageContext(requester_info->blob_storage_context()); On 2017/06/02 21:36:37, michaeln wrote: > you could retain the local variable and avoid the extra param to the > ContinuePendingBeginRequest method Done.
The CQ bit was checked by dmurph@chromium.org to run a CQ dry run
The CQ bit was unchecked by dmurph@chromium.org
The CQ bit was checked by dmurph@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kinuko@chromium.org, horo@chromium.org Link to the patchset: https://codereview.chromium.org/2829923004/#ps100001 (title: "fixed")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 100001, "attempt_start_ts": 1496444478604590,
"parent_rev": "1862926fcdeb5bd96594c55e674947b9e04e111e", "commit_rev":
"a9e68ce94c149e7322faaa09fddb3aa2c1e0a2de"}
Message was sent while issue was closed.
Description was changed from ========== Fail when uploading blob is non-existant BUG=692860 ========== to ========== Fail when uploading blob is non-existant BUG=692860 Review-Url: https://codereview.chromium.org/2829923004 Cr-Commit-Position: refs/heads/master@{#476858} Committed: https://chromium.googlesource.com/chromium/src/+/a9e68ce94c149e7322faaa09fddb... ==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as https://chromium.googlesource.com/chromium/src/+/a9e68ce94c149e7322faaa09fddb... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
