Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

mysqld crash at duckdb::StandardBufferManager::EvictBlocksOrThrow with release builds

未关闭
#137 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
冷清
技术栈
cpp, mysql
领域
databases

调研方向

使用全新的 datadir、列出的 DuckDB 参数和表语句重现崩溃,然后比较移除这些参数后重启时的行为。从 standard_buffer_manager.cpp:360 的 duckdb::StandardBufferManager::Pin 开始,跟踪 EvictBlocksOrThrow failure;signal_handler.cc:232 也出现在 stack 中。完成的标准是重启不再崩溃,并且该回归由适当的测试覆盖。

由索引模型根据 Issue 内容生成。

描述

commit: 5992bff947a5190565f1b5c4435725a968e37b5d
branch: master

#0 __pthread_kill_implementation (threadid=281473450815552, signo=6, no_tid=)
at pthread_kill.c:44
#1 handle_fatal_signal (sig=6) at signal_handler.cc:232
#2
#3 __pthread_kill_implementation (threadid=281473450815552, signo=signo@entry=6,
no_tid=no_tid@entry=0) at pthread_kill.c:44
#4 __pthread_kill_internal (signo=6, threadid=) at pthread_kill.c:78
#5 __GI_raise (sig=sig@entry=6) at raise.c:26
#6 __GI_abort () at abort.c:79
#7 __gnu_cxx::__verbose_terminate_handler() () from /lib/aarch64-linux-gnu/libstdc++.so.6
#8 ?? () from /lib/aarch64-linux-gnu/libstdc++.so.6
#9 std::terminate() () from /lib/aarch64-linux-gnu/libstdc++.so.6
#10 __cxa_throw () from /lib/aarch64-linux-gnu/libstdc++.so.6
#11 duckdb::StandardBufferManager::EvictBlocksOrThrow<char const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > (this=this@entry=,
tag=tag@entry=duckdb::MemoryTag::BASE_TABLE, memory_delta=memory_delta@entry=262144,
buffer=buffer@entry=) at new_allocator.h:104
#12 duckdb::StandardBufferManager::Pin (this=, handle=...) at standard_buffer_manager.cpp:360

  1. Create a fresh datadir with --initialize-insecure
  2. Start the server with the following duckdb parameters
    --duckdb_mode=ON --force_innodb_to_duckdb=ON --duckdb_memory_limit=2147483648 --duckdb_threads=0
  3. Create a table

DROP TABLE IF EXISTS t1;
CREATE TABLE t1(pk INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c1 VARCHAR(255));
INSERT INTO t1(c1) values("how"),("y"),(REPEAT("asda",15));

  1. Stop the server and restart without the duckdb parameters

mysqld crashes

主要语言
C++
星标
6k
派生
902
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

alibaba/AliSQL 的其他 Issue

查看 alibaba/AliSQL 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。