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

Issue 699607 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

AlertNotificationService.xpc does not use Crashpad

Project Member Reported by rsesek@chromium.org, Mar 8 2017

Issue description

Chrome Version: 59.0.3035.0
OS: macOS 10.12.3

What steps will reproduce the problem?
(1) --enable-features=NativeNotifications
(2) Generate a persistent notification via https://tests.peter.sh/notification-generator/#actions=1;;requireInteraction=true
(3) `ps ax | grep AlertNotification`
(4) `kill -ILL <pid>` of the AlertNotificationService
(5) Go to chrome://crashes, do not see a crash report

What is the expected result?
A crash report should be generated by Crashpad.

What happens instead?
No crash report is generated by Crashpad.

This bug has a couple of steps:

1) Determine why launchd does not use the exception port of the connection creator for the XPCService, when the service is an Application-domain one
2) Investigate whether launchd is capable of making #1 happen
3) Get the AlertNotificationService to use Crashpad
4) Make sure that AlertNotificationService is dump_syms'd and symupload'd.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7

commit b5284cdcba93d2ea4a47ac298bdef16b869cf9d7
Author: Mark Mentovai <mark@chromium.org>
Date: Thu Mar 09 00:44:58 2017

mac: Add CrashpadClient::GetHandlerMachPort()

Bug:  chromium:699607 
Change-Id: Ib1886550fe81787cb1ffc8d8853f6969cc96831e
Reviewed-on: https://chromium-review.googlesource.com/451127
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>

[modify] https://crrev.com/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7/client/crashpad_client.h
[modify] https://crrev.com/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7/client/crashpad_client_mac.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7

commit b5284cdcba93d2ea4a47ac298bdef16b869cf9d7
Author: Mark Mentovai <mark@chromium.org>
Date: Thu Mar 09 00:44:58 2017

mac: Add CrashpadClient::GetHandlerMachPort()

Bug:  chromium:699607 
Change-Id: Ib1886550fe81787cb1ffc8d8853f6969cc96831e
Reviewed-on: https://chromium-review.googlesource.com/451127
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>

[modify] https://crrev.com/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7/client/crashpad_client.h
[modify] https://crrev.com/b5284cdcba93d2ea4a47ac298bdef16b869cf9d7/client/crashpad_client_mac.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 14 2017

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

commit 468ad4ae0a9db367078f425f97bfc72d6be77abc
Author: rsesek <rsesek@chromium.org>
Date: Tue Mar 14 16:07:01 2017

Dump and archive symbols for AlertNotificationService.xpc.

BUG= 699607 

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

[modify] https://crrev.com/468ad4ae0a9db367078f425f97bfc72d6be77abc/chrome/BUILD.gn

Comment 4 Deleted

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 14 2017

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

commit 68bab586fc9f5183720981dab00b0c5361eb32a2
Author: rsesek <rsesek@chromium.org>
Date: Tue Mar 14 22:13:27 2017

Update Crashpad to 18d70acf81df49cc10b00bcc67c1ec64e16bd9d0

777e36014f76 linux: Add HTTPTransportLibcurl for Linux (but not Android)
6a5695967fda Introduce the crashpad_http_upload tool
8e82f6fde054 mac: Update test and comments with feedback from Apple bug
b5284cdcba93 mac: Add CrashpadClient::GetHandlerMachPort()
a47a512ea60f Use “Bug: crashpad:###” git footer format in change
             descriptions
f59038309651 doc: Document the try server and commit queue
18d70acf81df doc: Link to crashpad_http_upload(1) from the man page
             index

BUG= 699607 

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

[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/README.chromium
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/DEPS
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/client/crashpad_client.h
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/client/crashpad_client_mac.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/doc/developing.md
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/doc/man.md
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_annotations_reader_test.cc
[add] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/crashpad_http_upload.cc
[add] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/crashpad_http_upload.md
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/generate_dump.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/tool_support.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/tool_support.h
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/tools/tools.gyp
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/util/file/file_reader.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/util/file/file_writer.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/util/file/file_writer.h
[add] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
[modify] https://crrev.com/68bab586fc9f5183720981dab00b0c5361eb32a2/third_party/crashpad/crashpad/util/util.gyp

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 15 2017

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

commit 25df70294a0c70bb8b39a30ea69ef0be072c4097
Author: rsesek <rsesek@chromium.org>
Date: Wed Mar 15 22:42:49 2017

[Mac] Use Crashpad in the AlertNotificationService.xpc.

Launchd does not transfer the service owner's exception port to the service,
nor can an exception handler be specified as an appliction domain service name
in a service's Info.plist (that can only target a higher-level domain service).

Since Crashpad is not registered as a system or user domain service, its handler
port is instead sent to the XPC service, where the service can configure
Crashpad itself.

BUG= 699607 

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

[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/notifications/notification_platform_bridge_mac.mm
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/BUILD.gn
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/alert_notification_service.mm
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/notification_delivery.h
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/notification_service_delegate.mm
[add] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/xpc_mach_port.h
[add] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/chrome/browser/ui/cocoa/notifications/xpc_mach_port.mm
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/components/crash/content/app/crashpad.cc
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/components/crash/content/app/crashpad.h
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/components/crash/content/app/crashpad_mac.mm
[modify] https://crrev.com/25df70294a0c70bb8b39a30ea69ef0be072c4097/components/crash/content/app/crashpad_win.cc

Comment 7 by rsesek@chromium.org, Mar 16 2017

https://crash.corp.google.com/browse?q=reportid=%27a7311b1d80000000%27#5 is from sending SIGILL to the service. Obviously an uninteresting report since nothing is going on, but it shows that things work.

We probably want to settle on a ptype string for this and add it to the annotations.

Comment 8 by mark@chromium.org, Mar 16 2017

Nothing interesting, EXCEPT: what’s going on that makes dyld look like a third-party module?

Comment 9 by rsesek@chromium.org, Mar 16 2017

upload_system_symbols doesn't dump MH_DYLINKER.
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 30 2017

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

commit 12b32f2bc2508a15b8e894c9aedc7286e5c0365e
Author: rsesek <rsesek@chromium.org>
Date: Thu Mar 30 18:29:24 2017

[Mac] Set the ptype and pid Crashpad annotations for AlertNotificationService.xpc.

BUG= 699607 
R=mark@chromium.org

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

[modify] https://crrev.com/12b32f2bc2508a15b8e894c9aedc7286e5c0365e/chrome/browser/ui/cocoa/notifications/alert_notification_service.mm

Sign in to add a comment