【问题标题】:Connecting to an existing db farm using MonetDBLite C API使用 MonetDBLite C API 连接到现有的数据库场
【发布时间】:2018-10-09 07:35:49
【问题描述】:

我有一个使用数据库(例如:temp)创建的数据库场。当我尝试使用 monetdb_startup 连接时,出现以下错误。

src/gdk/gdk_utils.c:1465: GDKfree: 断言 `(asize & 2) == 0' 失败。 中止(核心转储)

  1. 我正在使用提供的示例应用程序 tests/readme/readme.c。
  2. monetdb_startup("/dbfarm/temp", 0, 0) 是我想要做的。
  3. 正在使用的 Monet 版本: MonetDB 5 服务器 v11.29.3 “Mar2018”(64 位、128 位整数)
  4. 堆栈跟踪:

            #0  0x0000003f39232495 in raise () from /lib64/libc.so.6
            #1  0x0000003f39233c75 in abort () from /lib64/libc.so.6
            #2  0x0000003f3922b60e in __assert_fail_base () from /lib64/libc.so.6
            #3  0x0000003f3922b6d0 in __assert_fail () from /lib64/libc.so.6
            #4  0x00007ffff799bc3c in GDKfree (s=0x19602e0) at src/gdk/gdk_utils.c:1465
            #5  0x00007ffff79a8521 in freeException (msg=0x19602e0 '▒' <repeats 88 times>, "▒L\001") at src/mal/mal/mal_exception.c:135
            #6  0x00007ffff7b38c09 in SQLupgrades (c=0x7ffff42b2400, m=0x1815460) at src/mal/sqlbackend/sql_upgrades.c:1442
            #7  0x00007ffff7b1edb2 in SQLinitClient (c=0x7ffff42b2400) at src/mal/sqlbackend/sql_scenario.c:612
            #8  0x00007ffff7404f32 in monetdb_connect () at src/embedded/embedded.c:72
            #9  0x00007ffff74055da in monetdb_startup (dbdir=0x7fffffffd7c0 "/dbfarm/temp/", silent=0 '\000', sequential=0 '\000')
                at src/embedded/embedded.c:162
    

谢谢

【问题讨论】:

  • 所以数据库是使用 MonetDB 创建的,而您正在尝试使用 MonetDBLite 连接到它?
  • 是的。在调试时,发现执行方法sql_update_mar2018时出现异常(解析错误),特别是在执行时,我猜是元数据sqls。我避免调用 sql_update_mar2018 并且它有效。我能够看到现有 dbfarm 中的表。但不确定这个解决方案。如果有帮助,我可以获得确切的堆栈跟踪。

标签: monetdblite


【解决方案1】:

一般来说,不支持此用例。因此,在版本之间升级 MonetDBLite 数据库应该可以正常工作,但是从 MonetDBLite 移动到 MonetDB 并返回可能会出现错误和/或崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多