Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

unreachable code entered whenSELECTing nested composite types andDOMAINs #1188

Closed
@zacknewman

Description

@zacknewman

Execute the following transaction on a PostgreSQL database:

BEGIN;CREATETYPEfooAS (xinteger);CREATEDOMAINbarAS fooNOT NULL;CREATETYPEfizzAS (y bar);CREATETABLEbuzz(z fizzNOT NULL);INSERT INTO buzzVALUES (ROW(ROW(1)));COMMIT;

Now compile and run the following Rust program:

#![expect(    clippy::trait_duplication_in_bounds,    reason ="can't fix since part of ToSql macro")]use core::{    net::{IpAddr,Ipv6Addr},    time::Duration,};use postgres_types::{FromSql,ToSql};use tokio::runtime::Builder;use tokio_postgres::{    config::{ChannelBinding,Config,LoadBalanceHosts,SslMode,TargetSessionAttrs},    tls::NoTls,IsolationLevel,};#[derive(Debug,FromSql,ToSql)]#[postgres(name ="foo")]structFoo{x:i32,}#[derive(FromSql)]#[postgres(name ="bar")]structBar(Foo);#[derive(FromSql)]#[postgres(name ="fizz")]structFizz{y:Bar,}fnmain(){Builder::new_current_thread().enable_all().build().unwrap().block_on(async{letmut config =Config::new();let c = config.application_name("bug").channel_binding(ChannelBinding::Disable).connect_timeout(Duration::from_secs(10)).dbname("example").host("").hostaddr(IpAddr::V6(Ipv6Addr::LOCALHOST)).keepalives(true).keepalives_idle(Duration::from_secs(300)).load_balance_hosts(LoadBalanceHosts::Disable).password(b"password").port(5432).ssl_mode(SslMode::Disable).target_session_attrs(TargetSessionAttrs::Any).user("example");let(mut client, con) = c.connect(NoTls).await.unwrap();            tokio::spawn(asyncmove{                con.await.unwrap();});let txn = client.build_transaction().isolation_level(IsolationLevel::Serializable).read_only(true).start().await.unwrap();let stmt = txn.prepare_typed("SELECT z FROM buzz;",[].as_slice()).await.unwrap();let row = txn.query_one(&stmt,&[]).await.unwrap();// The `panic` occurs on the below line.let col1 = row.get::<'_,_,Fizz>(0);println!("{}", col1.y.0.x);            txn.commit().await.unwrap();});}
[zack@laptop bug]$export RUST_BACKTRACE=full&& cargo run    Updating crates.io index     Locking 98 packages to latest compatible versions      Adding fallible-iterator v0.2.0 (latest: v0.3.0)      Adding generic-array v0.14.7 (latest: v1.1.0)      Adding hermit-abi v0.3.9 (latest: v0.4.0)      Adding siphasher v0.3.11 (latest: v1.0.1)      Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.3+wasi-0.2.2)      Adding windows-sys v0.52.0 (latest: v0.59.0)      Adding zerocopy v0.7.35 (latest: v0.8.10)      Adding zerocopy-derive v0.7.35 (latest: v0.8.10)   Compiling proc-macro2 v1.0.89   Compiling unicode-ident v1.0.13   Compiling libc v0.2.164   Compiling typenum v1.17.0   Compiling version_check v0.9.5   Compiling cfg-if v1.0.0   Compiling autocfg v1.4.0   Compiling byteorder v1.5.0   Compiling subtle v2.6.1   Compiling tinyvec_macros v0.1.1   Compiling bytes v1.8.0   Compiling unicode-bidi v0.3.17   Compiling unicode-properties v0.1.3   Compiling tinyvec v1.8.0   Compiling futures-sink v0.3.31   Compiling pin-project-lite v0.2.15   Compiling parking_lot_core v0.9.10   Compiling futures-core v0.3.31   Compiling cpufeatures v0.2.15   Compiling memchr v2.7.4   Compiling base64 v0.22.1   Compiling smallvec v1.13.2   Compiling generic-array v0.14.7   Compiling fallible-iterator v0.2.0   Compiling siphasher v0.3.11   Compiling slab v0.4.9   Compiling lock_api v0.4.12   Compiling heck v0.5.0   Compiling scopeguard v1.2.0   Compiling phf_shared v0.11.2   Compiling futures-task v0.3.31   Compiling quote v1.0.37   Compiling unicode-normalization v0.1.24   Compiling pin-utils v0.1.0   Compiling phf v0.11.2   Compiling futures-channel v0.3.31   Compiling log v0.4.22   Compiling whoami v1.5.2   Compiling getrandom v0.2.15   Compiling socket2 v0.5.7   Compiling mio v1.0.2   Compiling syn v2.0.87   Compiling rand_core v0.6.4   Compiling percent-encoding v2.3.1   Compiling tokio v1.41.1   Compiling parking_lot v0.12.3   Compiling stringprep v0.1.5   Compiling crypto-common v0.1.6   Compiling block-buffer v0.10.4   Compiling digest v0.10.7   Compiling md-5 v0.10.6   Compiling sha2 v0.10.8   Compiling hmac v0.12.1   Compiling zerocopy-derive v0.7.35   Compiling futures-macro v0.3.31   Compiling postgres-derive v0.4.6   Compiling async-trait v0.1.83   Compiling tokio-util v0.7.12   Compiling zerocopy v0.7.35   Compiling futures-util v0.3.31   Compiling ppv-lite86 v0.2.20   Compiling rand_chacha v0.3.1   Compiling rand v0.8.5   Compiling postgres-protocol v0.6.7   Compiling postgres-types v0.2.8   Compiling tokio-postgres v0.7.12   Compiling bug v0.1.0 (/home/zack/projects/bug)    Finished`dev` profile [unoptimized + debuginfo] target(s)in 6.81s     Running`target/debug/bug`thread'main' panicked at src/main.rs:16:17:internal error: entered unreachable codestack backtrace:   0:     0x5b8541de129a - std::backtrace_rs::backtrace::libunwind::trace::h99efb0985cae5d78                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5   1:     0x5b8541de129a - std::backtrace_rs::backtrace::trace_unsynchronized::he2c1aa63b3f7fad8                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5   2:     0x5b8541de129a - std::sys::backtrace::_print_fmt::h8a221d40f5e0f88b                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:66:9   3:     0x5b8541de129a -<std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h304520fd6a30aa07                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:39:26   4:     0x5b8541e00cfb - core::fmt::rt::Argument::fmt::h5da9c218ec984eaf                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/fmt/rt.rs:177:76   5:     0x5b8541e00cfb - core::fmt::write::hf5713710ce10ff22                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/fmt/mod.rs:1178:21   6:     0x5b8541dde1f3 - std::io::Write::write_fmt::hda708db57927dacf                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/io/mod.rs:1823:15   7:     0x5b8541de2442 - std::sys::backtrace::BacktraceLock::print::hbcdbec4d97c91528                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:42:9   8:     0x5b8541de2442 - std::panicking::default_hook::{{closure}}::he1ad87607d0c11c5                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:266:22   9:     0x5b8541de20ae - std::panicking::default_hook::h81c8cd2e7c59ee33                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:293:9  10:     0x5b8541de2ccf - std::panicking::rust_panic_with_hook::had2118629c312a4a                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:797:13  11:     0x5b8541de2983 - std::panicking::begin_panic_handler::{{closure}}::h7fa5985d111bafa2                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:664:13  12:     0x5b8541de1779 - std::sys::backtrace::__rust_end_short_backtrace::h704d151dbefa09c5                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:170:18  13:     0x5b8541de2644 - rust_begin_unwind                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:662:5  14:     0x5b8541c24ba3 - core::panicking::panic_fmt::h3eea515d05f7a35e                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:74:14  15:     0x5b8541c24c2c - core::panicking::panic::h102d65dbfa674afe                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:148:5  16:     0x5b8541c65f92 -<bug::Foo as postgres_types::FromSql>::from_sql::h43e1abeab9a3c013                               at /home/zack/projects/bug/src/main.rs:16:17  17:     0x5b8541c66626 -<bug::Bar as postgres_types::FromSql>::from_sql::h3bf354d1b63b138d                               at /home/zack/projects/bug/src/main.rs:21:17  18:     0x5b8541c49be0 - postgres_types::FromSql::from_sql_nullable::heb890c98a7575749                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-types-0.2.8/src/lib.rs:553:26  19:     0x5b8541c3a5b6 - postgres_types::private::read_value::h60ed5086d229f1fd                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-types-0.2.8/src/private.rs:33:5  20:     0x5b8541c66c04 -<bug::Fizz as postgres_types::FromSql>::from_sql::hd1e47626297d0f67                               at /home/zack/projects/bug/src/main.rs:24:17  21:     0x5b8541c49b60 - postgres_types::FromSql::from_sql_nullable::h8b6560ee4998bc3c                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-types-0.2.8/src/lib.rs:553:26  22:     0x5b8541c3ff59 - tokio_postgres::row::Row::get_inner::hbdb55d077f4a2675                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-postgres-0.7.12/src/row.rs:184:9  23:     0x5b8541c3fb8e - tokio_postgres::row::Row::get::h51f09083614dfe15                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-postgres-0.7.12/src/row.rs:151:15  24:     0x5b8541c4ac65 - bug::main::{{closure}}::hec6cf66abc2b37c0                               at /home/zack/projects/bug/src/main.rs:67:24  25:     0x5b8541c3a1fd -<core::pin::Pin<P> as core::future::future::Future>::poll::h5b0901c32bd73ba6                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9  26:     0x5b8541c3a2bd -<core::pin::Pin<P> as core::future::future::Future>::poll::hcf178ea35cd368f9                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9  27:     0x5b8541c34bff - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h5c8ff6977dfd5361                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:729:57  28:     0x5b8541c34b25 - tokio::runtime::coop::with_budget::h79f7fee45e1fa95c                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/coop.rs:107:5  29:     0x5b8541c34b25 - tokio::runtime::coop::budget::ha98b8bca93bacaa2                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/coop.rs:73:5  30:     0x5b8541c34b25 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h1c41bed8d6c2e705                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:729:25  31:     0x5b8541c324b0 - tokio::runtime::scheduler::current_thread::Context::enter::h75f2cabd0440a202                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:428:19  32:     0x5b8541c3420b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::hd312ed3b2fc5c4b0                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:728:36  33:     0x5b8541c336a4 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::hfcbec99e2427c975                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:807:68  34:     0x5b8541c66f9b - tokio::runtime::context::scoped::Scoped<T>::set::hfd7dc621c1a86dd6                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/context/scoped.rs:40:9  35:     0x5b8541c3e469 - tokio::runtime::context::set_scheduler::{{closure}}::he0284573d5eb0ca5                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/context.rs:180:26  36:     0x5b8541c5c65a - std::thread::local::LocalKey<T>::try_with::h705fa3e9e86b8046                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/thread/local.rs:283:12  37:     0x5b8541c5bc2a - std::thread::local::LocalKey<T>::with::hcbecfc679dd67832                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/thread/local.rs:260:9  38:     0x5b8541c3e3dd - tokio::runtime::context::set_scheduler::hac0d58a5dc54ad36                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/context.rs:180:9  39:     0x5b8541c33430 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::h1e18d6ebd2188d54                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:807:27  40:     0x5b8541c33723 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::hf8078cbf5b28f26c                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:716:19  41:     0x5b8541c30efd - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::ha66859ddb7d9bad0                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:196:28  42:     0x5b8541c2a527 - tokio::runtime::context::runtime::enter_runtime::hae321f8f5ba61d93                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/context/runtime.rs:65:16  43:     0x5b8541c30bd3 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h14c83c76c10473e3                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/scheduler/current_thread/mod.rs:184:9  44:     0x5b8541c2ab10 - tokio::runtime::runtime::Runtime::block_on_inner::h28918626ddecdeee                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/runtime.rs:368:47  45:     0x5b8541c2aefe - tokio::runtime::runtime::Runtime::block_on::h751fbbf92aa61924                               at /home/zack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.41.1/src/runtime/runtime.rs:340:13  46:     0x5b8541c65e4c - bug::main::ha7253ccdcb8d6d35                               at /home/zack/projects/bug/src/main.rs:30:5  47:     0x5b8541c25b4b - core::ops::function::FnOnce::call_once::h9f3bb0ebd6d37fd7                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/function.rs:250:5  48:     0x5b8541c5cd7e - std::sys::backtrace::__rust_begin_short_backtrace::h0b49c9502cd6f287                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:154:18  49:     0x5b8541c2a081 - std::rt::lang_start::{{closure}}::hc1d9acf0009135ce                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:164:18  50:     0x5b8541ddae40 - core::ops::function::impls::<impl core::ops::function::FnOnce<A>for&F>::call_once::h08ecba131ab90ec4                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/function.rs:284:13  51:     0x5b8541ddae40 - std::panicking::try::do_call::hf33a59fd8ce953f4                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:554:40  52:     0x5b8541ddae40 - std::panicking::try::h5005ce80ce949fd8                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:518:19  53:     0x5b8541ddae40 - std::panic::catch_unwind::hfbae19e2e2c5b7ed                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panic.rs:345:14  54:     0x5b8541ddae40 - std::rt::lang_start_internal::{{closure}}::ha0331c3690741813                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:143:48  55:     0x5b8541ddae40 - std::panicking::try::do_call::hcdcbdb616b4d0295                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:554:40  56:     0x5b8541ddae40 - std::panicking::try::h3f2f1725a07d2256                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:518:19  57:     0x5b8541ddae40 - std::panic::catch_unwind::h51869e04b56b2dc3                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panic.rs:345:14  58:     0x5b8541ddae40 - std::rt::lang_start_internal::h4d90db0530245041                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:143:20  59:     0x5b8541c2a05a - std::rt::lang_start::h0c5b3abe1e928f3c                               at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:163:17  60:     0x5b8541c66d8e - main  61:     0x747cf2318e08 -<unknown>  62:     0x747cf2318ecc - __libc_start_main  63:     0x5b8541c255f5 - _start  64:                0x0 -<unknown>

Additional information:

[zack@laptop bug]$ cat Cargo.toml[package]name ="bug"version ="0.1.0"edition ="2021"[dependencies]postgres-types = { version ="0.2.8", default-features = false, features = ["derive"] }tokio = { version ="1.41.1", default-features = false, features = ["rt"] }tokio-postgres = { version ="0.7.12", default-features = false, features = ["runtime"] }[zack@laptop bug]$ rustc --versionrustc 1.82.0 (f6e511eec 2024-10-15)[zack@laptop bug]$ postgres --versionpostgres (PostgreSQL) 16.3[zack@laptop bug]$ uname -aLinux laptop 6.11.7-arch1-1#1 SMP PREEMPT_DYNAMIC Fri, 08 Nov 2024 17:57:56 +0000 x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp