You are not logged in.
Hi Arnaud,
I was having this EAccessViolation with an older version, so I updated my copy of mORMot yesterday. While it's Ok on my Win7 64bit on a physical box, but the error still happens at least in two environments according to my tests:
1 - a win8 64bit in a virtual box.
2 - a Win7 32bit in a Virtual Box.
Additionally, another test was on another physical which runs Win 8.1 64bit and the same error happened.
I wish you can help. Thanks.
date/time : 2015-04-01, 15:10:27, 623ms
operating system : Windows 8 x64
processors : 2x Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
physical memory : 1246/2048 MB (free/total)
compiled with : Delphi XE4
callstack crc : $005eb437, $d7f9a897, $e910b5c5
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 774A753C in module 'ntdll.dll'. Write of address 00000010.
main thread ($598):
774a753c ntdll.dll RtlQueryPerformanceCounter
006c56f7 Program1.exe SynCommons 38120 TPrecisionTimer.Pause
00a4559b Program1.exe mORMotSQLite3 747 TSQLRestServerDB.GetAndPrepareStatementRelease
00a473ec Program1.exe mORMotSQLite3 1238 TSQLRestServerDB.MainEngineList
7749ddb6 ntdll.dll KiUserExceptionDispatcher
008243bb Program1.exe mORMot 33928 TSQLRestServer.EngineList
00813988 Program1.exe mORMot 28691 TSQLRest.ExecuteList
0081154f Program1.exe mORMot 27930 TSQLRest.MultiFieldValues
00809b2a Program1.exe mORMot 25575 TSQLRecord.CreateAndFillPrepare
00ba8d8c Program1.exe DataStoreClient 139 TDataStoreClient.LoadAllAccounts
......
00543c58 Program1.exe System.Classes StdWndProc
768493cc user32.dll DispatchMessageW
006898bf Program1.exe Vcl.Forms TApplication.ProcessMessage
00689902 Program1.exe Vcl.Forms TApplication.HandleMessage
00689c3d Program1.exe Vcl.Forms TApplication.Run
00e17b47 Program1.exe Program1 231 initialization
7701495b KERNEL32.DLL BaseThreadInitThunk
Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.
Offline
TSQLRestServerDB.PrepareStatement should have set fStatementTimer := @fStaticStatementTimer so fStatementTimer^.Pause should not trigger this error...
I was not able to reproduce the issue here.
Was there an exception during the SQL statement execution?
What is the executed SQL statement?
I've added some code to avoid such GPF if fStatementTimer=nil.
See http://synopse.info/fossil/info/5faf133f86
But more feedback is needed, so that we may understand why fStatementTime=nil in your case!
Offline
Hi Arnaud,
The latest revision works without this problem. Thanks!
The executed SQL is something like
TSQLAccount.CreateAndFillPrepare(Self, 'ORDER BY AccountType, UserName');
and I don't think there is anything special......
Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.
Offline