Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug(pgwire): byte index 1024 is not a char boundary #14283

Closed
suyZhong opened this issue Dec 30, 2023 · 0 comments · Fixed by #14292
Closed

bug(pgwire): byte index 1024 is not a char boundary #14283

suyZhong opened this issue Dec 30, 2023 · 0 comments · Fixed by #14292
Assignees
Labels
component/frontend Protocol, parsing, binder. type/bug Something isn't working
Milestone

Comments

@suyZhong
Copy link

Describe the bug

A long and complicated query would cause a panic when I use psql/postgresql jdbc.

Error message/log

ERROR:  Panicked when handling the request: byte index 1024 is not a char boundary; it is inside '\u{ea21}' (bytes 1022..1025) of `SELECT table12chars.c0 FROM table12chars WHERE ((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.`[...]
This is a bug. We would appreciate a bug report at:
  https://github.com/risingwavelabs/risingwave/issues/new?labels=type%2Fbug&template=bug_report.yml
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.

To Reproduce

I took some time to reduce it and I believe the query needs to be long enough to trigger the panic. Kindly inform me if you can reproduce it or if you need more information/reduce more.

CREATE TABLE table12chars(c0 VARCHAR, c1 INTEGER, PRIMARY KEY(c0));

SELECT table12chars.c0 FROM table12chars WHERE ((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 ELSE table12chars.c1 END ) THEN ((table12chars.c0) IS NULL) ELSE true END ))) UNION ALL SELECT table12chars.c0 FROM table12chars WHERE (NOT ((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 ELSE table12chars.c1 END ) THEN ((table12chars.c0) IS NULL) ELSE true END )))) UNION ALL SELECT table12chars.c0 FROM table12chars WHERE ((((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 WHEN table12chars.c1 THEN table12chars.c1 ELSE table12chars.c1 END ) THEN ((table12chars.c0) IS NULL) ELSE true END )))) IS NULL); 

Expected behavior

No panic

How did you deploy RisingWave?

via Docker image

The version of RisingWave

dev=> select version();
                                     version                                      
----------------------------------------------------------------------------------
 PostgreSQL 9.5-RisingWave-1.5.0-alpha (9ec58123d59d0c48e4b10bfdfa019358107e2230)
(1 row)

Additional context

Here's the full log of the server. Kindly inform me if you could reproduce it or if I need to reduce it more.

2023-12-30T03:36:30.850223032Z DEBUG rw-main hyper::client::connect::http: connected to 127.0.0.1:5688
thread 'rw-main' panicked at src/utils/pgwire/src/pg_protocol.rs:1142:36:
byte index 1024 is not a char boundary; it is inside '\u{ea21}' (bytes 1022..1025) of `SELECT table12chars.c0 FROM table12chars WHERE ((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.`[...]
stack backtrace:
   0: rust_begin_unwind
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:645:5
   1: core::panicking::panic_fmt
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/panicking.rs:72:14
   2: core::str::slice_error_fail_rt
   3: core::str::slice_error_fail
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/str/mod.rs:88:9
   4: core::str::traits::<impl core::slice::index::SliceIndex<str> for core::ops::range::Range<usize>>::index
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/str/traits.rs:231:21
   5: core::str::traits::<impl core::ops::index::Index<I> for str>::index
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/str/traits.rs:61:15
   6: <pgwire::pg_protocol::truncated_fmt::TruncatedFormatter as core::fmt::Write>::write_str
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:1142:36
   7: core::fmt::rt::Argument::fmt
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/rt.rs:142:9
   8: core::fmt::write
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/mod.rs:1120:17
   9: <&mut W as core::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/mod.rs:211:17
  10: core::fmt::Write::write_fmt
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/mod.rs:215:14
  11: <pgwire::pg_protocol::truncated_fmt::TruncatedFmt<T> as core::fmt::Display>::fmt
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:1180:14
  12: <tracing_core::field::DisplayValue<T> as core::fmt::Display>::fmt
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/field.rs:686:9
  13: <tracing_core::field::DisplayValue<T> as core::fmt::Debug>::fmt
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/field.rs:680:9
  14: core::fmt::rt::Argument::fmt
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/rt.rs:142:9
  15: core::fmt::write
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/fmt/mod.rs:1120:17
  16: tracing_subscriber::fmt::format::Writer::write_fmt
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/fmt/format/mod.rs:500:9
  17: <tracing_subscriber::fmt::format::DefaultVisitor as tracing_core::field::Visit>::record_debug
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/fmt/format/mod.rs:1271:21
  18: <&T as tracing_core::field::Value>::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/field.rs:586:9
  19: tracing_core::field::ValueSet::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/field.rs:1001:23
  20: tracing_core::span::Record::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/span.rs:225:9
  21: <tracing_core::span::Record as tracing_subscriber::field::RecordFields>::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/field/mod.rs:178:9
  22: <&F as tracing_subscriber::field::RecordFields>::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/field/mod.rs:188:9
  23: <M as tracing_subscriber::fmt::format::FormatFields>::format_fields
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/fmt/format/mod.rs:1147:9
  24: tracing_subscriber::fmt::format::FormatFields::add_fields
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/fmt/format/mod.rs:249:9
  25: <tracing_subscriber::fmt::fmt_layer::Layer<S,N,E,W> as tracing_subscriber::layer::Layer<S>>::on_record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/fmt/fmt_layer.rs:834:21
  26: <alloc::boxed::Box<dyn tracing_subscriber::layer::Layer<S>+core::marker::Sync+core::marker::Send> as tracing_subscriber::layer::Layer<S>>::on_record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/layer/mod.rs:1696:17
  27: <alloc::vec::Vec<L> as tracing_subscriber::layer::Layer<S>>::on_record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/layer/mod.rs:1816:17
  28: <tracing_subscriber::layer::layered::Layered<L,S> as tracing_core::subscriber::Subscriber>::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.17/src/layer/layered.rs:133:9
  29: tracing_core::dispatcher::Dispatch::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-core-0.1.31/src/dispatcher.rs:573:9
  30: tracing::span::Inner::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/span.rs:1506:9
  31: tracing::span::Span::record_all
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/span.rs:1216:13
  32: tracing::span::Span::record
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/span.rs:1201:17
  33: pgwire::pg_protocol::record_sql_in_span
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:155:5
  34: pgwire::pg_protocol::PgProtocol<S,SM>::process_query_msg::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:549:9
  35: pgwire::pg_protocol::PgProtocol<S,SM>::do_process_inner::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:389:88
  36: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/future/future.rs:124:9
  37: <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:347:31
  38: tokio::task::task_local::LocalKey<T>::scope_inner
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:217:19
  39: <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:343:19
  40: pgwire::pg_protocol::PgProtocol<S,SM>::do_process::{{closure}}::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:250:53
  41: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::future::future::Future>::poll
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/panic/unwind_safe.rs:297:9
  42: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.28/src/future/future/catch_unwind.rs:36:42
  43: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/panic/unwind_safe.rs:272:9
  44: std::panicking::try::do_call
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:552:40
  45: std::panicking::try
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:516:19
  46: std::panic::catch_unwind
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panic.rs:142:14
  47: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.28/src/future/future/catch_unwind.rs:36:9
  48: <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:347:31
  49: tokio::task::task_local::LocalKey<T>::scope_inner
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:217:19
  50: <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/task/task_local.rs:343:19
  51: pgwire::pg_protocol::PgProtocol<S,SM>::do_process::{{closure}}::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:260:18
  52: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/future/future.rs:124:9
  53: <&mut F as core::future::future::Future>::poll
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/future/future.rs:112:9
  54: <tokio::time::timeout::Timeout<T> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/time/timeout.rs:202:33
  55: pgwire::pg_protocol::PgProtocol<S,SM>::do_process::{{closure}}::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:276:62
  56: pgwire::pg_protocol::PgProtocol<S,SM>::do_process::{{closure}}::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:293:30
  57: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/instrument.rs:272:9
  58: pgwire::pg_protocol::PgProtocol<S,SM>::do_process::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:318:19
  59: pgwire::pg_protocol::PgProtocol<S,SM>::process::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_protocol.rs:200:30
  60: pgwire::pg_server::handle_connection::{{closure}}
             at ./risingwave/src/utils/pgwire/src/pg_server.rs:208:41
  61: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/instrument.rs:272:9
  62: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:334:17
  63: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/loom/std/unsafe_cell.rs:16:9
  64: tokio::runtime::task::core::Core<T,S>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:323:13
  65: tokio::runtime::task::harness::poll_future::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:485:19
  66: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/panic/unwind_safe.rs:272:9
  67: std::panicking::try::do_call
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:552:40
  68: std::panicking::try
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:516:19
  69: std::panic::catch_unwind
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panic.rs:142:14
  70: tokio::runtime::task::harness::poll_future
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:473:18
  71: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:208:27
  72: tokio::runtime::task::harness::Harness<T,S>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:153:15
  73: tokio::runtime::task::raw::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:276:5
  74: tokio::runtime::task::raw::RawTask::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:200:18
  75: tokio::runtime::task::LocalNotified<S>::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/mod.rs:400:9
  76: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:576:18
  77: tokio::runtime::coop::with_budget
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/coop.rs:107:5
  78: tokio::runtime::coop::budget
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/coop.rs:73:5
  79: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:575:9
  80: tokio::runtime::scheduler::multi_thread::worker::Context::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:526:24
  81: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:491:21
  82: tokio::runtime::context::scoped::Scoped<T>::set
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/context/scoped.rs:40:9
  83: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:486:9
  84: tokio::runtime::context::runtime::enter_runtime
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/context/runtime.rs:65:16
  85: tokio::runtime::scheduler::multi_thread::worker::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:478:5
  86: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/scheduler/multi_thread/worker.rs:447:45
  87: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/task.rs:42:21
  88: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/instrument.rs:272:9
  89: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:334:17
  90: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/loom/std/unsafe_cell.rs:16:9
  91: tokio::runtime::task::core::Core<T,S>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:323:13
  92: tokio::runtime::task::harness::poll_future::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:485:19
  93: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/core/src/panic/unwind_safe.rs:272:9
  94: std::panicking::try::do_call
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:552:40
  95: std::panicking::try
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panicking.rs:516:19
  96: std::panic::catch_unwind
             at ./rustc/e4c626dd9a17a23270bf8e7158e59cf2b9c04840/library/std/src/panic.rs:142:14
  97: tokio::runtime::task::harness::poll_future
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:473:18
  98: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:208:27
  99: tokio::runtime::task::harness::Harness<T,S>::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:153:15
 100: tokio::runtime::task::raw::RawTask::poll
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:200:18
 101: tokio::runtime::task::UnownedTask<S>::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/mod.rs:437:9
 102: tokio::runtime::blocking::pool::Task::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:159:9
 103: tokio::runtime::blocking::pool::Inner::run
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:513:17
 104: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:471:13
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
2023-12-30T03:36:31.243779515Z ERROR rw-main handle_query{mode="simple query" session_id=0 sql=}: pgwire::pg_protocol: error when process message error=Panicked when handling the request: byte index 1024 is not a char boundary; it is inside '\u{ea21}' (bytes 1022..1025) of `SELECT table12chars.c0 FROM table12chars WHERE ((((((((((-734156489)-(1826255243)))!=(((1746089155)+(-734272702)))))OR(false)))OR((NOT ('乞 ' NOT IN ('lmZ'))))))OR((CASE table12chars.c1 WHEN (CASE table12chars.c1 WHEN table12chars.c1 THEN table12chars.`[...]
This is a bug. We would appreciate a bug report at:
  https://github.com/risingwavelabs/risingwave/issues/new?labels=type%2Fbug&template=bug_report.yml
@suyZhong suyZhong added the type/bug Something isn't working label Dec 30, 2023
@github-actions github-actions bot added this to the release-1.6 milestone Dec 30, 2023
@xiangjinwu xiangjinwu changed the title Panicked: byte index 1024 is not a char boundary bug(pgwire): byte index 1024 is not a char boundary Dec 30, 2023
@xiangjinwu xiangjinwu added the component/frontend Protocol, parsing, binder. label Dec 30, 2023
@xiangjinwu xiangjinwu self-assigned this Dec 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/frontend Protocol, parsing, binder. type/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants