diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 31c1acbce..848a4f7e9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -256,6 +256,14 @@ jobs: asset_name: nb5 asset_content_type: application/octet-stream + - name: Archive Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: test-results + path: | + [a-zA-Z]**/logs/* + javadocs: needs: release runs-on: ubuntu-20.04 @@ -279,6 +287,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} branch: main + # docs: # needs: release # runs-on: ubuntu-20.04 diff --git a/engine-core/src/main/java/io/nosqlbench/engine/core/lifecycle/ScenarioErrorHandler.java b/engine-core/src/main/java/io/nosqlbench/engine/core/lifecycle/ScenarioErrorHandler.java index 3459f2047..0b9e45f9b 100644 --- a/engine-core/src/main/java/io/nosqlbench/engine/core/lifecycle/ScenarioErrorHandler.java +++ b/engine-core/src/main/java/io/nosqlbench/engine/core/lifecycle/ScenarioErrorHandler.java @@ -45,13 +45,29 @@ public class ScenarioErrorHandler { private final static Logger logger = LogManager.getLogger("ERRORHANDLER"); public static String handle(Throwable t, boolean wantsStackTraces) { + if (wantsStackTraces) { + StackTraceElement[] st = Thread.currentThread().getStackTrace(); + + for (int i = 0; i < 10; i++) { + if (st.length>i) { + String className = st[i].getClassName(); + String fileName = st[i].getFileName(); + int lineNumber = st[i].getLineNumber(); + logger.trace("st["+i+"]:" + className +","+fileName+":"+lineNumber); + } + } + } if (t instanceof ScriptException) { + logger.trace("Handling script exception: " + t); return handleScriptException((ScriptException) t, wantsStackTraces); } else if (t instanceof BasicError) { + logger.trace("Handling basic error: " + t); return handleBasicError((BasicError) t, wantsStackTraces); } else if (t instanceof Exception){ + logger.trace("Handling general exception: " + t); return handleInternalError((Exception) t, wantsStackTraces); } else { + logger.error("Unknown type for error handler: " + t); throw new RuntimeException("Error in exception handler", t); } }