This is an automated email from the ASF dual-hosted git repository.
robbie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 642a2c79fd ARTEMIS-4913 provide more details on error callbacks
642a2c79fd is described below
commit 642a2c79fd8976dd1443459ebbff8a10a9b7fa4b
Author: Justin Bertram <[email protected]>
AuthorDate: Tue Jul 9 11:02:41 2024 -0500
ARTEMIS-4913 provide more details on error callbacks
---
.../activemq/artemis/jdbc/store/file/JDBCSequentialFile.java | 6 +++---
.../activemq/artemis/core/io/AbstractSequentialFile.java | 2 +-
.../apache/activemq/artemis/core/io/aio/AIOSequentialFile.java | 4 ++--
.../activemq/artemis/core/io/aio/AIOSequentialFileFactory.java | 2 +-
.../activemq/artemis/core/io/mapped/MappedSequentialFile.java | 8 ++++----
.../apache/activemq/artemis/core/io/nio/NIOSequentialFile.java | 8 ++++----
.../activemq/artemis/core/paging/impl/PageSyncTimer.java | 2 +-
.../core/persistence/impl/journal/OperationContextImpl.java | 2 +-
.../activemq/artemis/core/server/ActiveMQServerLogger.java | 6 +++---
.../artemis/core/transaction/impl/TransactionImpl.java | 10 +++++-----
10 files changed, 25 insertions(+), 25 deletions(-)
diff --git
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
index 5289313ba3..771e5c47a1 100644
---
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
+++
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCSequentialFile.java
@@ -197,7 +197,7 @@ public class JDBCSequentialFile implements SequentialFile {
}
} catch (Exception e) {
if (callback != null)
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during JDBC write:" + e.getMessage());
fileFactory.onIOError(e, "Error writing to JDBC file.", this);
}
return 0;
@@ -330,7 +330,7 @@ public class JDBCSequentialFile implements SequentialFile {
waitIOCallback.waitCompletion();
}
} catch (Exception e) {
- waitIOCallback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
"Error writing to JDBC file.");
+ waitIOCallback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during JDBC write direct:" + e.getMessage());
fileFactory.onIOError(e, "Failed to write to file.", this);
}
} else {
@@ -361,7 +361,7 @@ public class JDBCSequentialFile implements SequentialFile {
return read;
} catch (SQLException e) {
if (callback != null)
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during JDBC read:" + e.getMessage());
fileFactory.onIOError(e, "Error reading from JDBC file.", this);
}
return 0;
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFile.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFile.java
index aa79f5b8d6..df8bfe9e49 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFile.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFile.java
@@ -305,7 +305,7 @@ public abstract class AbstractSequentialFile implements
SequentialFile {
} catch (Throwable e) {
logger.warn(e.getMessage(), e);
if (callbacks != null) {
- callbacks.forEach(c ->
c.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()));
+ callbacks.forEach(c ->
c.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getClass() + " during
checkSync on " + file.getPath() + ": " + e.getMessage()));
}
}
}
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFile.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFile.java
index 422ce0774d..8f1a9d35d9 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFile.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFile.java
@@ -223,7 +223,7 @@ public class AIOSequentialFile extends
AbstractSequentialFile {
checkOpened();
} catch (Exception e) {
logger.warn(e.getMessage(), e);
- completion.onError(-1, e.getMessage());
+ completion.onError(-1, e.getClass() + " during blocking write direct:
" + e.getMessage());
return;
}
@@ -247,7 +247,7 @@ public class AIOSequentialFile extends
AbstractSequentialFile {
checkOpened();
} catch (Exception e) {
logger.warn(e.getMessage(), e);
- callback.onError(-1, e.getMessage());
+ callback.onError(-1, e.getClass() + " during write direct: " +
e.getMessage());
return;
}
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFileFactory.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFileFactory.java
index 91b093eecf..8b1662f02b 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFileFactory.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/aio/AIOSequentialFileFactory.java
@@ -362,7 +362,7 @@ public final class AIOSequentialFileFactory extends
AbstractSequentialFileFactor
try {
libaioFile.write(position, bytes, buffer, this);
} catch (IOException e) {
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during write to " + sequentialFile.getFileName() + ": " +
e.getMessage());
onIOError(e, "Failed to write to file", sequentialFile);
}
}
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/mapped/MappedSequentialFile.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/mapped/MappedSequentialFile.java
index 116d5804f2..56468d9de3 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/mapped/MappedSequentialFile.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/mapped/MappedSequentialFile.java
@@ -170,7 +170,7 @@ final class MappedSequentialFile implements SequentialFile {
if (this.criticalErrorListener != null) {
this.criticalErrorListener.onIOException(new
ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(),
this.getFileName());
}
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during write: " + e.getMessage());
throw e;
}
}
@@ -206,7 +206,7 @@ final class MappedSequentialFile implements SequentialFile {
if (this.criticalErrorListener != null) {
this.criticalErrorListener.onIOException(new
ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(),
this.getFileName());
}
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during write: " + e.getMessage());
throw e;
}
}
@@ -243,7 +243,7 @@ final class MappedSequentialFile implements SequentialFile {
if (this.criticalErrorListener != null) {
this.criticalErrorListener.onIOException(new
ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(),
this.getFileName());
}
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during write direct: " + e.getMessage());
throw new RuntimeException(e);
} finally {
this.factory.releaseBuffer(bytes);
@@ -317,7 +317,7 @@ final class MappedSequentialFile implements SequentialFile {
if (this.criticalErrorListener != null) {
this.criticalErrorListener.onIOException(new
ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(),
this.getFileName());
}
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during read: " + e.getMessage());
throw e;
}
}
diff --git
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/nio/NIOSequentialFile.java
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/nio/NIOSequentialFile.java
index 3dd7be7b0d..b823ca5d18 100644
---
a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/nio/NIOSequentialFile.java
+++
b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/nio/NIOSequentialFile.java
@@ -306,7 +306,7 @@ public class NIOSequentialFile extends
AbstractSequentialFile {
throw e;
} catch (IOException e) {
if (callback != null) {
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getLocalizedMessage());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getClass() + " during read: " + e.getLocalizedMessage());
}
factory.onIOError(new ActiveMQIOErrorException(e.getMessage(), e),
e.getMessage(), this);
@@ -373,7 +373,7 @@ public class NIOSequentialFile extends
AbstractSequentialFile {
try {
internalWrite(bytes, sync, callback, true);
} catch (Exception e) {
- callback.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(),
e.getMessage());
+ callback.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(),
e.getClass() + " during write direct: " + e.getMessage());
}
}
@@ -393,7 +393,7 @@ public class NIOSequentialFile extends
AbstractSequentialFile {
boolean releaseBuffer) throws IOException,
ActiveMQIOErrorException, InterruptedException {
if (!isOpen()) {
if (callback != null) {
- callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), "File
not opened - " + getFileName());
+ callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), "File
not opened. Cannot write to " + getFileName());
} else {
throw ActiveMQJournalBundle.BUNDLE.fileNotOpened();
}
@@ -480,7 +480,7 @@ public class NIOSequentialFile extends
AbstractSequentialFile {
internalWrite(buffer, requestedSync, callback, false);
} catch (Exception e) {
if (callbacks != null) {
- callbacks.forEach(c ->
c.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(), e.getMessage()));
+ callbacks.forEach(c ->
c.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(), e.getClass() + "
while flushing buffer: " + e.getMessage()));
}
}
} else {
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PageSyncTimer.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PageSyncTimer.java
index 821a9f8131..498167fcd6 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PageSyncTimer.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/impl/PageSyncTimer.java
@@ -86,7 +86,7 @@ final class PageSyncTimer extends ActiveMQScheduledComponent {
}
} catch (Exception e) {
for (OperationContext ctx : pendingSyncsArray) {
- ctx.onError(ActiveMQExceptionType.IO_ERROR.getCode(),
e.getMessage());
+ ctx.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getClass()
+ " during ioSync for paging on " + store.getStoreName() + ": " +
e.getMessage());
}
} finally {
// In case of failure, The context should propagate an exception to
the client
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java
index 76ba063f4b..af61e206cc 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/OperationContextImpl.java
@@ -323,7 +323,7 @@ public class OperationContextImpl implements
OperationContext {
} catch (Throwable e) {
ActiveMQServerLogger.LOGGER.errorExecutingAIOCallback(e);
EXECUTORS_PENDING_UPDATER.decrementAndGet(this);
- task.onError(ActiveMQExceptionType.INTERNAL_ERROR.getCode(), "It
wasn't possible to complete IO operation - " + e.getMessage());
+ task.onError(ActiveMQExceptionType.INTERNAL_ERROR.getCode(), "It
wasn't possible to complete IO operation due to " + e.getClass() + ": " +
e.getMessage());
}
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
index a29ad5f8df..6ace528ee2 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
@@ -512,7 +512,7 @@ public interface ActiveMQServerLogger {
@LogMessage(id = 222062, value = "Cleared up resources for session {}",
level = LogMessage.Level.WARN)
void clearingUpSession(String name);
- @LogMessage(id = 222063, value = "Error processing IOCallback code = {}
message = {}", level = LogMessage.Level.WARN)
+ @LogMessage(id = 222063, value = "Error processing IOCallback; code = {},
message = {}", level = LogMessage.Level.WARN)
void errorProcessingIOCallback(Integer errorCode, String errorMessage);
@LogMessage(id = 222065, value = "Client is not being consistent on the
request versioning. It just sent a version id={} while it informed {}
previously", level = LogMessage.Level.DEBUG)
@@ -626,8 +626,8 @@ public interface ActiveMQServerLogger {
@LogMessage(id = 222103, value = "transaction with xid {} timed out", level
= LogMessage.Level.WARN)
void timedOutXID(Xid xid);
- @LogMessage(id = 222104, value = "IO Error completing the transaction, code
= {}, message = {}", level = LogMessage.Level.WARN)
- void ioErrorOnTX(Integer errorCode, String errorMessage);
+ @LogMessage(id = 222104, value = "IO Error completing transaction {}; code
= {}, message = {}", level = LogMessage.Level.WARN)
+ void ioErrorOnTX(String op, Integer errorCode, String errorMessage);
@LogMessage(id = 222106, value = "Replacing incomplete LargeMessage with
ID={}", level = LogMessage.Level.WARN)
void replacingIncompleteLargeMessage(Long messageID);
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/transaction/impl/TransactionImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/transaction/impl/TransactionImpl.java
index b371e6745f..7cf8fd4800 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/transaction/impl/TransactionImpl.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/transaction/impl/TransactionImpl.java
@@ -228,7 +228,7 @@ public class TransactionImpl implements Transaction {
@Override
public void onError(final int errorCode, final String
errorMessage) {
- ActiveMQServerLogger.LOGGER.ioErrorOnTX(errorCode,
errorMessage);
+ ActiveMQServerLogger.LOGGER.ioErrorOnTX("prepare",
errorCode, errorMessage);
}
@Override
@@ -306,7 +306,7 @@ public class TransactionImpl implements Transaction {
@Override
public void onError(final int errorCode, final String
errorMessage) {
- ActiveMQServerLogger.LOGGER.ioErrorOnTX(errorCode,
errorMessage);
+ ActiveMQServerLogger.LOGGER.ioErrorOnTX("commit -
afterComplete", errorCode, errorMessage);
}
@Override
@@ -323,7 +323,7 @@ public class TransactionImpl implements Transaction {
@Override
public void onError(final int errorCode, final String
errorMessage) {
- ActiveMQServerLogger.LOGGER.ioErrorOnTX(errorCode,
errorMessage);
+ ActiveMQServerLogger.LOGGER.ioErrorOnTX("commit -
afterStore", errorCode, errorMessage);
}
@Override
@@ -428,7 +428,7 @@ public class TransactionImpl implements Transaction {
@Override
public void onError(final int errorCode, final String errorMessage) {
- ActiveMQServerLogger.LOGGER.ioErrorOnTX(errorCode, errorMessage);
+ ActiveMQServerLogger.LOGGER.ioErrorOnTX("rollback -
afterComplete", errorCode, errorMessage);
}
@Override
@@ -442,7 +442,7 @@ public class TransactionImpl implements Transaction {
@Override
public void onError(final int errorCode, final String
errorMessage) {
- ActiveMQServerLogger.LOGGER.ioErrorOnTX(errorCode,
errorMessage);
+ ActiveMQServerLogger.LOGGER.ioErrorOnTX("rollback -
afterStore", errorCode, errorMessage);
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact