External engine trigger crashing server if table have computed field --------------------------------------------------------------------
Key: CORE-5972 URL: http://tracker.firebirdsql.org/browse/CORE-5972 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 4.0 Beta 1, 3.0.5 Reporter: Artyom Smirnov Reproduction steps (on master): 1. Create simple UDR trigger in examples/udr/Triggers.cpp and build it. FB_UDR_BEGIN_TRIGGER(dummy) FB_UDR_EXECUTE_TRIGGER { printf("test! \n"); } FB_UDR_END_TRIGGER 2. Execute it on table with computed field: create database 'localhost:/tmp/test_trig.fdb'; create table test(id int, comp int computed by (1)); create trigger dummy after insert on test external name 'udrcpp_example!dummy' engine udr; insert into test values(1); 3. Server will crash. Stacktrace: Thread 5 "firebird" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff0c04700 (LWP 15380)] __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:311 311 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt 6 #0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:311 #1 0x00007ffff4e62d82 in CVT_move_common (from=0x7ffff0c02440, to=0x7ffff0c02450, decSt=..., cb=0x7ffff47cc700) at /workspace/rdb/firebird_master/src/common/cvt.cpp:1508 #2 0x00007ffff4a85e45 in CVT_move (from=0x7ffff0c02440, to=0x7ffff0c02450, decSt=...) at /workspace/rdb/firebird_master/src/jrd/../jrd/cvt_proto.h:74 #3 0x00007ffff4b4d66f in MOV_move (tdbb=0x7ffff0c03580, from=0x7ffff0c02440, to=0x7ffff0c02450) at /workspace/rdb/firebird_master/src/jrd/mov.cpp:449 #4 0x00007ffff4977d9f in Jrd::ExtEngineManager::Trigger::setValues (this=0x7ffff4378c80, tdbb=0x7ffff0c03580, msgBuffer=..., rpb=0x7fffe8fe55f0) at /workspace/rdb/firebird_master/src/jrd/ExtEngineManager.cpp:983 #5 0x00007ffff49777e8 in Jrd::ExtEngineManager::Trigger::execute (this=0x7ffff4378c80, tdbb=0x7ffff0c03580, action=1, oldRpb=0x0, newRpb=0x7fffe8fe55f0) at /workspace/rdb/firebird_master/src/jrd/ExtEngineManager.cpp:914 (More stack frames follow...) (gdb) f 1 #1 0x00007ffff4e62d82 in CVT_move_common (from=0x7ffff0c02440, to=0x7ffff0c02450, decSt=..., cb=0x7ffff47cc700) at /workspace/rdb/firebird_master/src/common/cvt.cpp:1508 1508 memcpy(p, q, length); (gdb) p q $1 = (const UCHAR *) 0x0 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel