Skip to content

执行计算总数语句导致南大通用数据库ODBC驱动崩溃 #2148

@lingshao1988

Description

@lingshao1988

问题描述及重现代码:

// c# code
// 计算总数而已
RemoteDatabase.Select.Count();
//对应freesql 生成的语句为如下
SELECT count(1) as1 
FROM cfgstation a

只要执行这个语句整个.net core就会崩溃,使用gdb跟踪显示odbc 异常
gdb) bt #0 0x00007f32fce09e6b in raise () from /usr/lib64/libc.so.6 #1 0x00007f32fce0b26f in abort () from /usr/lib64/libc.so.6 #2 0x00007f32fce4b689 in ?? () from /usr/lib64/libc.so.6 #3 0x00007f32fce51dea in ?? () from /usr/lib64/libc.so.6 #4 0x00007f32fce538c0 in ?? () from /usr/lib64/libc.so.6 #5 0x00007f25b038dffe in _OdbcIntInt82ExtWString () from /home/component/gbase8s-odbc-driver/lib/cli/iclit09b.so #6 0x00007f25b032fef2 in _OdbcGetData () from /home/component/gbase8s-odbc-driver/lib/cli/iclit09b.so #7 0x00007f25b033011c in SQLGetData () from /home/component/gbase8s-odbc-driver/lib/cli/iclit09b.so #8 0x00007f25c835ebe0 in SQLGetData () from /usr/lib64/libodbc.so.2 #9 0x00007f328769a4cd in ?? () #10 0x00007f32fcc87c48 in ?? () from /home/component/netcore6/shared/Microsoft.NETCore.App/6.0.20/libcoreclr.so #11 0x00000000a63e7143 in ?? () #12 0x00007f32fcc9b8f0 in ?? () from /home/component/netcore6/shared/Microsoft.NETCore.App/6.0.20/libcoreclr.so #13 0x00007f25667fb820 in ?? () #14 0x00007f32875ad780 in ?? () #15 0x00007f32875ad780 in ?? () #16 0x00007f25667fa1b0 in ?? () #17 0x00007f328769a4cd in ?? () #18 0x00007f25667fa240 in ?? () #19 0x00000000a63e7143 in ?? () #20 0x00007f32875ad780 in ?? () #21 0x00007f254d57e4a0 in ?? () #22 0x00007f25667fa2d0 in ?? () #23 0x00007f25667fa2d0 in ?? () #24 0x0000000000000ffc in ?? () #25 0x00007f253c02c750 in ?? () #26 0x0000000000000001 in ?? () #27 0x00000000fffffff8 in ?? () #28 0x00007f25667fa2b0 in ?? () #29 0x00007f328813b2a6 in ?? () #30 0x00007f25667fa250 in ?? () #31 0x00007f32877fed30 in ?? () #32 0x00007f2cac3834b0 in ?? () #33 0x00007f2cac384508 in ?? () #34 0x00007f25667fa2d0 in ?? () #35 0x0000000000000001 in ?? () #36 0x0000000000000001 in ?? () #37 0x00007f2cac384530 in ?? ()

//修复办法 只能改为 先查询所有对象然后在计算总数 就不会崩溃
 var all = RemoteDatabase.Select.ToList();
 return all.Count();

数据库版本

GBASE 8

安装的Nuget包

Nuget:freesql 3.5.210

.net framework/. net core? 及具体版本

.net core 6
gbase8s-odbc-driver-3.3.zip
银河麒麟v10操作系统

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