This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d6b550  Handle unexpected throwable in Bookie V2 request processors
1d6b550 is described below

commit 1d6b5506599accca30129348d52048b25766d1fa
Author: Matteo Merli <[email protected]>
AuthorDate: Tue Dec 5 17:06:07 2017 -0800

    Handle unexpected throwable in Bookie V2 request processors
    
    Merging from https://github.com/yahoo/bookkeeper/commit/c54eafbe
    
    When getting any exception, the request processor for V2 protocol must make 
sure to get some response back to client. In the specific case, it was some NPE 
that was thrown and not handled properly.
    
    Author: Matteo Merli <[email protected]>
    
    Reviewers: Ivan Kelly <[email protected]>, Enrico Olivelli 
<[email protected]>, Sijie Guo <[email protected]>
    
    This closes #813 from merlimat/handle-throwable
---
 .../src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java | 4 ++++
 .../main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java    | 4 ++++
 2 files changed, 8 insertions(+)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java
index 007d87b..7849ca8 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java
@@ -129,6 +129,10 @@ class ReadEntryProcessor extends PacketProcessorBase {
         } catch (BookieException e) {
             LOG.error("Unauthorized access to ledger " + read.getLedgerId(), 
e);
             errorCode = BookieProtocol.EUA;
+        } catch (Throwable t) {
+            LOG.error("Unexpected exception reading at {}:{} : {}", 
read.getLedgerId(), read.getEntryId(),
+                    t.getMessage(), t);
+            errorCode = BookieProtocol.EBADREQ;
         }
 
         if (LOG.isTraceEnabled()) {
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
index 2a3d78c..87df2d2 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/WriteEntryProcessor.java
@@ -87,6 +87,10 @@ class WriteEntryProcessor extends PacketProcessorBase 
implements WriteCallback {
         } catch (BookieException e) {
             LOG.error("Unauthorized access to ledger " + add.getLedgerId(), e);
             rc = BookieProtocol.EUA;
+        } catch (Throwable t) {
+            LOG.error("Unexpected exception while writing {}@{} : {}", 
add.ledgerId, add.entryId, t.getMessage(), t);
+            // some bad request which cause unexpected exception
+            rc = BookieProtocol.EBADREQ;
         } finally {
             addData.release();
         }

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to