You are not logged in.
Hi, I need your help. I am working with new project implementing Mormot Server with Interfaced Based Method register with
var
aServer: TSQLRestServerDB;
...
aServer.ServiceRegister(TReservas, [TypeInfo(IReservas)], sicPerSession);
All is working OK except when close server. In that moment I receive Invalid Pointer Operation Error.
This is my log
20140507 08484027 ! info Server TSQLHttpServer(02FA6678) stopped by TSQLRestServerDB(00E95DB0)
20140507 08484027 ' trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6B20)) ThreadID=3724 ThreadCount=31
20140507 08484028 & trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6580)) ThreadID=604 ThreadCount=30
20140507 08484031 / trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6DF0)) ThreadID=4632 ThreadCount=17
20140507 08484032 8 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB74B0)) ThreadID=1552 ThreadCount=29
20140507 08484034 1 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB7390)) ThreadID=2572 ThreadCount=12
20140507 08484035 ; trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB70C0)) ThreadID=5032 ThreadCount=25
20140507 08484036 2 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB7420)) ThreadID=4736 ThreadCount=22
20140507 08484037 5 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB71E0)) ThreadID=1408 ThreadCount=11
20140507 08484038 @ trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB7300)) ThreadID=3660 ThreadCount=2
20140507 08484039 3 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6BB0)) ThreadID=4704 ThreadCount=19
20140507 08484040 , trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB7150)) ThreadID=2944 ThreadCount=7
20140507 08484041 % trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB68E0)) ThreadID=4932 ThreadCount=15
20140507 08484042 % + TSQLDBOracleConnection(00F41BD0).001068C0 SynDBOracle.TSQLDBOracleConnection.Disconnect (1717)
20140507 08484042 < trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6A00)) ThreadID=3684 ThreadCount=23
20140507 08484042 * trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6730)) ThreadID=1572 ThreadCount=26
20140507 08484042 0 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6C40)) ThreadID=4240 ThreadCount=27
20140507 08484042 ( trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB64F0)) ThreadID=4584 ThreadCount=28
20140507 08484042 = trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6970)) ThreadID=4644 ThreadCount=21
20140507 08484042 ? trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB67C0)) ThreadID=4088 ThreadCount=18
20140507 08484042 > trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB63D0)) ThreadID=3448 ThreadCount=20
20140507 08484042 + trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB66A0)) ThreadID=4772 ThreadCount=24
20140507 08484042 A trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6220)) ThreadID=3892 ThreadCount=14
20140507 08484042 - trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6E80)) ThreadID=4588 ThreadCount=6
20140507 08484042 9 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6CD0)) ThreadID=496 ThreadCount=4
20140507 08484042 : trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6850)) ThreadID=4564 ThreadCount=3
20140507 08484042 . trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6460)) ThreadID=5044 ThreadCount=5
20140507 08484042 " trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB62B0)) ThreadID=4296 ThreadCount=1
20140507 08484042 6 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6F10)) ThreadID=2288 ThreadCount=0
20140507 08484042 7 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6D60)) ThreadID=3520 ThreadCount=10
20140507 08484042 ) trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6A90)) ThreadID=1708 ThreadCount=13
20140507 08484042 $ trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6610)) ThreadID=4228 ThreadCount=8
20140507 08484042 # trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6340)) ThreadID=1624 ThreadCount=9
20140507 08484042 4 trace TSQLRestServerDB(00E95DB0).EndCurrentThread(THttpApiServer(00EB6FA0)) ThreadID=2064 ThreadCount=16
20140507 08484042 % - 00.003.782
20140507 08484216 A EXC EInvalidPointer ("Invalid pointer operation") at 00003925 System.TObject.FreeInstance stack trace API 00046294 SynCommons.SynRtlUnwind (37621) 00004386 System.@ExceptionHandler 00003925 System.TObject.FreeInstance 0007C041 mORMot.TServiceFactoryServerInstance.SafeFreeInstance (34544)
20140507 08484315 $ EXC EInvalidPointer ("Invalid pointer operation") at 00003925 System.TObject.FreeInstance stack trace API 00046294 SynCommons.SynRtlUnwind (37621) 00004386 System.@ExceptionHandler 00003925 System.TObject.FreeInstance 0007C041 mORMot.TServiceFactoryServerInstance.SafeFreeInstance (34544)
20140507 08484315 # + TSQLDBOracleConnection(00F41AF0).001068C0 SynDBOracle.TSQLDBOracleConnection.Disconnect (1717)
20140507 08484322 # - 00.119.862
Thank´s Yoan
Offline
This is my variable definitions
/// the associated database model
aModel: TSQLModel;
/// the associated DB
aServer: TSQLRestServerDB;
/// the background Server processing all requests
aHTTPServer: TSQLHttpServer;
Destroy:
FreeAndNil(aHTTPServer);
FreeAndNil(aServer);
FreeAndNil(aModel);
Offline
I found the problems. We register one services using sicShared and in the destructor in the services class detect the problem. No problems with Mormot, its was our error.
Thank´s.
Offline