#1 2012-04-01 13:30:40

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Bug in MainDemo Sample

dear every body

i just compile and run the MainDemo sample under delphi 7 and win 7 ultimate.
then i just create new record then error occured like screenshoot below:

Synopse_SQLite3_Framework_demo.png

Synopse_SQLite3_Framework_demo.png

DBali_Pedia_ProjectsmORMotSQLi.png

i don't know why. can any one help?

thanks.
regard.

Offline

#2 2012-04-01 14:36:15

Junior/RO
Member
Registered: 2011-05-13
Posts: 207

Re: Bug in MainDemo Sample

Try update your sqlite3*.obj, Armand updated sqlite engine some days ago.

Offline

#3 2012-04-01 16:33:41

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

@Junior/RO:
I've done it. This bug has been there since version 1.15.
I had already been posted in this forum, and I'll have to wait for another user who will report it too, but until now no one did.
I think this only happens on my computer.
I do not know, what information is required from my computer to be able to overcome this problem, while I have not been able to use TSynLog.

I ever use madExcept. if it is indeed useful, I will try to use it, and report back here.

Offline

#4 2012-04-01 18:54:12

TLama
Member
Registered: 2012-03-29
Posts: 11

Re: Bug in MainDemo Sample

@coblongpamor:
> I'll have to wait for another user who will report it too
You did http://synopse.info/forum/viewtopic.php?id=660 :-)
The same in Delphi 2009

Last edited by TLama (2012-04-01 19:59:00)

Offline

#5 2012-04-02 04:57:29

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

I've compiled the main demo in Delphi 7 under Windows 7 (this is my main dev platform), and there is no problem.

You may have some deprecated files around in your search path.

I can't access to the screenshot (corporate firewall policy).

Could you step into the debugger and find the Delphi source code line which fails running when compiled with Delphi 2009?

You can also compile TestSQL3.dpr regression test, enabling the logs in SQLite3SelfTests.pas:

procedure SQLite3ConsoleTests;
begin
  AllocConsole;
  // will create around 280 MB of log file, if executed
  if TRUE then // this will ENABLE LOGs
  with TSQLLog.Family do begin
    Level := LOG_VERBOSE;
  ....

Then extract and post here the block where the GPF occurs.

Offline

#6 2012-04-02 07:55:28

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

heare is the result when i run TestSQL3.Dpr with Logs Enabled.

  Synopse mORMot Framework Automated tests
  ------------------------------------------


1. Synopse libraries

 1.1. Low level common:
  - System copy record: 22 assertions passed  180us
  - TDynArray: 519,427 assertions passed  170.73ms
  - TDynArrayHashed: 1,200,023 assertions passed  162.34ms
  - Fast string compare: 7 assertions passed  109us
  - IdemPropName: 10 assertions passed  139us
  - Url encoding: 105 assertions passed  1.02ms
  - IsMatch: 599 assertions passed  243us
  - Soundex: 29 assertions passed  102us
  - Numerical conversions: 776,256 assertions passed  250.67ms
  - Curr64: 20,039 assertions passed  1.77ms
  - CamelCase: 5 assertions passed  89us
  - Bits: 4,614 assertions passed  123us
  - Ini files: 7,004 assertions passed  34.78ms
  - Unicode - Utf8: 61,082 assertions passed  1.03s
  - Iso8601 date and time: 24,000 assertions passed  4.84ms
  - Url decoding: 1,100 assertions passed  339us
  - TSynTable: 873 assertions passed  2.91ms
  - TSynCache: 404 assertions passed  793us
  - TSynFilter: 1,005 assertions passed  2.55ms
  - TSynValidate: 677 assertions passed  737us
  - TSynLogFile: 42 assertions passed  695us
  Total failed: 0 / 2,617,323  - Low level common PASSED  1.67s

 1.2. Low level types:
  - RTTI: 34 assertions passed  622us
  - Url encoding: 200 assertions passed  706us
  - Encode decode JSON: 127,190 assertions passed  89.82ms
  Total failed: 0 / 127,424  - Low level types PASSED  92.25ms

 1.3. Big table:
  - TSynBigTable: 19,250 assertions passed  176.64ms
  - TSynBigTableString: 16,228 assertions passed  36.09ms
  - TSynBigTableMetaData: 384,060 assertions passed  1.16s
  - TSynBigTableRecord: 452,185 assertions passed  2.82s
  Total failed: 0 / 871,723  - Big table PASSED  4.20s

 1.4. Cryptographic routines:
  - Adler32: 1 assertion passed  714us
  - MD5: 1 assertion passed  660us
  - SHA1: 5 assertions passed  642us
  - SHA256: 5 assertions passed  683us
  - AES256: 6,372 assertions passed  175.72ms
  - Base64: 11,994 assertions passed  82.74ms
  Total failed: 0 / 18,378  - Cryptographic routines PASSED  262.66ms

 1.5. Compression:
  - In memory compression: 12 assertions passed  197.91ms
  - Gzip format: 19 assertions passed  385.17ms
  - Zip format: 36 assertions passed  679.98ms
  - SynLZO: 3,006 assertions passed  86.19ms
  - SynLZ: 13,016 assertions passed  291.49ms
  Total failed: 0 / 16,089  - Compression PASSED  1.64s

 1.6. Synopse PDF:
  - TPdfDocument: 4 assertions passed  45.22ms
  - TPdfDocumentGDI: 6 assertions passed  9.95ms
  Total failed: 0 / 10  - Synopse PDF PASSED  56.09ms


2. mORMot

 2.1. Basic classes:
  - TSQLRecord: 47 assertions passed  627us
  - TSQLRecordSigned: 200 assertions passed  5.96ms
  - TSQLModel: 3 assertions passed  687us
  Total failed: 0 / 250  - Basic classes PASSED  8.20ms

 2.2. File based:
  - Database direct access: 10,136 assertions passed  2.02s
  - Virtual table direct access: 12 assertions passed  183.67ms
  - TSQLTableJSON: 19,030 assertions passed  453.54ms

! Exception ECommunicationException raised with messsage:
The system cannot find the file specifiedct to server "Test"


Synopse framework used: 1.16
SQlite3 engine used: 3.7.11
Generated with: Delphi 7 compiler

Time elapsed for all tests: 155.96s
Tests performed at 02/04/2012 15:12:59

Total assertions failed for all test suits:  0 / 3,651,197

! Some tests FAILED: please correct the code.
Done - Press ENTER to Exit

here is the line of SQLite3Commons unit (line 17908)

if Pipe=Invalid_Handle_Value then begin // server must exist
    if (aModel<>nil) and (aModel.Owner=self) then
      aModel.Free; // avoid memory leak
    raise ECommunicationException.CreateFmt(
      '%s can''t connect to server "%s"'#13'via "%s":'#13'%s',
      [ClassName,ApplicationName,fPipeName,SysErrorMessage(GetLastError)]);
  end;

this is exception message extracted from Log file

D:\Bali Pedia Projects\mORMot\SQLite3\TestSQL3.exe 0.0.0.0 (2012-04-02 15:10:22)
Host=localhost User=user CPU=2*0-6-5894 OS=6.2=6.0.6002 Wow64=0 Freq=2078154
TSQLLog 1.16 2012-04-02T15:10:23
....
....
0000000013474E0D EXC   	ECommunicationException ("TSQLRestClientURINamedPipe can't connect to server \"Test\"\rvia \"\\\\.\\pipe\\Sqlite3_Test\":\rThe system cannot find the file specified") at 004D4808  stack trace 00405969 00405A44 00402A9B 749CBB10 7642DCE2 00404EA7 76FD64B4 749CD211 0041DF5F 0041DC9B 0040446E 004D423B 0040621D 004D0B33 004EC9B4 00431D18 005158C5 00515BCD 7642ED6C 76FF377B 
00000000134AFB4D EXC   	ECommunicationException ("TSQLRestClientURINamedPipe can't connect to server \"Test\"\rvia \"\\\\.\\pipe\\Sqlite3_Test\":\rThe system cannot find the file specified") at 004D4808  stack trace 005158C5 00515BCD 7642ED6C 76FF377B 76FF374E 

but, this only occurs during the first run.
during the next run, all the tests passed.

thanks

Offline

#7 2012-04-02 08:14:06

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

You may have some deprecated files around in your search path.

my path hierarchy of the mORMot framework is

..\mORMot
		\SQLite3
		\Sample
				...
				\MainDemo
				...
		\LVCL
		\SynProject

       

and the search path of MainDemo Project is:

..\..\..\Lib\FastMM496\FastMM
..\..\SQLite3
..\..

thank again

Offline

#8 2012-04-02 08:17:09

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

@TLama
But, i think, this is not the same issue.

Offline

#9 2012-04-02 08:37:55

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

You seem to have the latest source code and .obj available, and your search path seems correct.

Sounds like a configuration issue to the named pipe access policy, when compiled with Delphi 2009.

It is very strange that it fails first, then that all tests passed later on.

It sounds like http://synopse.info/forum/viewtopic.php?id=177 which occurred in some configurations.

It is a random issue, which did not occur for me.

Could you try the changed set at http://synopse.info/forum/viewtopic.php?pid=996#p996
That is, put "nil" instead of security attributes:

 aPipe := CreateNamedPipe(pointer(fPipeName),
      PIPE_ACCESS_DUPLEX,
      PIPE_TYPE_BYTE or PIPE_READMODE_BYTE or PIPE_WAIT,
      PIPE_UNLIMITED_INSTANCES, 0, 0, 0, nil{@fPipeSecurityAttributes});

But there is something strange in the security handling of Windows for named pipes.

Offline

#10 2012-04-02 09:24:57

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

Where is the AV triggered?

From your test logs, you have included the latest .obj files (3.7.11).

Offline

#11 2012-04-02 10:17:25

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

i have change the @fPipeSecurityAttributes to nil, then run Test again, and all test passed.
then i set back @fPipeSecurityAttributes, then run test again, and all test passed.
i do that, more than one time.

then i open and run the MainDemo Project, then i try to edit record, then AV accured again,
without break on any line, just show the CPU process. pressing F9 key not help.

then i disable the

{.$define EXTRACTALLRESOURCES}

in FileMain.pas with compiled sucses.
but if i run the project, immediately EOSError class occured with message:

System Error. Code: 12029

and debuger break on end of procedure TWinHTTP.InternalSendRequest(..) in the SynCrtSock unit.

procedure TWinHTTP.InternalSendRequest(const aData: TSockData);
var L: integer;
begin
  L := length(aData);
  if not WinHttpSendRequest(fRequest, nil, 0, pointer(aData), L, L, 0) or
     not WinHttpReceiveResponse(fRequest,nil) then
    RaiseLastOSError;
end;

then i enabled it back

{$define EXTRACTALLRESOURCES}

and i error occored while compiling with message

Undeclared identifier: 'ExtractAllResources'

i've downloaded the latest version of SQLite3i18n unit.

Offline

#12 2012-04-02 11:20:37

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

You have to BUILD the project, not only COMPILE it, when you change a global conditional.

In case of an AV, close the CPU view, then press F7 or view the call stack. You'll find out why line made the error.

Offline

#13 2012-04-02 11:47:17

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

You have to BUILD the project, not only COMPILE it, when you change a global conditional.

i understand and i did it, but error as described above still happen;


In case of an AV, close the CPU view, then press F7 or view the call stack. You'll find out why line made the error.

Now, I can not run maindemo.dpr, because the error that occurred at the beginning, just as I described above.

I'll try to run another project.

Offline

#14 2012-04-02 12:42:05

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

Did you try defining PUREPASCAL in Synopse.inc or in your project Options conditional defines?

Offline

#15 2012-04-02 13:46:37

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

No. PUREPASCAL Conditional Define still still disable in synopse.inc.

Offline

#16 2012-04-02 13:48:10

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

So please try with PUREPASCAL conditional enabled for the whole project.

Offline

#17 2012-04-02 14:01:21

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

Yes, i also tried to enabling

{$define PUREPASCAL}

as you suggest.
but

System Error. Code 12029

still occured.

Offline

#18 2012-04-02 14:26:41

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

"System Error. Code 12029" sounds like a firewall issue for me.

You do not have the HTTP server working as expected.

Offline

#19 2012-04-02 14:35:56

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

ab wrote:

"System Error. Code 12029" sounds like a firewall issue for me.

You do not have the HTTP server working as expected.

is this because of antivirus? i use avg antivirus, i'll try to disable it.

But,
I just downloaded again all the files in the folder maindemo of the source code repository.
I put it in a new folder named maindemo1.
and the system error code 12029 does not appear anymore.
i just run, and then close immediately, not yet create a new data.

Offline

#20 2012-04-02 16:19:32

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

I just tried to add a new record on maindemo I just downloaded, there is no error message appears.
but the grid displays strange characters like this.

strange characters

then immediately I tried to add a new record again, and system error appears as follows:

system error. code 12002

and stop here, after pressing Ok button.

TWinHTTP.InternalSendRequest procedure (const ADATA: TSockData);
var L: integer;
begin
   L: = length (Adata);
   if not WinHttpSendRequest (fRequest, nil, 0, pointer (ADATA), L, L, 0) or
      not WinHttpReceiveResponse (fRequest, nil) then
     RaiseLastOSError;
end; //line break here

pressing the F8 key, arriving on this line (line 3810) in SynCrtSock

InternalCloseRequest;

I press and hold the F8 key, until the AV like this

debugger fault notification

pressing the F7, F8, F9, Shift + F7, Shift + F8, AV appears again and again.
so I press the Ctrl + F2.

Offline

#21 2012-04-03 06:10:48

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

I'm still unable to see your pictures (proxy blocking policy).

About code 12002, this is a HTTP Client-Server error (something like Server not responding).
So there is something wrong with your HTTP connection.

There is a problem with the current implementation of the grid display, when you have one or two rows only within.
I'll fix it ASAP.

Offline

#22 2012-04-03 07:13:35

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

ab wrote:

About code 12002, this is a HTTP Client-Server error (something like Server not responding).
So there is something wrong with your HTTP connection.

so, what must i do to fix it?

ab wrote:

There is a problem with the current implementation of the grid display, when you have one or two rows only within.
I'll fix it ASAP.

Thank you, i'll waiting for it.

Offline

#23 2012-04-04 06:03:47

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

ab wrote:

There is a problem with the current implementation of the grid display, when you have one or two rows only within.
I'll fix it ASAP.

while you improve the implementation of the grid view, please check it thoroughly.
because, when I test, the error does not only occur in one or two records, but sometimes it can be more than 2 records.
Also deleting record without a check mark, the data still appear, but if we press the refresh button.

deleting one or more record with check mark is still problematic.

thank you.

Offline

#24 2012-04-06 11:54:35

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

I've identified and fixed an issue of unhandled buffer in TSQLTableJSON.UpdateFrom().
This was the cause of unexpected characters in grid display, which may occur randomly (even with more than 2 records).
See http://synopse.info/fossil/info/fc65a0c9a2

I've also fixed the UI refresh issues on deletion.
See http://synopse.info/fossil/info/4c881e5bce

Offline

#25 2012-04-06 16:29:27

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

thank you. i'll try it.

Offline

#26 2012-04-07 00:07:24

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

so far, the AV and the odd character has not appeared again.
Thank you.

Offline

#27 2012-04-07 07:19:56

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

Good news.

I'm happy it helps.
big_smile

Offline

#28 2012-04-07 08:36:00

coblongpamor
Member
From: Bali-Indonesia
Registered: 2010-11-07
Posts: 130
Website

Re: Bug in MainDemo Sample

big_smile. i'm more happy than you about it.
thank you for this wonderful framework, and keep it open source. I'm obsessed with this framework, but UI is an important issue for me. although you have to include it, but it takes time for me to learn. slowly and with your support is very good, I'm sure I could master it later.
and of course I believe this framework will be more perfect

thank you....

Offline

#29 2014-07-15 10:04:59

Feng
Member
Registered: 2013-05-15
Posts: 28

Re: Bug in MainDemo Sample

Today failed to run TestSQL3, MainDemo also not working, TestSQL3 exception information is as follows:
--------------------------------------------------------------
2. mORMot

2.1. File based:

! Exception ESQLite3Exception raised with messsage:
!  unrecognized token: "'a鐚?, 1791, 1872);"
--------------------------------------------------------------

Offline

#30 2014-07-15 19:20:08

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Bug in MainDemo Sample

We were not able to reproduce the problem.

Both TestSQL3 and MainDemo works as expected on our side.

Are you sure your .obj are the latest available from http://synopse.info/files/sqlite3obj.7z ? Are you not mixing sources or obj?
Could you find out what's wrong? What is the call stack when the exception is triggered on your side? Which version of Delphi are you using?

Offline

Board footer

Powered by FluxBB