Details

      Description

      Hi,

      this is a follow up of EZP-23870
      https://github.com/ezsystems/ezpublish-legacy/pull/1133

      If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

      Example:
      User A is updating the user cache
      User B is moving a tree

      Both processes read the same expiry.

      Process A writes the user-info-cache key
      Process B writes the view cache key and the template block key

      Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

      Suggestion:
      a) Reload the expiry.php before it's written
      b) Only update the changed keys and only update the keys if they are older than the current one.

      The first solution will be only reloading the expiry.php before it's written.

      The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

      Best wishes,
      Georg.

        Issue Links

          Activity

          Georg Franz created issue -
          Yannick Roger (Inactive) made changes -
          Field Original Value New Value
          Link This issue relates to EZP-23870 [ EZP-23870 ]
          Joao Inacio (Inactive) made changes -
          Fix Version/s Customer request [ 11018 ]
          Joao Inacio (Inactive) made changes -
          Status Open [ 1 ] Confirmed [ 10037 ]
          Paulo Lopes (Inactive) made changes -
          Status Confirmed [ 10037 ] InputQ [ 10001 ]
          Yannick Roger (Inactive) made changes -
          Description Hi,

          this is a follow up of

          https://jira.ez.no/browse/EZP-23870
          https://github.com/ezsystems/ezpublish-legacy/pull/1133

          If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

          Example:
          User A is updating the user cache
          User B is moving a tree

          Both processes read the same expiry.

          Process A writes the user-info-cache key
          Process B writes the view cache key and the template block key

          Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

          Suggestion:
          a) Reload the expiry.php before it's written
          b) Only update the changed keys and only update the keys if they are older than the current one.

          The first solution will be only reloading the expiry.php before it's written.

          The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

          Best wishes,
          Georg.
          Hi,

          this is a follow up of EZP-23870
          https://github.com/ezsystems/ezpublish-legacy/pull/1133

          If two processes were started at the same time and if they read the same expiry.php, the process which will be ended last will overwrite the changes of the earlier process.

          Example:
          User A is updating the user cache
          User B is moving a tree

          Both processes read the same expiry.

          Process A writes the user-info-cache key
          Process B writes the view cache key and the template block key

          Process B is reverting the changes of Process A because the expiry.php isn't reloaded before it's written.

          Suggestion:
          a) Reload the expiry.php before it's written
          b) Only update the changed keys and only update the keys if they are older than the current one.

          The first solution will be only reloading the expiry.php before it's written.

          The longtime solution should be: Doing a "expiry.php" queue like the async. So, every update request should be written in a db table and a daemon is updating the expiry.php every x seconds - if there are changes.

          Best wishes,
          Georg.
          Gunnstein Lye made changes -
          Assignee Gunnstein Lye [ gunnstein.lye@ez.no ]
          Gunnstein Lye made changes -
          Status InputQ [ 10001 ] Development [ 3 ]
          Gunnstein Lye made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 1 hour [ 3600 ]
          Worklog Id 52680 [ 52680 ]
          Gunnstein Lye made changes -
          Status Development [ 3 ] Development review [ 10006 ]
          Gunnstein Lye made changes -
          Time Spent 1 hour [ 3600 ] 6 hours [ 21600 ]
          Worklog Id 52684 [ 52684 ]
          Gunnstein Lye made changes -
          Status Development review [ 10006 ] Development Review done [ 10028 ]
          Gunnstein Lye made changes -
          Affects Version/s 5.2 [ 12582 ]
          Affects Version/s 5.1 [ 11280 ]
          Gunnstein Lye made changes -
          Fix Version/s 5.1 Maintenance [ 12301 ]
          Fix Version/s 5.2 Maintenance [ 12782 ]
          Fix Version/s 5.3.5 [ 13889 ]
          Fix Version/s 5.4.2 [ 13979 ]
          Gunnstein Lye made changes -
          Time Spent 6 hours [ 21600 ] 6 hours, 30 minutes [ 23400 ]
          Worklog Id 52716 [ 52716 ]
          Gunnstein Lye made changes -
          Status Development Review done [ 10028 ] Documentation done [ 10011 ]
          Gunnstein Lye made changes -
          Affects Version/s 2015.01 [ 13680 ]
          Paulo Nunes (Inactive) made changes -
          Status Documentation done [ 10011 ] QA [ 10008 ]
          Assignee Gunnstein Lye [ gunnstein.lye@ez.no ] Paulo Nunes [ paulo.nunes@ez.no ]
          Paulo Nunes (Inactive) made changes -
          Assignee Paulo Nunes [ paulo.nunes@ez.no ]
          Status QA [ 10008 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Paulo Nunes (Inactive) made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          Paulo Nunes (Inactive) made changes -
          Status Reopened [ 4 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          André Rømcke made changes -
          Workflow eZ Engineering Scrumban Workflow [ 65791 ] EZ* Development Workflow [ 85666 ]
          Alex Schuster made changes -
          Workflow EZ* Development Workflow [ 85666 ] EZEE Development Workflow [ 124537 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Georg Franz
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 6 hours, 30 minutes
                6h 30m