#1 2023-07-13 18:36:41

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Some test fail on mormot2test Win64 - Win32 no failures

Hi there,
I just downloaded mormot2 and launched mormot2test, with both Win32 and Win64 platforms.
Win32 compiles without errors and runs all test with no failures.
Win64 compiles without errors but shows some failures, both in Debug and Release mode.
I am using Delphi 10 Seattle Version 23.0.21418.4207

This is where in the output the Debug version starts to show exceptions:

...
2.2. Sqlite file:
  - Database direct access: 22,291 assertions passed  90.81ms
  - Virtual table direct access: 12 assertions passed  1.91ms
  - TOrmTableJson: 174,130 assertions passed  88.68ms
! Sqlite file - TRestClientDB
! Exception OS EAccessViolation at cfd123: 2023-07-13 18:06:48 []
! Sqlite file - Regexp function
! Exception ESqlite3Exception at 6952ac: 2023-07-13 18:06:48 [Error SQLITE_NOTADB (26) [DBOpen] using 3.41.0 with aDB=nil]
!  - TRecordVersion: 18,004 / 20,060 FAILED  66.42ms
  Total failed: 19,882 / 218,624  - Sqlite file FAILED  291.53ms
...

and these are the first lines of the "mormot2tests 20230713 200648.log" file it produces:

D:\sviluppo\tools\mORMot2\test\Win64\Debug\bin\mormot2tests.exe 2.1.5650 (2023-07-13 19:51:15)
Host=FUJITSU-ESPRIMO User=mirko CPU=8xIntel(R)Core(TM)i7-6700CPU@3.40GHz8MBcache(x64)*9-6-24067:FFFBEBBFFFFBFA7FBF6F9C0200000000002E009C OS=11.1=6.1.7601 Wow64=0 Freq=1000000
Environment variables=...
TSynLog 2.1.5650 2023-07-13T18:06:48

0000000000000001  ! EXCOS EAccessViolation (c0000005) [Main] at cb7e1f
00000000000004C0  ! EXC   EAccessViolation {Message:"Access violation at address 0000000000CB7E1F in module 'mormot2tests.exe'. Read of address FFFFFFFFFFFFFFFF"} [Main] at cb7e1f
0000000000000515  ! fail  #25 
0000000000000540  ! fail  #26 
0000000000000543  ! fail  #27 
0000000000000545  ! fail  #28 
...

If you need more details I will provide them.

Thank you,
Mirco

Offline

#2 2023-07-13 20:55:48

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

Re: Some test fail on mormot2test Win64 - Win32 no failures

I don't have Delphi 10 Seatle.

But I just tested with Delphi 10 Rio with no issue:
https://gist.github.com/synopse/cfc83f6 … a23832cd17

Please enable detailed map file generation: the stack trace should appear in the logs.
Which may help find out what is wrong.

If you are running within a VM ensure you don't run the tests from a virtual/shared folder, but from a "real" drive like C:

Online

#3 2023-07-14 13:37:05

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Re: Some test fail on mormot2test Win64 - Win32 no failures

I repeated the test with detailed map enabled.
How can I show it to you? It's over 50 MB
I don't have the experience to use map file productively.
Or just tell me how to identify the problem with it.

These are the first lines:

D:\sviluppo\tools\mORMot2\test\Win64\Debug\bin\mormot2tests.exe 2.1.5650 (2023-07-14 12:40:37)
Host=FUJITSU-ESPRIMO User=mirko CPU=8xIntel(R)Core(TM)i7-6700CPU@3.40GHz8MBcache(x64)*9-6-24067:FFFBEBBFFFFBFA7FBF6F9C0200000000002E009C OS=11.1=6.1.7601 Wow64=0 Freq=1000000
Environment variables=....
TSynLog 2.1.5650 2023-07-14T10:43:32

0000000000000000  ! EXCOS EAccessViolation (c0000005) [Main] at cb7e1f mormot.db.raw.sqlite3.static.pas ..sqlite3VdbeExec (1276)
0000000000013D89  ! EXC   EAccessViolation {Message:"Access violation at address 0000000000CB7E1F in module 'mormot2tests.exe'. Read of address FFFFFFFFFFFFFFFF"} [Main] at cb7e1f mormot.db.raw.sqlite3.static.pas ..sqlite3VdbeExec (1276)
0000000000013DD7  ! fail  #25  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1563) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
0000000000013E04  ! fail  #26  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1565) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
0000000000013E0A  ! fail  #27  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1566) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
0000000000013E0D  ! fail  #28  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1567) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
0000000000013E10  ! fail  #29  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1568) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
0000000000013E17  ! fail  #30  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1569) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)


I really hope the problem doesn't depend on Delphi version, I'm afraid it would be a nightmare.

Mirco

Offline

#4 2023-07-14 17:24:53

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

Re: Some test fail on mormot2test Win64 - Win32 no failures

The first error is to be taken into account.
It means that the SQLite3 layer has a problem.

Did you get the latest static files from our link?

Online

#5 2023-07-14 17:48:24

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Re: Some test fail on mormot2test Win64 - Win32 no failures

Offline

#6 2023-07-15 07:16:50

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

Re: Some test fail on mormot2test Win64 - Win32 no failures

Are you running the tests on the C: drive ?

Does anyone else have Delphi 10 Seattle, and also has troubles with the tests?
(I am not able to reproduce it with Rio nor XE8)

Online

#7 2023-07-15 12:09:34

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Re: Some test fail on mormot2test Win64 - Win32 no failures

I ran the former on D: drive

Trying on C: the result is a bit different:

C:\tmp\mormot\mormot2tests.exe 2.1.5650 (2023-07-14 12:40:37)
Host=FUJITSU-ESPRIMO User=mirko CPU=8xIntel(R)Core(TM)i7-6700CPU@3.40GHz8MBcache(x64)*9-6-24067:FFFBEBBFFFFBFA7FBF6F9C0200000000002E009C OS=11.1=6.1.7601 Wow64=0 Freq=1000000
Environment variables=...
TSynLog 2.1.5650 2023-07-15T10:44:05

0000000000000001  ! EXCOS EExternalException (06ba) [Main] at 07fefd0cb87d
000000000000311D  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000000349E  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000000050BC  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000000099E0  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000009DA7  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000063099  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000006391A  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000069FCB  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000006A83A  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000011816B  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000118650  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001190C3  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000119556  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000015B1D6  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000015B82D  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000015C37E  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000015C9AE  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001A1930  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001A2188  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001A317B  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001A39F0  # EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001E6C33  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001E7155  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001E7C31  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000001E8112  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
00000000002278E3  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000227F63  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000228A16  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
0000000000228F58  " EXCOS EExternalException (06ba) [] at 07fefd0cb87d
000000000107B520  ! EXCOS EAccessViolation (c0000005) [Main] at cb7e1f mormot.db.raw.sqlite3.static.pas ..sqlite3VdbeExec (1276)
000000000107B5A1  ! EXC   EAccessViolation {Message:"Access violation at address 0000000000CB7E1F in module 'mormot2tests.exe'. Read of address FFFFFFFFFFFFFFFF"} [Main] at cb7e1f mormot.db.raw.sqlite3.static.pas ..sqlite3VdbeExec (1276)
000000000107B5C9  ! fail  #25  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1563) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
000000000107B5EC  ! fail  #26  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1565) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
000000000107B5F1  ! fail  #27  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1566) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
000000000107B5F5  ! fail  #28  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1567) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
000000000107B5F8  ! fail  #29  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1568) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)
000000000107B5FF  ! fail  #30  mormot.core.log.pas TSynLog.DebuggerNotify (5113) mormot.core.test.pas TSynTests.DoLog (1107) mormot.core.test.pas TSynTestCase.TestFailed (962) test.orm.sqlite3.pas TTestSQLite3Engine._TRestClientDB (1569) mormot.core.test.pas TSynTests.Run (1205) mormot2tests.dpr TIntegrationTests.Run (110) mormot.core.test.pas TSynTests.RunAsConsole (1428) mormot2tests.dpr  (160)


Both C: and D: are SSD drives from SAMSUNG.

C: Drive: Samsung PM871 256GB SATA III
D: Drive: Samsung SSD 840 EVO 250GB SATA III

Could it be a matter of drivers (access by a 64 bit app different from a 32 bit one)?

Mirco

Offline

#8 2023-07-17 06:44:07

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

Re: Some test fail on mormot2test Win64 - Win32 no failures

My guess is that it is a compiler issue.
Did you install all Seatlle hotfixes, e.g. http://downloads.embarcadero.com/item/30428 ?

Try with another version of Delphi.

Online

#9 2023-07-17 07:20:08

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 392

Re: Some test fail on mormot2test Win64 - Win32 no failures

With Delphi 11.3, last commit, it runs without problem, inside IDE and standalone both for win32 and win64.
In the past, I had such a problem with win64 when the tests run with debugging inside IDE.

Offline

#10 2023-07-18 10:11:46

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Re: Some test fail on mormot2test Win64 - Win32 no failures

I installed all the hotfixes (the latest was November 2016) but the problem remains.
On a new machine I will install the latest version of Delphi and try with it.

Thank you anyway,
Mirco

Offline

#11 2023-09-30 13:06:38

mirmalag
Member
Registered: 2023-07-13
Posts: 6

Re: Some test fail on mormot2test Win64 - Win32 no failures

I confirm the with Delphi 11.3 the problem is gone.
I don't know about the other Delphi versions since Seattle, it seems here that they are good since 10.3

Keep up the good work,
Mirco

Offline

Board footer

Powered by FluxBB