Subject | assert triggers and server aborts |
---|---|
Author | Mike Nordell |
Post date | 2000-08-13T05:31:26Z |
Suggestion from a dev-list pointed me here with this problem, since
IB-Architect would be the more probable list to find someone that knows, if
even partially, this code.
Preconditions: debug build with DEV_BUILD macro defined.
SELECT DISTINCT RDB$DESCRIPTION FROM RDB$RELATIONS;
This results in an triggered assert
assert (sort_key->skd_dtype != 0);
at (or about) line 4287 in jrd/opt.c.
Obviously this code have never been run, why I can't verify the the
validity of the assert. On the other hand, it would seem as it is trying to
use a blob as sort-key, why the assert possibly is correct, just a "little"
too deep in the call-stack to be of *any* help, it just aborts the server.
I've backtracked it to OPT_compile() (jrd/opt.c,610) where it uses a local
'project' variable as argument to gen_sort, but from this point I'm
clueless. It doesn't exactly help that everything seems to be logically
inheriting a struct "blk", that is used by pointers in nesting levels that
would make a lisp programmer cry. To try to parse these at runtime (using
the debugger) is not a walk in the park.
I've been at this now for what seems forever, and really don't have come any
closer to what really happens. If anyone get an idea, anything...
/Mike
Your database needs YOU!
http://sourceforge.net/projects/firebird
IB-Architect would be the more probable list to find someone that knows, if
even partially, this code.
Preconditions: debug build with DEV_BUILD macro defined.
SELECT DISTINCT RDB$DESCRIPTION FROM RDB$RELATIONS;
This results in an triggered assert
assert (sort_key->skd_dtype != 0);
at (or about) line 4287 in jrd/opt.c.
Obviously this code have never been run, why I can't verify the the
validity of the assert. On the other hand, it would seem as it is trying to
use a blob as sort-key, why the assert possibly is correct, just a "little"
too deep in the call-stack to be of *any* help, it just aborts the server.
I've backtracked it to OPT_compile() (jrd/opt.c,610) where it uses a local
'project' variable as argument to gen_sort, but from this point I'm
clueless. It doesn't exactly help that everything seems to be logically
inheriting a struct "blk", that is used by pointers in nesting levels that
would make a lisp programmer cry. To try to parse these at runtime (using
the debugger) is not a walk in the park.
I've been at this now for what seems forever, and really don't have come any
closer to what really happens. If anyone get an idea, anything...
/Mike
Your database needs YOU!
http://sourceforge.net/projects/firebird