Crash on AddRecord

Ruslan Zasukhin ruslan_zasukhin at valentina-db.com
Fri Apr 20 14:30:40 CDT 2012


On 4/20/12 4:24 PM, "Francois Van Lerberghe" <fvanlerberghe at freegates.be>
wrote:

Hi Francois, 

Crash logs show crash neear to ENode_Func_Locate

This means something with LOCATE() function happens.
You have some METHOD which this function.

Also not clear why CURSOR, which you going to use for AddRcords()
Contains a METHOD field, which is read only.

Please check this METHOD and try remove it from cursor ..

If this helps let us know.
Anyway not good that in crashes in such case also.
READ ONLY method should just do nothing on AddRecord()
Even if you specify them in cursor ... Just no sense


> Could you help me with a crash I have when I issue the command
>     newRecID = myVCursor.AddRecord
> 
> The crash occur with V4RB 4.8, 4.9 and 5
> The crash does NOT occur with V4RB 4.3
> 
> I don¹t know where I can search to solve this crash.
> 
> The cursor is construct with the parameters :
>     myVCursor = myDB.SQLselect( theQuery,
>                                         EVCursorLocation.kServerSide,
>                                         EVLockType.kNoLocks,
>                                         EVCursorDirection.kRandom)
> followed by
>     myVCursor.SetBlank(EVValueAccess.forAdd)
> 
> myDB is a local Database (no server)
> The diagnose don¹t show me any problem
> 
> Tested on a Mac OS 10.6.6, not tested on Windows.
> 
> The relevant part (I think) of the crashLog is the following
> 
> Exception Type:  EXC_BAD_ACCESS (SIGBUS)
> Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
> ...
> 0   libicucore.A.dylib                0x95758c71 ucol_getMaxExpansion + 90
> 1   libicucore.A.dylib                0x95760679 usearch_getOffset + 1119
> 2   libvkernel_fat_release.dylib      0x191eafc2
> fbl::ENode_Func_Locate::AssignPattern(unsigned short const*, unsigned int) +
> 48
> 3   libvkernel_fat_release.dylib      0x191ed2ce
> fbl::ENode_Func_Locate::long_val(unsigned int) + 400
> 4   libvkernel_fat_release.dylib      0x191eb03a
> fbl::ENode_Func_Locate::llong_val(unsigned int) + 24
> 5   libvkernel_fat_release.dylib      0x19414011
> fbl::AssignToValue(fbl::smart_ptr<fbl::I_Value>, fbl::smart_ptr<fbl::I_ENode>,
> unsigned int) + 203
> 6   libvkernel_fat_release.dylib      0x191ba8a5
> fbl::Method_SQL::Evaluate(unsigned int, fbl::smart_ptr<fbl::I_Value>) + 221
> 7   libvkernel_fat_release.dylib      0x19279df7
> fbl::policyMethodYes::DoMethod(fbl::FldStorage*, unsigned int, fbl::I_Value*)
> + 109
> 8   libvkernel_fat_release.dylib      0x1927fec0
> fbl::FldStorageMaster_T<fbl::policyFileNo, fbl::policyNullNo,
> fbl::policyMethodYes>::ReadValue(unsigned int, fbl::smart_ptr<fbl::I_Value>) +
> 62
> 9   libvkernel_fat_release.dylib      0x19258a42
> fbl::Field_Imp::ReadValue(unsigned int) + 60
> 10  libvkernel_fat_release.dylib      0x192ad861
> fbl::Table::ReEvaluateAllMethods(unsigned int) + 101
> 11  libvkernel_fat_release.dylib      0x192ad936
> fbl::Table::AddRecord_WithOut_Triggers_ex() + 156
> 12  libvkernel_fat_release.dylib      0x192acc0b
> fbl::Table::AddRecord_WithOut_OnEachStatement_Triggers_ex() + 187
> 13  libvkernel_fat_release.dylib      0x192acdfd fbl::Table::AddRecord() + 461
> 14  libvkernel_fat_release.dylib      0x192b60af
> fbl::Table_Indirect::AddRecord() + 229
> 15  libvkernel_fat_release.dylib      0x192c5b30
> fbl::vsql::Cursor::AddRecord() + 258
> 16  ..._macho_ub_4_8_1.rbx_0.dylib    0x04d44c0c
> Cursor_AddRecord(REALobjectStruct*) + 114

-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list