Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FB3][AV] Crash when create an UDF with "RETURNS PARAMETER pos_number" [CORE4059] #4387

Closed
firebird-automations opened this issue Mar 6, 2013 · 4 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @ibprovider

FB 3.0.0.30247

SQL: DECLARE EXTERNAL FUNCTION UDF_DUMMY2_RPN_1 smallint, integer, float, double precision RETURNS PARAMETER 1 ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';

Stack:
engine12.dll!NestConstJrd::dsql\_fld\::operator Jrd::dsql_fld *() Строка 48 + 0x11 байт C++
> engine12.dll!Jrd::CreateAlterFunctionNode::dsqlPass(Jrd::DsqlCompilerScratch * dsqlScratch=0x020c0074) Строка 11209 + 0x15 байт C++
engine12.dll!Jrd::Node::doDsqlPassJrd::DdlNode\(Jrd::DsqlCompilerScratch * dsqlScratch=0x020c0074, NestConstJrd::DdlNode\ & node={...}) Строка 133 + 0x1e байт C++
engine12.dll!Jrd::DsqlDdlRequest::dsqlPass(Jrd::thread_db * tdbb=0x0145effc, Jrd::DsqlCompilerScratch * scratch=0x020c0074, ntrace_result_t * traceResult=0x0145eb04) Строка 878 + 0x13 байт C++
engine12.dll!prepareStatement(Jrd::thread_db * tdbb=0x0145effc, Jrd::dsql_dbb * database=0x02060020, Jrd::jrd_tra * transaction=0x01ff02c8, unsigned long textLength=151, const char * text=0x0227b9a0, unsigned short clientDialect=1, unsigned short parserVersion=2, bool isInternalRequest=false) Строка 1450 + 0x1d байт C++
engine12.dll!prepareRequest(Jrd::thread_db * tdbb=0x0145effc, Jrd::dsql_dbb * database=0x02060020, Jrd::jrd_tra * transaction=0x01ff02c8, unsigned long textLength=151, const char * text=0x0227b9a0, unsigned short clientDialect=1, unsigned short parserVersion=2, bool isInternalRequest=false) Строка 1322 + 0x28 байт C++
engine12.dll!DSQL_prepare(Jrd::thread_db * tdbb=0x0145effc, Jrd::Attachment * attachment=0x02080020, Jrd::jrd_tra * transaction=0x01ff02c8, unsigned long length=151, const char * string=0x0227b9a0, unsigned short dialect=1, Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * items=0x0145ef8c, Firebird::Array<unsigned char,Firebird::EmptyStorage<unsigned char> > * buffer=0x0145ef74, bool isInternalRequest=false) Строка 373 + 0x28 байт C++
engine12.dll!Jrd::JAttachment::prepare(Firebird::IStatus * user_status=0x0145f2a4, Firebird::ITransaction * apiTra=0x00c2ce34, unsigned int stmtLength=151, const char * sqlStmt=0x0227b9a0, unsigned int dialect=12, unsigned int flags=71) Строка 4512 + 0x56 байт C++
fbclient.dll!Why::YAttachment::prepare(Firebird::IStatus * status=0x0145f2a4, Firebird::ITransaction * transaction=0x00804f50, unsigned int stmtLength=151, const char * sqlStmt=0x0227b9a0, unsigned int dialect=12, unsigned int flags=71) Строка 4480 + 0x44 байт C++
firebird.exe!rem_port::prepare_statement(p_sqlst * prepareL=0x00832e68, packet * sendL=0x00832970) Строка 3876 + 0x5c байт C++
firebird.exe!process_packet(rem_port * port=0x00832308, packet * sendL=0x00832970, packet * receive=0x00832c64, rem_port * * result=0x0145fea0) Строка 4179 C++
firebird.exe!loopThread(void * __formal=0x0000003a) Строка 5675 + 0x4f байт C++
firebird.exe!`anonymous namespace'::ThreadArgs::run() Строка 73 + 0x1f байт C++
firebird.exe!threadStart(void * arg=0x0083157c) Строка 89 C++

Local variable
- this 0x020c0810 {name={...} create=true alter=false ...} Jrd::CreateAlterFunctionNode * const
+ Jrd::DdlNode {...} Jrd::DdlNode
+ name {data=0x020c0820 "UDF_DUMMY2_RPN_1" count=16 } Firebird::MetaName
create true bool
alter false bool
+ external {ptr=0x020c1448 } NestConstJrd::ExternalClause\
deterministic false bool
- parameters {count=4 capacity=4 data=0x020c0e64 } Firebird::Array<NestConstJrd::ParameterClause\,Firebird::EmptyStorage<NestConstJrd::ParameterClause\ > >
+ Firebird::EmptyStorage<NestConstJrd::ParameterClause\ > {...} Firebird::EmptyStorage<NestConstJrd::ParameterClause\ >
count 4 unsigned int
capacity 4 unsigned int
+ data 0x020c0e64 {ptr=0x020c0a78 } NestConstJrd::ParameterClause\ *
+ returnType {ptr=0x00000000 } NestConstJrd::ParameterClause\
+ localDeclList {ptr=0x00000000 } NestConstJrd::CompoundStmtNode\
+ source {...} Firebird::StringBaseFirebird::StringComparator\
+ body {ptr=0x00000000 } NestConstJrd::StmtNode\
compiled false bool
invalid false bool
+ package {data=0x020c08a4 "" count=0 } Firebird::MetaName
+ packageOwner {...} Firebird::StringBaseFirebird::StringComparator\
privateScope false bool
udfReturnPos 1 long

@firebird-automations
Copy link
Collaborator Author

Commented by: @AlexPeshkoff

Not reproduced with current trunk. Can you recheck - may be it's gone due to some other fix?

@firebird-automations
Copy link
Collaborator Author

Commented by: @ibprovider

Andriano already fixed this bug.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Cannot Reproduce [ 5 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant