risingwavelabs/risingwave · info · StreamExecutorError
test_error
Error message
test_error
What it means
A panic (via the `bail!` macro) raised inside a test helper `func_return_error` in the stream executor's test module. `bail!` returns `Err(StreamExecutorError::msg("test_error"))`, and the test's panic is used to exercise the executor error Display/backtrace rendering for manual UI inspection. It is not a production error path.
Solutions
- No fix needed: this is an intentional panic in a `#[should_panic] #[ignore]` test used for manual UI inspection.
- If you did not expect it, ensure you are not running the test with `--include-ignored`; it is meant to be run only for manual checks.
Defensive patterns
Strategy: try-catch
Try / catch
// Not needed in normal development. Only run for manual UI checks: // cargo test -p risingwave_stream executor_error_ui_test -- --ignored --nocapture // The test is #[should_panic], so a panic is the expected outcome.
Prevention
- Do not run ignored #[should_panic] tests in CI or as part of general test runs.
- Treat any "test_error" panic in logs as coming from this manual UI-check test, not production code.
When it happens
Trigger: Running the ignored tests `executor_error_ui_test_1` or `executor_error_ui_test_2` explicitly with `cargo test -- --ignored` (they are `#[ignore = "manual UI check"]` and `#[should_panic]`); the helper `func_return_error` calls `bail!("test_error")`.
Common situations: Developers manually verifying how `StreamExecutorError` backtraces look in logs; contributors touching the error type or tracing setup who run ignored tests.
Understand the failure class
Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.
Related errors
- not yet implemented: is_dirty
- Time column should be Timestamp or Timestamptz
- unmatched type: filter expr returns a non-null array
- All valid CDC connectors should have returned by now
- AZBLOB_ENDPOINT not found from environment variables
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/741e91be2bca65d7.
Report an issue: GitHub.
Appendix: source
Thrown at src/stream/src/executor/error.rs:178
}
}
impl StreamExecutorError {
pub fn variant_name(&self) -> &str {
self.0.inner().as_ref()
}
}
static_assertions::const_assert_eq!(std::mem::size_of::<StreamExecutorError>(), 8);
#[cfg(test)]
mod tests {
use risingwave_common::bail;
use super::*;
fn func_return_error() -> StreamExecutorResult<()> {
bail!("test_error")
}
#[test]
#[should_panic]
#[ignore = "manual UI check: only prints the error/backtrace for human inspection"]
fn executor_error_ui_test_1() {
// For this test, ensure that we have only one backtrace from error when panic.
func_return_error().unwrap();
}
#[test]
#[ignore = "manual UI check: only prints the error/backtrace for human inspection"]
fn executor_error_ui_test_2() {
// For this test, ensure that we have only one backtrace from error when panic.
func_return_error().map_err(|e| println!("{:?}", e)).ok();
}
}
View on GitHub (pinned to 6469eb736d)