Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(5)

Issue 440002: Properly redeliver (or don't) signals to the previous handlers. (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 8 months ago by cjhopman
Modified:
11 years, 6 months ago
Reviewers:
Mark Mentovai, digit
Base URL:
http://git.chromium.org/external/google-breakpad/src.git@master
Visibility:
Public.

Description

Properly redeliver (or don't) signals to the previous handlers.

If none of the installed ExceptionHandlers handle a signal (their
FilterCallbacks or HandlerCallbacks all return false), then the signal
should be delivered to the signal handlers that were previously
installed.

This requires that old_handlers_ become a static vector so that we can
restore the handlers in the static HandleSignal.

Currently it is also restoring signals in ~ExceptionHandler (if there
are no others). This should not be required since our documentation
states that a process can only have one ExceptionHandler for which
install_handlers is true (and so we get the correct behavior if we
simply leave our handlers installed forever), but even the tests
themselves violate that.

BUG=

Patch Set 1 #

Total comments: 18

Patch Set 2 : #

Total comments: 6

Patch Set 3 : #

Total comments: 6

Patch Set 4 : #

Unified diffs Side-by-side diffs Delta from patch set Stats Patch
M client/linux/handler/exception_handler.cc View 1 2 3 6 chunks +125 lines, -63 lines 0 comments Download
M client/linux/handler/exception_handler.h View 1 2 3 3 chunks +5 lines, -9 lines 0 comments Download
M client/linux/handler/exception_handler_unittest.cc View 1 2 1 chunk +174 lines, -0 lines 0 comments Download

Messages

Total messages: 14
cjhopman
11 years, 8 months ago #1
Mark Mentovai
Is anyone actually using stacked handlers? They tend to be sort of broken. If you ...
11 years, 8 months ago #2
cjhopman
On 2012/08/23 18:44:18, Mark Mentovai wrote: > Is anyone actually using stacked handlers? They tend ...
11 years, 8 months ago #3
Mark Mentovai
That’s reasonable. David, you’re up first.
11 years, 8 months ago #4
digit
http://breakpad.appspot.com/440002/diff/1/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/1/client/linux/handler/exception_handler.cc#newcode158 client/linux/handler/exception_handler.cc:158: if (handler_stack_->empty()) { Since the code below is modifying ...
11 years, 8 months ago #5
cjhopman
http://breakpad.appspot.com/440002/diff/1/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/1/client/linux/handler/exception_handler.cc#newcode158 client/linux/handler/exception_handler.cc:158: if (handler_stack_->empty()) { On 2012/08/24 08:34:56, digit wrote: > ...
11 years, 8 months ago #6
digit
Patch set 2 seems very nice. Thank you. lgtm, but not an owner so it's ...
11 years, 8 months ago #7
Mark Mentovai
http://breakpad.appspot.com/440002/diff/7002/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/7002/client/linux/handler/exception_handler.cc#newcode115 client/linux/handler/exception_handler.cc:115: const int kNumHandledSignals = 5; Don’t do this, it’s ...
11 years, 8 months ago #8
cjhopman
http://breakpad.appspot.com/440002/diff/7002/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/7002/client/linux/handler/exception_handler.cc#newcode115 client/linux/handler/exception_handler.cc:115: const int kNumHandledSignals = 5; On 2012/08/27 21:29:11, Mark ...
11 years, 8 months ago #9
Mark Mentovai
http://breakpad.appspot.com/440002/diff/7006/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/7006/client/linux/handler/exception_handler.cc#newcode128 client/linux/handler/exception_handler.cc:128: static const unsigned kSigStackSize = 8192; I recommend std::max(8192, ...
11 years, 8 months ago #10
cjhopman
http://breakpad.appspot.com/440002/diff/7006/client/linux/handler/exception_handler.cc File client/linux/handler/exception_handler.cc (right): http://breakpad.appspot.com/440002/diff/7006/client/linux/handler/exception_handler.cc#newcode128 client/linux/handler/exception_handler.cc:128: static const unsigned kSigStackSize = 8192; On 2012/08/28 13:06:53, ...
11 years, 8 months ago #11
Mark Mentovai
cjhopman wrote: > 1. The current altstack at this point could be different than the ...
11 years, 8 months ago #12
cjhopman
On 2012/08/28 18:11:09, Mark Mentovai wrote: > cjhopman wrote: > > 1. The current altstack ...
11 years, 8 months ago #13
Mark Mentovai
11 years, 8 months ago #14
LGTM
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld 1004:630ec63f810e-tainted