Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2137

[cpp] Performance regression found in 0.29.0

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-c-0.29.0
    • proton-c-0.30.0
    • cpp-binding
    • None

    Description

      We are upgrading in our Murex code the proton version from 0.27.0 to 0.29.0.
      While running our unit tests, we found a considerable performance regression.
      We were able to reproduce the regression in a very simple use case. 
      Please find the code attached.
      This test takes 1 ms in the version 0.27.0 and 0.28.0 but it takes 103 ms in 0.29.0 .

       

      After analysis we discovered that the regression is coming from this pull request Proton 2075:[C++] Allow TLS to use system default trusted certificate.
      In fact we noticed that the ssl_client_options and the ssl_server_options are not default constructed the same way and that the ssl_server_options  is calling pni_init_ssl_domain which is taking some time.

      What we would like is to avoid initializing ssl domain when it’s disabled from the connection_options.

      Does it sound reasonable for you?

       

      Here is a patch that we propose. All proton unit tests are green on the master.
      Can you please astitcher check if this patch is aligned with what you meant to do in (PROTON-2075) ?

       

      Thanks,
      Ali & Rabih

      Attachments

        1. code.txt
          0.8 kB
          Rabih Mourad
        2. remove-default-ssl.patch
          1 kB
          Rabih Mourad

        Issue Links

          Activity

            People

              astitcher Andrew Stitcher
              rabih.promail Rabih Mourad
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: