Jump to content

AndreL

Members
  • Content Count

    8
  • Joined

  • Last visited

Posts posted by AndreL


  1. Hi,


    Error stack (madExcept) - Delphi 11.3 :


    exception class    : EAccessViolation
    exception message  : Violation d'accès à l'adresse 77DB3D25 dans le module 'ntdll.dll'. Ecriture de l'adresse 00000008.


    main thread ($6450):
    77db3d25 +015 ntdll.dll                                          RtlEnterCriticalSection
    00c3a469 +015  xx.OverbyteIcsLIBEAY           5258  +1 IcsUnloadSsl
    00c850b0 +000 xx.OverbyteIcsWSocket         13919  +0 UnloadSsl
    00c85281 +009 xx.OverbyteIcsWSocket         14192  +3 TSslBaseComponent.FinalizeSsl
    00cbdd63 +08f xx.OverbyteIcsSslSessionCache   444 +10 TSslAvlSessionCache.Destroy
    0076a4b4 +008 xx. System                                  55  +0 TObject.Free
    00cf0840 +0a0 xx.OverbyteIcsSslHttpRest        1843 +13 TSslHttpRest.Destroy
    0076a4b4 +008 xx. System                                  55  +0 TObject.Free
    008ac513 +02b xx.System.Classes                                   TDataModule.DoDestroy
    008ac3f1 +021 xx.System.Classes                                   TDataModule.BeforeDestruction
    0076ab49 +009 xx.System                                  55  +0 @BeforeDestruction
    008ac3fe +006 xx.System.Classes                                   TDataModule.Destroy


    How to reproduce  :


    - Application xx is starting from local windows apps store.

    - if a newer local version is available then the following code is executed, generating the error:

     

    application.ProcessMessages;
    ShellExecute(0, nil, PChar(LocalExe), nil, nil, SW_SHOWNORMAL);
    application.Terminate;

     

    Normal execution is ending properly.


    Any help is welcome.


  2. Hi Angus,

     

    Yes this a rest client application (Json) running since year on top of "fabricio colombo rest client" and  Indy stacks with the latest openssl version (3.1.1).

     

    My goal was to replace those 2 by your stack quite well updated. 

     

    But those intemittent low level errors are very difficult to fix. :

    - error linking to  "libssl-3.dll"  (~10% of the requests )

    - Request failed: Error: No Status Code - 0  HTTP no status code (connection closed prematurely)'

    ...

    Servers are apache with Openssl 3.1.1 on Windows or Rocky linux  with OpenSSL 1.1.1.

    (Server Version: Apache/2.4.57 (Win64) OpenSSL/3.1.1) -( Server Version: Apache/2.4.37 (rocky) OpenSSL/1.1.1k)

     

    At the end a lot of request retry, slowing down the application.

     

    I also use https://www.ssllabs.com/ssltest/  to keep my servers save : score A+

     

    To be con't


  3. Next status :

     

    Handle Background Exception, source: TCustomWSocket.WndProc, Msg=1030:   Access violation at address 6F71F1E4  module 'libssl-3.dll'. read of addresse 00000040

     

    openssl version 3.1.1 or 3.1.0

     

    7:09:59:840 ResetSslSession SetShutDown FSsl handle=0
    17:09:59:840 ResetSslSession FSslBio handle=0
    17:09:59:840 ResetSslSession FNBio handle=0
    17:09:59:850 ResetSslSession Fibio handle=0
    17:09:59:852 ResetSslSession Close FSsl handle=0
    17:09:59:852 0530C9D0 ResetSslSession Done
    17:09:59:900 0530C9D0 Socket handle created handle=1464
    17:09:59:900 TWSocket will connect to 81.240.65.4:443
    17:10:01:646 Handle Background Exception, source: TCustomWSocket.WndProc, Msg=1030 - Violation d'accès à l'adresse 6F71F1E4 dans le module 'libssl-3.dll'. Lecture de l'adresse 00000040
    17:10:01:650 0530C9D0 TCustomWSocket.Shutdown 1 handle=1464
    17:10:01:661 0530C9D0 ResetSslSession starting handle=-1
    17:10:01:670 ResetSslSession SetShutDown FSsl handle=0
    17:10:01:677 ResetSslSession FSslBio handle=0
    17:10:01:677 ResetSslSession FNBio handle=0
    17:10:01:680 ResetSslSession Fibio handle=0
    17:10:01:680 ResetSslSession Close FSsl handle=0
    17:10:01:680 0530C9D0 ResetSslSession Done
    17:10:01:680 0530C9D0 ResetSslSession starting handle=-1


  4. Thanks for the reply.

     

    I'm replacing my old rest framework by ICS one.

    I started in bloking mode and just recoding to async mode for test purpose.

     

    Both case apllication is running in error after some calls, typically when changing the reqType : from get to post or post to put.

    something to "clear or reset" in the TSslHttpRest ?

     

    some errors in the SSL log :

    Error unable to get local issuer certificate

    09:19:04:015 04A5C9D0 SslHandshakeDone(0) Handle=396. SSL Connected OK with TLSv1.2, cipher ECDHE-RSA-AES256-GCM-SHA384, key auth RSA, key exchange ECDH, encryption AESGCM(256), message auth AEAD, VerifyResult=unknown certificate verification error

    TLS 1.2 Alert, Warning: Close Notify, State: SSL negotiation finished successfully, Recv, DataLen: 2, Data= 0100

     

    André.


  5. Hi,

     

    StatCode := HttpRest1.RestRequest(Req, ReqURL, Async, Json);

     

    After the call, StatCode is very frequently <> 0 when Req := httpPost

    A typically after a get call even with 200 response..

    NB: HttpRest1.State = httpReady

     

    'Request failed: Error: No Status Code - 0  HTTP no status code (connection closed prematurely)'

     

    What could be the raison of that ?

     

    any help is welcome ...

     

    André


  6. Hi,

     

    FYI ,I updated from OpenSSL 1.1.1 (https://github.com/IndySockets/Indy/files/5029069/OpenSSL.zip)  to OpenSSL 1.3 on windows 32bits

     

    I updated the following file: IdOpenSSLConsts.pas

     {$IFDEF WINDOWS}
            {$IFDEF CPU32_old}'libcrypto-1_1.dll'{$ENDIF}
            {$IFDEF CPU32}'libcrypto-3.dll'{$ENDIF}
            {$IFDEF CPU64}_old)'libcrypto-1_1-x64.dll'{$ENDIF}

            {$IFDEF CPU64}'libcrypto-3-x64.dll'{$ENDIF}
      {$ELSE}

    {$IFDEF WINDOWS}
            {$IFDEF CPU32_old}'libssl-1_1.dll'{$ENDIF}
            {$IFDEF CPU32}'libssl-3.dll'{$ENDIF}
            {$IFDEF CPU64_old}'libssl-1_1-x64.dll'{$ENDIF}

            {$IFDEF CPU64}'libssl-3-x64.dll'{$ENDIF}
          {$ELSE}

     

     

    Replacing libcrypto-1_1 and libssl-1_1 dlls by libcrypto-3 and libssl-3 in the application folder.

     

    NB: as libeay32.dll et ssleay32.dl are also removed, the call to OpenSSLVersion is returning an empty string.

    I don't know how to update this one.

     

    Application is running fine so far, including with TLS1.3 towards an Apache server.

     

×