Access violation TUniQuery

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
alex0603
Posts: 1
Joined: Fri 03 Apr 2015 11:40

Access violation TUniQuery

Post by alex0603 » Fri 03 Apr 2015 12:12

Hello,

I`m using UniDAC 5.5.12 on my high load server (MYSQL), project works fine on Delphi 7 few years. But I try to upgrade project on Delphi XE7 and have problems.
XE7 project work correct, but sometimes ( after 5-10 minutes of work ) raises strange exceptions.

I have a code:

Code: Select all

  FSQLQuery.SQL.Clear();
  FSQLQuery.SQL.Add('select * from `options`');
  FSQLQuery.SQL.Add('where `group_enabled`=1');
  FSQLQuery.Open();
First, I get this catched exception (line FSQLQuery.SQL.Clear()) : Access violation at address 0089374B in module 'server.exe'. Read of address 0000004C. Call stack for this exception:

Code: Select all

---------------------------------------------------------------------------------------------------------------------------------------
|Methods |Details|Stack   |Address |Module            |Offset  |Unit           |Class            |Procedure/Method         |Line      |
---------------------------------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=5380; Parent=3832; Priority=0                                                                                  |
|Class=TCustomThread; Name=[Unnamed thread] Kind: TThread. Thread function: MiscFunc.TCustomThread.Execute. Thread caller: DataCache.TDataCache.Create|
|DeadLock=0; Wait Chain=                                                                                                              |
|Comment=                                                                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------|
|7FFFFFFE|04     |00000000|0089374B|server.exe|0049374B|Data.DB        |TDataSet         |FreeFieldBuffers         |12886[1]  |
|00000020|04     |0A87FCEC|00892BDA|server.exe|00492BDA|Data.DB        |TDataSet         |CloseCursor              |12529[3]  |
|00000020|04     |0A87FCF4|00934137|server.exe|00534137|MemDS          |TMemDataSet      |CloseCursor              |1398[32]  |
|00000020|04     |0A87FD0C|00963AAC|server.exe|00563AAC|DBAccess       |TCustomDADataSet |CloseCursor              |6900[4]   |
|00000020|04     |0A87FD1C|009C35C3|server.exe|005C35C3|Uni            |TCustomUniDataSet|CloseCursor              |3055[2]   |
|00000020|04     |0A87FD40|00892ADE|server.exe|00492ADE|Data.DB        |TDataSet         |SetActive                |12484[22] |
|00000020|04     |0A87FD50|009636C5|server.exe|005636C5|DBAccess       |TCustomDADataSet |SetActive                |6795[4]   |
|00000020|04     |0A87FD60|008928C1|server.exe|004928C1|Data.DB        |TDataSet         |Close                    |12435[1]  |
|00000020|04     |0A87FD68|0097783C|server.exe|0057783C|DBAccess       |TCustomDASQL     |ProcessSQLChanged        |14003[7]  |
|00000020|04     |0A87FD7C|009777EE|server.exe|005777EE|DBAccess       |TCustomDASQL     |SQLChanged               |13990[1]  |
|00000020|04     |0A87FD8C|004E3E05|server.exe|000E3E05|System.Classes |TStringList      |Changed                  |6591[2]   |
|00000020|04     |0A87FD94|004E3ED8|server.exe|000E3ED8|System.Classes |TStringList      |Clear                    |6625[21]  |
|00000020|04     |0A87FDB8|009D666E|server.exe|005D666E|DataCache      |TDataCache       |ReadGroups               |652[36]   |
|00000020|04     |0A87FE4C|009D5036|server.exe|005D5036|DataCache      |TDataCache       |FFlushThreadBeforeExecute|212[57]   |
|00000020|04     |0A87FEB4|00429574|server.exe|00029574|EMemLeaks      |                 |CheckOurPointer          |3053[36]  |
|00000020|04     |0A87FEEC|00813DCF|server.exe|00413DCF|MiscFunc       |TCustomThread    |Execute                  |1490[2]   |
|00000020|04     |0A87FEF0|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|04     |0A87FEFC|004F4755|server.exe|000F4755|System.Classes |                 |ThreadProc               |14161[21] |
|00000020|04     |0A87FF20|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|04     |0A87FF78|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|03     |0A87FF90|76CF919D|kernel32.dll      |0001919D|KERNEL32       |                 |BaseThreadInitThunk      |          |
|7FFFFFFE|04     |00000000|009D4CDC|server.exe|005D4CDC|DataCache      |TDataCache       |Create                   |131[16]   |
---------------------------------------------------------------------------------------------------------------------------------------
And then I get this exception ( line FSQLQuery.SQL.Add('select * from `options`') ): Access violation at address 0089374B in module 'server.exe'. Read of address 0000004C. Call stack for this exception:

Code: Select all

---------------------------------------------------------------------------------------------------------------------------------------
|Methods |Details|Stack   |Address |Module            |Offset  |Unit           |Class            |Procedure/Method         |Line      |
---------------------------------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=5380; Parent=3832; Priority=0                                                                                  |
|Class=TCustomThread; Name=[Unnamed thread] Kind: TThread. Thread function: MiscFunc.TCustomThread.Execute. Thread caller: DataCache.TDataCache.Create|
|DeadLock=0; Wait Chain=                                                                                                              |
|Comment=                                                                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------|
|7FFFFFFE|04     |00000000|0040B928|server.exe|0000B928|System         |                 |_UStrAsg                 |24866[3]  |
|00000020|04     |0A87FC14|00881E0D|server.exe|00481E0D|Data.DB        |TField           |GetDisplayName           |5050[2]   |
|00000020|04     |0A87FC20|00893577|server.exe|00493577|Data.DB        |                 |DoBindFields             |12845[22] |
|00000020|04     |0A87FC6C|0089371C|server.exe|0049371C|Data.DB        |TDataSet         |BindFields               |12879[4]  |
|00000020|04     |0A87FC80|00933B32|server.exe|00533B32|MemDS          |TMemDataSet      |InternalOpen             |1262[36]  |
|00000020|04     |0A87FCAC|0096A643|server.exe|0056A643|DBAccess       |TCustomDADataSet |InternalOpen             |9300[12]  |
|00000020|04     |0A87FCDC|00892B0A|server.exe|00492B0A|Data.DB        |TDataSet         |DoInternalOpen           |12493[2]  |
|00000020|04     |0A87FCE4|00892BBA|server.exe|00492BBA|Data.DB        |TDataSet         |OpenCursor               |12522[3]  |
|00000020|04     |0A87FCE8|00933F42|server.exe|00533F42|MemDS          |TMemDataSet      |OpenCursor               |1348[1]   |
|00000020|04     |0A87FCF8|009638F3|server.exe|005638F3|DBAccess       |TCustomDADataSet |OpenCursor               |6855[45]  |
|00000020|04     |0A87FD5C|009C3581|server.exe|005C3581|Uni            |TCustomUniDataSet|OpenCursor               |3041[3]   |
|00000020|04     |0A87FD78|004E3E05|server.exe|000E3E05|System.Classes |TStringList      |Changed                  |6591[2]   |
|00000020|04     |0A87FD84|00892A71|server.exe|00492A71|Data.DB        |TDataSet         |SetActive                |12474[12] |
|00000020|04     |0A87FDA0|009636C5|server.exe|005636C5|DBAccess       |TCustomDADataSet |SetActive                |6795[4]   |
|00000020|04     |0A87FDB0|008928AD|server.exe|004928AD|Data.DB        |TDataSet         |Open                     |12430[1]  |
|00000020|04     |0A87FDB8|009D66D2|server.exe|005D66D2|DataCache      |TDataCache       |ReadGroups               |655[39]   |
|00000020|04     |0A87FE4C|009D5036|server.exe|005D5036|DataCache      |TDataCache       |FFlushThreadBeforeExecute|212[57]   |
|00000020|04     |0A87FE54|009D5065|server.exe|005D5065|DataCache      |TDataCache       |FFlushThreadBeforeExecute|219[64]   |
|00000020|04     |0A87FEEC|00813DCF|server.exe|00413DCF|MiscFunc       |TCustomThread    |Execute                  |1490[2]   |
|00000020|04     |0A87FEF0|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|04     |0A87FEFC|004F4755|server.exe|000F4755|System.Classes |                 |ThreadProc               |14161[21] |
|00000020|04     |0A87FF20|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|04     |0A87FF78|005A43DD|server.exe|001A43DD|EThreadsManager|                 |ThreadDataUnlock         |1315[2]   |
|00000020|03     |0A87FF90|76CF919D|kernel32.dll      |0001919D|KERNEL32       |                 |BaseThreadInitThunk      |          |
|7FFFFFFE|04     |00000000|009D4CDC|server.exe|005D4CDC|DataCache      |TDataCache       |Create                   |131[16]   |
---------------------------------------------------------------------------------------------------------------------------------------
After this exceptions, FSQLQuery does not work, constatntly raises exceptions.

On local computer I can not reproduce error, only on my work server.

Please help.

P.S.: on delphi 7 this project works without any problems.

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Access violation TUniQuery

Post by ViktorV » Fri 03 Apr 2015 12:36

Unfortunately, we can't reproduce this problem. To investigate this behavior of UniDAC, please send a small sample to demonstrate the issue to viktorv*devart*com and give us access to your server.

Post Reply