You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dl...@apache.org on 2025/01/02 21:22:09 UTC
(accumulo) branch 3.1 updated (040a32c640 -> d0fb7f5fd2)
This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a change to branch 3.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
from 040a32c640 Merge branch '2.1' into 3.1
add 44b97f36c4 Better handling for ignored interrupted exceptions (#5212)
new d0fb7f5fd2 Merge branch '2.1' into 3.1
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../core/fate/zookeeper/DistributedReadWriteLock.java | 3 ++-
.../main/java/org/apache/accumulo/server/util/Admin.java | 14 ++++++++++++--
.../apache/accumulo/tserver/log/TabletServerLogger.java | 12 +++++++++---
3 files changed, 23 insertions(+), 6 deletions(-)
(accumulo) 01/01: Merge branch '2.1' into 3.1
Posted by dl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit d0fb7f5fd215c9f60dabb123169ef2df71fc6506
Merge: 040a32c640 44b97f36c4
Author: Dave Marion <dl...@apache.org>
AuthorDate: Thu Jan 2 21:21:55 2025 +0000
Merge branch '2.1' into 3.1
.../core/fate/zookeeper/DistributedReadWriteLock.java | 3 ++-
.../main/java/org/apache/accumulo/server/util/Admin.java | 14 ++++++++++++--
.../apache/accumulo/tserver/log/TabletServerLogger.java | 12 +++++++++---
3 files changed, 23 insertions(+), 6 deletions(-)
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java
index 2aa1e87aa8,46970b4c21..4409602e5e
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/log/TabletServerLogger.java
@@@ -293,66 -325,37 +293,72 @@@ public class TabletServerLogger
log.error("Failed to close WAL after it failed to open", e);
}
- // it's possible the log was advertised in ZK even though we got an
- // exception. If there's a chance the WAL marker may have been created,
- // this will ensure it's closed. Either the close will be written and
- // the GC will clean it up, or the tserver is about to die due to sesson
- // expiration and the GC will also clean it up.
try {
- tserver.walogClosed(alog);
+ Path path = alog.getPath();
+ if (fs.exists(path)) {
+ fs.delete(path);
+ }
} catch (Exception e) {
- log.error("Failed to close WAL that failed to open: " + fileName, e);
+ log.warn("Failed to delete a WAL that failed to open", e);
}
+ }
- try {
- nextLog.offer(t, 12, TimeUnit.HOURS);
- } catch (InterruptedException ex) {
- // Throw an Error, not an Exception, so the AccumuloUncaughtExceptionHandler
- // will log this then halt the VM.
- throw new Error("Next log maker thread interrupted", ex);
- }
+ try {
+ nextLog.offer(t, 12, TimeUnit.HOURS);
+ } catch (InterruptedException ex) {
- // ignore
++ // Throw an Error, not an Exception, so the AccumuloUncaughtExceptionHandler
++ // will log this then halt the VM.
++ throw new Error("Next log maker thread interrupted", ex);
+ }
+
+ continue;
+ }
- continue;
+ log.debug("Created next WAL {}", alog.getLogEntry());
+
+ try {
+ tserver.addNewLogMarker(alog);
+ } catch (Exception t) {
+ log.error("Failed to add new WAL marker for " + alog.getLogEntry(), t);
+
+ try {
+ // Intentionally not deleting walog because it may have been advertised in ZK. See
+ // #949
+ alog.close();
+ } catch (Exception e) {
+ log.error("Failed to close WAL after it failed to open", e);
}
+ // it's possible the log was advertised in ZK even though we got an
+ // exception. If there's a chance the WAL marker may have been created,
+ // this will ensure it's closed. Either the close will be written and
+ // the GC will clean it up, or the tserver is about to die due to sesson
+ // expiration and the GC will also clean it up.
try {
- while (!nextLog.offer(alog, 12, TimeUnit.HOURS)) {
- log.info("Our WAL was not used for 12 hours: {}", fileName);
- }
- } catch (InterruptedException e) {
+ tserver.walogClosed(alog);
+ } catch (Exception e) {
+ log.error("Failed to close WAL that failed to open: " + alog.getLogEntry(), e);
+ }
+
+ try {
+ nextLog.offer(t, 12, TimeUnit.HOURS);
+ } catch (InterruptedException ex) {
- // ignore
+ // Throw an Error, not an Exception, so the AccumuloUncaughtExceptionHandler
+ // will log this then halt the VM.
- throw new Error("Next log maker thread interrupted", e);
++ throw new Error("Next log maker thread interrupted", ex);
}
+
+ continue;
+ }
+
+ try {
+ while (!nextLog.offer(alog, 12, TimeUnit.HOURS)) {
+ log.info("Our WAL was not used for 12 hours: {}", alog.getLogEntry());
+ }
+ } catch (InterruptedException e) {
- // ignore - server is shutting down
++ // Throw an Error, not an Exception, so the AccumuloUncaughtExceptionHandler
++ // will log this then halt the VM.
++ throw new Error("Next log maker thread interrupted", e);
}
}
});